CloudShell
브라우저 기반의 사전 인증된 Shell로, AWS Management Console에서 사용할 수 있다. CloudShell을 시작하면 Amazon Linux 2 기반의 컴퓨팅 환경이 생성되고 Bash, PowerShell, Z shell 등의 원하는 쉘을 이용해 AWS CLI를 사용할 수 있다. 즉, 별도의 설치 없이 AWS CLI를 수행할 수 있다.
단, CloudShell을 이용하기 위해서는 AWSCloudShellFullAccess와 같은 권한이 필요하다.
이 글에서는 간단히 CloudShell에서 제공하는 기능을 살펴보고 직접 사용해보려고 한다.
기능
CloudShell은 다음과 같은 기능을 지원한다.
AWS CLI
AWS 콘솔에 로그인한 자격증명으로 Shell을 시작한다.
Shell / 개발 도구
Bash, PowerShell, Z shell 등 원하는 종류의 Shell을 사용할 수 있다. 또한 Node.js나 Python 같은 몇 가지 주요 언어가 설치되어 있다.
저장 공간
추가 비용 없이 각 AWS 리전에 최대 1GB의 영구 스토리지를 사용할 수 있다. 저장 공간은 홈 디렉터리에 해당되며 private 영역이다. 또한 세션이 종료되도 데이터가 유지된다. 관련하여 CloudShell 저장공간에 파일을 업로드하거나 다운로드할 수 있는 기능도 제공한다.
CloudShell 실행
AWS 콘솔에 로그인한 사용자는 다음과 같은 경로로 CloudShell을 사용할 수 있다.
a. 상단의 CloudShell 버튼 클릭
b. 상단 검색 창에서 CloudShell 서비스로 이동
c. 최근에 방문한 서비스에서 선택
d. 왼쪽 하단의 CloudShell 클릭
원하는 경로로 CloudShell을 시작하면, 바로 실행할 수 있는 터미널 환경을 만날 수 있다.
대충 실행 환경은 AWS Linux2 AMI, 2 vCPU, 8GiB MEM, 30GiB /root, 1GiB /home 정도 되는 것 같다. 지금 사용하고 있는 테스트 서버가 t4g.small에 10GiB /root인데…… 리소스 자체는 좀 더 넉넉한 것 같다. 참고로 CloudShell 자체는 무료다!
그리고 sudo 권한도 부여되어 있다.
AWS cli 사용
현재 콘솔로 로그인한 권한으로 AWS Cli를 사용한다. 별도 추가 설정 없이 사용할 수 있다.
참고로 CLI 버전은 2 버전이다.
pem 키를 이용한 EC2 접속
이 글에서 접속할 EC2는 pem 키가 필요하다. CloudShell에서 제공하는 파일 업로드 기능을 사용해 서버에 pem 키를 업로드한다.
1. 작업 > 파일 업로드
2. 대화 상자에서 업로드할 파일 선택
잠시 기다리면 홈 디렉터리에 파일 이 업로드되었다는 결과 메세지가 나타나고,
서버에 위치한 파일을 확인할 수 있다.
pem는 다른 사용자가 접근할 수 없도록 권한을 400으로 변경해두자.
chmod 400 *.pem
3. SSH를 이용한 서버 접속
이상이 없으면 서버에 정상적으로 접근한 모습을 확인할 수 있다.
ssh -i ./YOUR_KEY.pem SERVER_USER@SERVER_IP
참고 문서
https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html