본문 바로가기
[Cloud & Infrastructure]/[AWS]

[AWS] Local 환경에서 AWS CLI 사용하기

by 코드몽규 2022. 3. 27.
반응형

AWS CLI(Command-Line Interface)란?

  AWS CLI(명령줄 인터페이스)는 AWS 서비스를 관리하는 통합 도구입니다. 도구 하나만 다운로드하여 구성하면 여러 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있습니다.

 

AWS CLI 시작하기 

사전 조건 

1) AWS 가입하기 

 - AWS에 가입하여 Root 계정을 생성합니다. 

 

2) IAM 사용자 계정 생성 

- 생성한 Root 계정으로 로그인한 후 IAM 콘솔로 들어가 IAM 사용자를 만들어 줍니다.

과정: 사용자 이름 - Administrator  그룹생성 - Administrators   정책 - AdministratorAccess

 

3) IAM 사용자의 액세스 키 ID 및 보안 액세스 키 생성 & 저장

- IAM 사용자를 만들면 엑세스키와 보안 액세스 키를 생성할 수 있는데 이는 나중에 AWS CLI에서 로그인할 때 필요하기 때문에 잘 저장해놓습니다.

과정: IAM 사용자 -> Security credentials(보안 자격 증명) 탭 -> Create access key(액세스 키 생성) ->저장

 


AWS CLI 설치하기 

 1) window 기준 설치 방법

 

- AWS CLIWindows 용 MSI 설치 관리자 (64비트) 설치 

  cmd or window powershell 실행 후 (관리자 권한으로 실행) 아래 명령어 실행

C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

 

- 설치 완료 후 확인

CMD or Window Powershell 실행 후 (관리자 권한으로 실행)  aws --version 명령어 실행 및 결과 확인

C:\> aws --version
aws-cli/2.4.5 Python/3.8.8 Windows/10 exe/AMD64 prompt/off <-- 이렇게 나오면 정상 설치

빠른 설정 (사용자 추가)

1) aws에 기본 사용자 등록하기(default) 

- CMD or Window Powershell 실행 후 (관리자 권한으로 실행) aws configure 명령어 실행합니다.

저장해 둔 엑세스 키 ID 및 보안 액세스 키 입력하고 기본 리전과 출력 값을 설정해줍니다. 

 

예시 참조

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7 EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2 (본인이 사용하는 리전선택)
Default output format [None]: json (지정하지 않으면 json이 기본값)

 

2) 추가 사용자 등록

- 설정 모음을 프로파일이라고 합니다. 기본적으로 AWS CLI는 default 프로파일을 사용합니다. --profile 옵션을 지정하고 이름을 할당하여 다양한 자격 증명 및 설정을 통해 명명된 프로파일을 추가로 생성하고 사용할 수 있습니다.

$aws configure --profile produser

AWS Access Key ID [None]: AKIAI44 QH8 DHBEXAMPLE
AWS Secret Access Key [None]: je7 MtGbClwBF/2 Zp9 Utk/h3 yCo8 nvbEXAMPLEKEY
Default region name [None]: us-east-1
Default output format [None]: text

- 사용자 별로 명령어를 선택해서 저장된 자격 증명 및 설정에 따라서 실행할 수 있습니다.

$aws s3 ls --profile produser

 

*출력 형식 종류

 Default output format은 결과의 형식을 지정하는 방법을 지정합니다. 값은 다음 목록에 있는 값 중 하나일 수 있습니다. 출력 형식을 지정하지 않으면 json이 기본값으로 사용됩니다.

  • json - 출력은 JSON 문자열로 형식이 지정됩니다.
  • yaml- 출력은 형식이 지정됩니다.YAML문자열
  • yaml-stream - 출력은 스트리밍되고 YAML 문자열로 형식이 지정됩니다. 스트리밍을 통해 대용량 데이터 유형을 빠르게 처리할 수 있습니다.
  • text - 출력은 여러 줄의 탭으로 구분된 문자열 값으로 형식이 지정됩니다. 출력을 grep, sed 또는 awk와 같은 텍스트 프로세서로 전달하는 데 사용할 수 있습니다.
  • table - 출력은 셀 테두리를 형성하기 위해 +|- 문자를 사용하여 표로 형식이 지정됩니다. 일반적으로 읽기는 쉽지만 프로그래밍 방식으로는 유용하지 않은 "인간 친화적" 형식으로 정보를 표시합니다.


사용자 관리

  AWS CLI는 aws configure를 사용하여 지정하는 민감한 자격 증명 정보를 홈 디렉터리의 credentials라는 폴더에 있는. aws라는 로컬 파일에 저장합니다. aws configure를 사용하여 지정하는 덜 민감한 구성 옵션은 config라는 로컬 파일에 저장되며, 홈 디렉터리의. aws 폴더에도 저장됩니다.

 

 예를 들어  ~/. aws/credentials를 실행하면 다음과 같은 값을 확인할 수 있습니다. (*cd. aws -> cat credentials)

[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret​_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

 

~/. aws/config (*cd. aws -> cat config)

[default]
region=us-west-2
output=json

사용자 자격 증명 / 구성 설정 변경 

  aws configure set 명령어를 사용하여 자격증명 또는 구성 설정을 변경할 수 있습니다.

 

- integ 사용자의 region을 변경할 때

$ aws configure set region us-west-2 --profile integ

 

- 설정을 제거할 때

$ aws configure set cli_pager "" --profile integ

사용자 자격 증명 / 구성 설정 검색 및 저장 

 아래 명령어들을 사용하여 설정한 자격 증명 또는 구성 설정을 검색할 수 있습니다.

 

- aws configure get 

integ 사용자의 region을 검색할 때 

$ aws configure get region --profile integ
us-west-2

 

- aws configure list 

모든 구성 데이터를 나열 

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD  shared-credentials-file    
secret_key     ****************ABCD  shared-credentials-file    
    region                us-west-2             env    AWS_DEFAULT_REGION

 

- aws configure list-profiles

모든 프로파일 이름을 나열

$ aws configure list-profiles
default
test

 

-aws cofigure import

CSV 웹 콘솔에서 생성된 AWS 자격 증명을 가져옵니다. IAM 사용자 이름과 일치하는 프로파일 이름을 이용해 CSV 파일을 가져옵니다. CSV 파일에는 다음 헤더가 포함되어야 합니다.

  • 사용자 이름
  • 액세스 키 ID
  • 보안 액세스 키
$ aws configure import --csv file://credentials.csv

 


AWS CLI로 S3 버킷 생성하기 - 실습 

 

1) 버킷 만들기 

  다음 예제에서는 s3://bucket-name 버킷을 생성합니다.

$ aws s3 mb s3://bucket-name

 

2) 버킷 및 객체 나열

  버킷, 폴더 또는 객체를 나열하려면 s3 ls 명령을 사용합니다. 대상 또는 옵션 없이 명령을 사용하면 모든 버킷이 나열됩니다.

$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2

 

3) 버킷 삭제

  버킷을 삭제하려면 s3 rb 명령을 사용합니다. (버킷이 비어있을 때)

$ aws s3 rb s3://bucket-name

 비어 있지 않은 버킷을 강제로 삭제할 때 

$ aws s3 rb s3://bucket-name --force

 

4) 객체 삭제 

 버킷이나 로컬 디렉터리의 객체를 삭제하려면 s3 rm 명령을 사용합니다.

*다음 명령어는 s3://bucket-name/example 에서 filename.txt 파일을 삭제합니다. 

$ aws s3 rm s3://bucket-name/example/filename.txt --recursive

 

5) 객체 이동

다음 예제에서는 s3://bucket-name/example에서 모든 객체를 s3://my-bucket/으로 이동합니다.

$ aws s3 mv s3://bucket-name/example s3://my-bucket/

다음 예제에서는 s3 cp 명령을 사용하여 현재 작업 디렉터리에서 Amazon S3 버킷으로 로컬 파일을 이동합니다.

$ aws s3 mv filename.txt s3://bucket-name

다음 예제에서는 Amazon S3 버킷에서 현재 작업 디렉터리로 파일을 이동합니다. 여기서./는 현재 작업 디렉터리를 지정합니다.

$ aws s3 mv s3://bucket-name/filename.txt ./

 

6) 객체 복사

다음 예제에서는 s3://bucket-name/example에서 s3://my-bucket/으로 모든 객체를 복사합니다.

$ aws s3 cp s3://bucket-name/example s3://my-bucket/

 


더 자세한 aws s3 명령어를 살펴보고 싶으면 아래 링크를 이용해주세요.

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-before

 

AWS CLI에서 상위 수준(s3) 명령 사용 - AWS Command Line Interface

PowerShell을 사용하는 경우 셸은 CRLF의 인코딩을 변경하거나, 파이프 입력이나 출력 또는 리디렉션된 출력에 CRLF를 추가할 수 있습니다.

docs.aws.amazon.com

 

반응형

댓글