기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
시작하기 AWS CloudShell
이 소개 자습서에서는 쉘 명령줄 인터페이스를 사용하여 주요 작업을 시작하고 AWS CloudShell 수행하는 방법을 보여줍니다.
먼저 에 로그인 AWS Management Console 하고 를 선택합니다 AWS 리전. 그런 다음 새 브라우저 창과 작업할 쉘 유형 CloudShell 에서 를 시작합니다.
다음으로 홈 디렉터리에 새 폴더를 만들고 로컬 머신에서 파일을 업로드합니다. 명령줄에서 프로그램으로 실행하기 전에 사전 설치된 편집기로 파일 작업을 합니다. 마지막으로 AWS CLI 명령을 호출하여 Amazon S3 버킷을 생성하고 버킷에 객체로 파일을 추가합니다.
사전 조건
IAM 권한
IAM ID(예: 사용자, 역할 또는 그룹)에 다음 AWS 관리형 정책을 AWS CloudShell 연결하여 에 대한 권한을 얻을 수 있습니다.
AWSCloudShellFullAccess: 사용자에게 AWS CloudShell 및 기능에 대한 전체 액세스 권한을 제공합니다.
이 자습서에서는 와도 상호 작용합니다 AWS 서비스. 구체적으로 말하자면, S3 버킷을 만들고 해당 버킷에 객체를 추가하여 Amazon S3와 상호 작용하게 됩니다. 자격 IAM 증명에는 최소한 s3:CreateBucket
및 s3:PutObject
권한을 부여하는 정책이 필요합니다.
자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3 작업을 참조하십시오.
연습 파일
또한 이 연습에는 명령줄 인터페이스에서 프로그램으로 실행되는 파일을 업로드하고 편집하는 작업도 포함됩니다. 로컬 머신에서 텍스트 편집기를 열고 다음 코드 조각을 추가합니다.
import sys x=int(sys.argv[1]) y=int(sys.argv[2]) sum=x+y print("The sum is",sum)
add_prog.py
이름으로 파일을 저장합니다.
내용
1단계: 에 로그인 AWS Management Console
이 단계에서는 IAM 사용자 정보를 입력하여 에 액세스합니다 AWS Management Console. 이미 콘솔을 사용하고 있다면 2단계로 건너뛰십시오.
IAM 사용자 로그인을 AWS Management Console 사용하거나 기본 로그인 페이지로 URL 이동하여 에 액세스할 수 있습니다.
참고
루트 사용자로 로그인할 수도 있습니다. 이 자격 증명은 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 갖습니다. 일상적인 작업, 심지어 관리 작업의 경우에도 루트 사용자를 사용하지 않을 것을 권장합니다. 대신 루트 사용자만 사용하여 첫 번째 IAM 사용자를 생성하는 모범 사례를 준수하세요.
2단계: 리전 선택, 시작 AWS CloudShell및 쉘 선택
이 단계에서는 콘솔 인터페이스 AWS CloudShell 에서 를 시작하고 사용 가능한 를 선택한 AWS 리전다음 다음과 같이 기본 쉘로 전환합니다.Bash, PowerShell또는 Z shell.
-
작업 AWS 리전 할 을 선택하려면 리전 선택 메뉴로 이동하여 작업할 지원되는 AWS 리전을 선택합니다. (사용 가능한 지역은 강조 표시됩니다.)
중요
리전을 전환하면 인터페이스가 새로고침되고 선택한 AWS 리전 의 이름이 명령줄 텍스트 위에 표시됩니다. 영구 스토리지에 추가하는 모든 파일은 동일한 AWS 리전에서만 사용할 수 있습니다. 리전을 변경하면 다른 스토리지와 파일에 액세스할 수 있습니다.
중요
에서 를 시작할 때 선택한 리전 CloudShell 에서 를 사용할 수 CloudShell 없는 경우 Console Toolbar, 콘솔 왼쪽 하단에 기본 리전이 선택한 리전에 가장 가까운 리전으로 설정됩니다. 기본 리전이 아닌 다른 리전의 리소스를 관리할 권한을 제공하는 명령을 실행할 수 있습니다. 자세한 내용은 에서 작업을 AWS 리전 참조하세요.
예
유럽(스페인)을 선택한 경우 eu-south-2 유럽(스페인)에서는 사용할 수 CloudShell 없습니다.eu-south-2그러면 기본 리전이 유럽(아일랜드)으로 설정됩니다.eu-west-1유럽(스페인)과 가장 가까운 .eu-south-2.
기본 리전인 유럽(아일랜드)에 서비스 할당량을 사용합니다.eu-west-1 모든 리전에서 동일한 CloudShell 세션이 복원됩니다. 기본 리전이 변경될 수 있으며 CloudShell 브라우저 창에서 알림을 받게 됩니다.
-
에서 다음 옵션 중 하나를 CloudShell 선택하여 를 시작할 AWS Management Console수 있습니다.
-
탐색 모음에서 CloudShell 아이콘을 선택합니다.
-
검색 상자에 “CloudShell”를 입력한 다음 를 선택합니다CloudShell.
-
최근에 방문한 위젯에서 을 선택합니다CloudShell.
-
CloudShell 에서 선택 Console Toolbar콘솔 왼쪽 하단의 .
-
CloudShell 세션의 높이를 조정하려면 를 드래그합니다
=
. -
CloudShell 세션을 전체 화면으로 전환하려면 새 브라우저에서 열기 탭 아이콘을 클릭합니다.
-
명령 프롬프트가 표시되면 셸이 상호 작용할 준비가 된 것입니다.
참고
를 성공적으로 시작하거나 상호 작용하는 데 방해가 되는 문제가 발생하면 에서 이러한 문제를 식별하고 해결할 수 있는 정보를 AWS CloudShell확인하세요문제 해결 AWS CloudShell.
-
-
사전 설치된 쉘을 선택하여 작업하려면 명령줄 프롬프트에 프로그램 이름을 입력합니다.
쉘 환경에 사전 설치된 버전에 대한 자세한 내용은 AWS CloudShell 컴퓨팅 환경 섹션의 쉘 테이블을 참조하세요.
3단계: 에서 파일 다운로드 AWS CloudShell
참고
VPC 환경에서는 이 옵션을 사용할 수 없습니다.
이 단계에서는 파일을 다운로드하는 절차를 단계별로 살펴봅니다.
-
파일을 다운로드하려면 작업으로 이동하여 메뉴에서 파일 다운로드를 선택합니다.
파일 다운로드 대화 상자가 표시됩니다.
-
파일 다운로드 대화 상자에 다운로드할 파일의 경로를 입력합니다.
참고
다운로드할 파일을 지정할 때는 절대 또는 상대 경로를 사용할 수 있습니다. 상대 경로 이름을 사용하면 기본적으로 시작 부분에
/home/cloudshell-user/
이(가) 자동으로 추가됩니다. 따라서mydownload-file
이라는 파일을 다운로드하려면 다음 두 경로가 모두 유효해야 합니다.-
절대 경로:
/home/cloudshell-user/subfolder/mydownloadfile.txt
-
상대 경로:
subfolder/mydownloadfile.txt
-
-
다운로드를 선택합니다.
파일 경로가 올바르면 대화 상자가 표시됩니다. 이 대화상자에서 기본 애플리케이션으로 파일을 열 수 있습니다. 또는 로컬 머신에 있는 폴더에 파일을 저장할 수 있습니다.
참고
CloudShell 에서 를 시작할 때는 다운로드 옵션을 사용할 수 없습니다.Console Toolbar. CloudShell 콘솔 또는 Chrome 웹 브라우저를 사용하여 파일을 다운로드할 수 있습니다. 파일 다운로드 방법에 대한 자세한 내용은 3단계: 에서 파일 다운로드를 AWS CloudShell 참조하세요.
4단계: 에 파일 업로드 AWS CloudShell
참고
VPC 환경에서는 이 옵션을 사용할 수 없습니다.
이 단계에서는 파일을 업로드한 다음 홈 디렉터리의 새 디렉터리로 이동하는 방법을 설명합니다.
현재 작업 디렉토리를 확인하려면 프롬프트에 다음 명령을 입력합니다.
pwd
Enter를 누르면 쉘이 현재 작업 디렉토리(예:
/home/cloudshell-user
)를 반환합니다.이 디렉터리에 파일을 업로드하려면 작업으로 이동하여 메뉴에서 파일 업로드를 선택합니다.
파일 업로드 대화 상자가 표시됩니다.
찾아보기를 선택합니다.
시스템의 파일 업로드 대화 상자에서 이 자습서용으로 생성한 텍스트 파일(
add_prog.py
)을 선택하고 열기를 선택합니다.업로드 대화 상자에서 파일 업로드를 선택합니다.
진행률은 업로드 상태를 추적합니다. 정상적으로 업로드되면 홈 디렉터리의 루트에
add_prog.py
이(가) 추가되었다는 확인 메시지가 나타납니다.파일용 디렉터리를 생성하려면 디렉터리 만들기 명령어
mkdir mysub_dir
을(를) 입력합니다.업로드된 파일을 홈 디렉터리의 루트에서 새 디렉터리로 이동하려면 다음
mv
명령을 사용합니다.mv add_prog.py mysub_dir
.현재 작업 디렉터리를 새로운 디렉터리로 변경하려면
cd mysub_dir
을(를) 입력합니다.명령 프롬프트가 업데이트되어 작업 디렉토리가 변경되었음을 알립니다.
-
현재 디렉터리
mysub_dir
의 내용을 보려면ls
명령을 입력합니다.작업 디렉토리의 내용이 나열됩니다. 여기에는 방금 업로드한 파일도 포함됩니다.
5단계: 에서 파일 제거 AWS CloudShell
이 단계에서는 에서 파일을 제거하는 방법을 설명합니다 AWS CloudShell.
-
에서 파일을 제거하려면
rm
(제거)와 같은 표준 쉘 명령을 AWS CloudShell사용합니다.rm my-file-for-removal
-
지정된 기준에 맞는 여러 파일을 삭제하려면
find
명령을 실행합니다.다음 예시에서는 이름에 접미사 “.pdf”가 포함된 모든 파일을 삭제합니다.
find -type f -name '*.pdf' -delete
참고
특정 AWS CloudShell 에서 사용을 중지한다고 가정해 보겠습니다 AWS 리전. 이후 지정된 기간이 지나면 해당 리전의 영구 스토리지에 있는 데이터가 자동으로 삭제됩니다. 더 자세한 내용은 영구 스토리지를 확인합니다.
6단계: 홈 디렉터리 백업 생성
이 단계에서는 홈 디렉터리 백업을 생성하는 방법을 설명합니다.
-
백업 파일 생성
홈 디렉터리 외부에 임시 폴더를 생성합니다.
HOME_BACKUP_DIR=$(mktemp --directory)
다음 중 하나를 사용하여 백업을 생성할 수 있습니다.
-
tar를 사용하여 백업 파일 생성
tar를 사용하여 백업 파일을 생성하려면 다음 명령을 입력합니다.
tar \ --create \ --gzip \ --verbose \ --file=${HOME_BACKUP_DIR}/home.tar.gz \ [--exclude ${HOME}/.cache] \ // Optional ${HOME}/ echo "Home directory backed up to this file: ${HOME_BACKUP_DIR}/home.tar.gz"
-
zip을 사용하여 백업 파일 생성
zip을 사용하여 백업 파일을 생성하려면 다음 명령을 입력합니다.
zip \ --recurse-paths \ ${HOME_BACKUP_DIR}/home.zip \ ${HOME} \ [--exclude ${HOME}/.cache/\*] // Optional echo "Home directory backed up to this file: ${HOME_BACKUP_DIR}/home.zip"
-
-
백업 파일을 외부로 전송 CloudShell
다음 옵션 중 하나를 사용하여 백업 파일을 외부로 전송할 수 있습니다 CloudShell.
-
로컬 시스템에 백업 파일 다운로드
이전 단계에서 생성한 파일을 다운로드할 수 있습니다. 에서 파일을 다운로드하는 방법에 대한 자세한 내용은 에서 파일 다운로드를 AWS CloudShell CloudShell참조하세요.
파일 다운로드 대화 상자에 다운로드할 파일의 경로(예:
/tmp/tmp.iA99tD9L98/home.tar.gz
)를 입력합니다. -
백업 파일의 S3 전송
버킷을 생성하려면 다음 명령을 입력합니다.
aws s3 mb s3://${BUCKET_NAME}
AWS CLI 를 사용하여 파일을 S3 버킷에 복사합니다.
aws s3 cp ${HOME_BACKUP_DIR}/home.tar.gz s3://${BUCKET_NAME}
참고
데이터 전송 요금이 부과될 수 있습니다.
-
-
S3 버킷에 직접 백업
S3 버킷에 직접 백업하려면 다음 명령을 입력합니다.
aws s3 cp \ ${HOME}/ \ s3://${BUCKET_NAME} \ --recursive \ [--exclude .cache/\*] // Optional
7단계: 쉘 세션 재시작
이 단계에서는 쉘 세션을 다시 시작하는 방법을 설명합니다.
참고
보안 조치로서, 오랜 시간 동안 키보드나 포인터로 쉘과 상호 작용하지 않으면 세션이 자동으로 중단됩니다. 장기 실행 세션 또한 자동으로 중단됩니다. 자세한 내용은 쉘 세션 단원을 참조하십시오.
-
쉘 세션을 재시작하려면 작업, 재시작을 선택합니다.
다시 시작하면 현재 의 모든 활성 세션이 AWS CloudShell 중지된다는 알림이 표시됩니다 AWS 리전.
-
확인하려면 재시작을 선택합니다.
인터페이스에는 CloudShell 컴퓨팅 환경이 중지 중이라는 메시지가 표시됩니다. 환경을 중단했다가 재시작한 후, 새 세션에서 명령줄 작업을 시작할 수 있습니다.
참고
환경을 재시작 시 몇 분이 걸릴 수도 있습니다.
8단계: 쉘 세션 홈 디렉터리 삭제
이 단계에서는 쉘 세션을 삭제하는 방법을 설명합니다.
참고
VPC 환경에서는 이 옵션을 사용할 수 없습니다. VPC 환경을 다시 시작하면 홈 디렉터리가 삭제됩니다.
주의
홈 디렉터리 삭제는 홈 디렉터리에 저장된 모든 데이터가 영구적으로 삭제되는 되돌릴 수 없는 작업입니다. 단, 다음 상황에서는 이 옵션을 고려해 볼 수 있습니다.
-
파일을 잘못 수정하여 AWS CloudShell 컴퓨팅 환경에 액세스할 수 없습니다. 홈 디렉터리를 삭제하면 기본 설정 AWS CloudShell 으로 돌아갑니다.
-
AWS CloudShell 즉시 에서 모든 데이터를 제거하려고 합니다. AWS 리전 AWS CloudShell 에서 사용을 중지하면 리전에서 AWS CloudShell 다시 시작하지 않는 한 보존 기간이 끝날 때 영구 스토리지가 자동으로 삭제됩니다.
파일에 장기 스토리지가 필요한 경우 Amazon S3 또는 와 같은 서비스를 고려하세요 CodeCommit.
-
쉘 세션을 삭제하려면 작업 , 삭제 를 선택합니다.
AWS CloudShell 홈 디렉터리를 삭제하면 현재 AWS CloudShell 환경에 저장된 모든 데이터가 삭제된다는 알림을 받습니다.
참고
이 작업을 취소할 수 없습니다.
-
삭제를 확인하려면 텍스트 입력 필드에 삭제를 입력한 다음 삭제를 선택합니다.
AWS CloudShell 는 현재 의 모든 활성 세션을 중지 AWS 리전 하고 즉시 새 환경을 생성합니다.
쉘 세션을 수동으로 종료합니다.
명령줄을 사용하여 쉘 세션에서 나가
exit
명령을 사용하여 로그아웃할 수 있습니다. 그 다음에 아무 키나 눌러 다시 연결하고 AWS CloudShell을(를) 계속 사용할 수 있습니다.
9단계: 파일 코드를 편집하고 명령줄을 사용하여 실행하기
이 단계에서는 사전 설치된 를 사용하는 방법을 보여줍니다.Vim 파일 작업을 위한 편집기입니다. 그런 다음 명령줄에서 해당 파일을 프로그램으로 실행합니다.
이전 단계에서 업로드한 파일을 편집하려면 다음 명령을 입력합니다.
vim add_prog.py
쉘 인터페이스가 새로 고쳐져 Vim 편집기.
에서 파일을 편집하려면 Vim키를 누릅니다I. 이제 프로그램에서 두 개가 아닌 세 개의 숫자를 더하도록 내용을 편집합니다.
import sys x=int(sys.argv[1]) y=int(sys.argv[2]) z=int(sys.argv[3]) sum=x+y+z print("The sum is",sum)
참고
텍스트를 편집기에 붙여넣고 안전한 붙여넣기 기능을 활성화하면 경고가 표시됩니다. 복사된 여러 줄 텍스트에 악성 스크립트가 포함될 수 있습니다. 안전한 붙여넣기 기능을 사용하면 텍스트를 붙여넣기 전에 전체 텍스트를 확인할 수 있습니다. 텍스트가 안전하다고 판단되면 붙여넣기 를 선택합니다.
-
프로그램을 편집한 후 Esc를 눌러 Vim 명령 모드. 그 다음
:wq
명령을 입력하여 파일을 저장하고 편집기를 종료합니다.참고
를 처음 사용하는 경우 Vim 명령 모드, 처음에는 명령 모드와 삽입 모드 간에 전환하는 것이 어려울 수 있습니다. 명령 모드는 파일을 저장하고 애플리케이션을 종료할 때 사용됩니다. 새 텍스트를 삽입할 때는 삽입 모드가 사용됩니다. 삽입 모드로 들어가려면 및 I을(를) 누르고, 명령 모드로 들어가려면 Esc을(를) 누릅니다. 에 대한 자세한 내용은 Vim 및 에서 사용할 수 있는 기타 도구는 섹션을 AWS CloudShell참조하세요개발 도구 및 쉘 유틸리티.
-
메인 명령줄 인터페이스에서 다음 프로그램을 실행하고 입력할 숫자 3개를 지정합니다. 구문은 다음과 같습니다.
python3 add_prog.py 4 5 6
명령줄에 프로그램 결과
The sum is 15
이(가) 표시됩니다.
10단계: Amazon S3 버킷에서 파일을 객체로 추가하는 AWS CLI 데 사용
이 단계에서는 Amazon S3 버킷을 생성한 다음 PutObject 메서드를 사용하여 코드 파일을 해당 버킷의 객체로 추가합니다.
참고
대부분의 경우 소프트웨어 파일을 버전 제어 리포지토리에 커밋 CodeCommit 에서 사용 AWS CloudShell할 수 있습니다. 이 자습서에서는 AWS CLI 에서 AWS CloudShell 를 사용하여 다른 AWS 서비스와 상호 작용하는 방법을 보여줍니다. 이 방법을 사용하면 추가 리소스를 다운로드하거나 설치할 필요가 없습니다. 또한 셸 내에서 이미 인증되었기 때문에 직접 호출을 하기 전에 보안 인증을 구성하지 않아도 됩니다.
-
지정된 에서 버킷을 생성하려면 다음 명령을 AWS 리전입력합니다.
aws s3api create-bucket --bucket insert-unique-bucket-name-here --region us-east-1
참고
us-east-1
리전 외부에서 버킷을 생성하는 경우,LocationConstraint
파라미터에create-bucket-configuration
을(를) 추가하여 리전을 지정합니다. 다음은 구문의 예제입니다.$ aws s3api create-bucket --bucket my-bucket --region eu-west-1 --create-bucket-configuration LocationConstraint=eu-west-1
직접 호출이 성공하면 명령줄에 다음 출력과 비슷한 서비스의 응답이 표시됩니다.
{ "Location": "/insert-unique-bucket-name-here" }
참고
버킷 이름 지정 규칙을 준수하지 않으면 다음 오류가 표시됩니다.
작업을 호출 CreateBucket할 때 오류 발생(InvalidBucketName): 지정된 버킷이 유효하지 않습니다.
-
파일을 업로드하고 방금 만든 버킷에 해당 파일을 객체로 추가하려면 PutObject 방법을 직접 호출합니다.
aws s3api put-object --bucket insert-unique-bucket-name-here --key add_prog --body add_prog.py
객체가 Amazon S3 버킷에 업로드되면 명령줄에 다음 출력과 비슷한 서비스의 응답이 표시됩니다.
{"ETag": "\"ab123c1:w:wad4a567d8bfd9a1234ebeea56\""}
ETag
는 저장된 객체의 해시입니다. 이 해시로 Amazon S3에 업로드된 객체의 무결성을 확인할 수 있습니다.