
AWS CLI의 설치 및 사용법은 AWS 공식문서에 자세히 설명되어 있다. 밑에 역시 공식문서를 참고하여 설치한 것을 따라 간 것이다.
AWS CLI(AWS Command Line Interface)는 AWS 서비스를 관리하는 통합 도구이다. AWS CLI로 여러 개의 AWS 서비스를 명령으로 제어하고 스크립트를 통해 자동화할 수 있다.
나는 AWS 콘솔을 이용하여 서비스를 제어할 수도 있지만 AWS UI가 은근 헷갈릴 때도 있고 클러스터 내부를 확인하기 위해서 CLI를 사용해보려고 한다.
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
터미널을 열고 위 명령어를 입력하면 자동으로 설치된다. 문서에 명령어에 대한 설명도 첨부되어있는데curl 명령어를 통해 AWSCLIV2.pkg 를 다운받고 표준 macOS installer 프로그램으로 설치하는 방식이다. -pkg 파라미터는 설치할 패키지의 이름을 지정하고 -target 파라미터는 패키지를 설치할 드라이브를 지정한다.
그러면 파일은 /usr/local/aws-cli 에 설치되고 /usr/local/bin 에 symlink가 자동으로 만들어진다. 이때 설치되는 위치 때문에 sudo 권한이 필요하다.
만약 다른 OS거나 GUI 설치를 하고 싶다면 최신 버전의 AWS CLI 설치 또는 업데이트 문서를 참고하면 된다.
$ aws --version
aws-cli/2.17.46 Python/3.11.9 Darwin/22.6.0 exe/x86_64
위처럼 버전이 나오면 설치가 잘 된것이다.
이제 aws 서비스에 접근하기 위해서 액세스 키를 등록해야 한다. 그러기 위해선 먼저 액세스 키를 생성해야 하는데 이를 위해 콘솔에 접속해야 한다. (한 번 등록하면 aws cli로도 등록이 가능하지만 처음 등록할 때는 권한이 없어서 막힌 것 같았다. 정확하진 않다.)

먼저 로그인을 하고 오른쪽 위에 계정을 클릭하면 위와 같은 메뉴가 나온다. 거기서 Security credentials(보안 자격 증명) 을 선택한다.

보안 자격 증명 창으로 들어왔으면 드래그를 해서 위 사진처럼 액세스 키 항목이 나올 때까지 드래그한다. 여기서 액세스 키 만들기를 들어가면 된다.

액세스 키 생성을 선택하면 위 사진처럼 용도에 대해서 먼저 물어본다. 우리는 AWS CLI에 사용할 것이기에 가장 위에 CLI를 선택하면 된다.

선택하면 위와 같이 권장되는 대안을 표시해준다. 이 대안을 사용해도 되지만 cloud shell을 사용하지 않을 것이기에 체크 후, 다음 버튼을 누른다. 그 뒤에 나오는 태그는 선택 사항으로 키를 식별하는데 도움이 된다. 각자에 맞게 지정한 다음 '액세스 키 만들기' 를 누르면 액세스 키가 만들어진다.

위처럼 키가 나타나는데 비밀 액세스 키는 지금이 아니면 다시 확인할 수 없다. 그렇기에 .csv 파일로 다운받거나 안전한 곳에 적어두어야 한다.
이제 AWS CLI에 설정을 해야 한다. 아래 명령어를 이용해 AWS Access Key , Secret Access Key , Default Region , Output Format 을 설정한다.
$ aws configure
AWS Access Key ID[None]:
AWS Secret Access Key[None]:
Default region name[None]:
Default output format[None]:
입력할 수 있는 값이 차례대로 나올텐데 아까 생성한 액세스 키를 등록하면 된다. Default Refgion 은 기본 리전을 설정하면 되는데 도시 이름이 아닌 코드를 입력해야 한다. 각 리전의 코드는 ec2 사용자 가이드나 콘솔창 오른쪽 상단에 지역을 클릭해서 아래처럼 확인할 수 있다. 참고로 서울 리전은 ap-northeast-2 이다.

Output format 은 AWS CLI의 출력 형식을 지정하는 것으로 json, yaml, yaml-stream, text, table 형태를 지원한다. 자세한 것은 AWS CLI 출력 형식 설정을 참고하면 된다.
$ aws configure
$ aws iam create-access-key
$ aws iam update-access-key
$ aws iam list-access-keys
$ aws iam get-access-key-last-used
$ aws iam delete-access-key --access-key-id {ACCESS_KEY}