종원

AWS CCP 자격증 - 2 (CLI) 본문

AWS/자격증

AWS CCP 자격증 - 2 (CLI)

곰종 2024. 6. 30. 00:51

저번 포스팅에서는 관리 콘솔을 통해 AWS에 액세스하는 법을 살펴봤습니다. 지금까지 다룬 웹 인터페이스에 해당합니다.

하지만 사실 AWS에 액세스하는 방법은 세 가지가 있습니다. 첫 번째는 사용해 왔던 AWS 콘솔로, 사용자 이름 및 비밀번호와 다요소 인증으로 보호됩니다.

그리고 명령줄 인터페이스인 CLI가 있습니다. 이건 컴퓨터에서 설정하는 건데 액세스 키에 의해 보호됩니다.

액세스 키란 자격 증명으로 곧 다운로드를 받을 텐데요, 터미널에서의 AWS 액세스를 가능하도록 해줍니다.

그리고 AWS 소프트웨어 개발자 키트인 SDK가 있습니다. AWS로부터 애플리케이션 코드 내에서 API를 호출하고자 할 때 사용되는 방식입니다.

이 두 방식 모두 완전히 동일한 액세스 키로 보호가 됩니다.

그럼 액세스 키는 어떻게 생성할까요?

관리 콘솔을 사용해서 생성할 수 있습니다. 그리고 사용자들이 자신들의 액세스 키를 직접 관리합니다.

사용자의 측면에서 액세스 키는 비밀번호와 마찬가지로 암호와 같습니다.

그러니 자신만의 액세스 키를 생성하게 되면 다른사람과 공유해서는 안 됩니다.

다들 각자의 액세스 키를 생성하게 될 테니까요

따라서 액세스 키의 ID는 사용자 이름이라고 생각하시면 되고 액세스 키는 비밀번호라고 생각하시면 됩니다.

 

AWS CLI

CLI는 명령줄 인터페이스를 의미하며,

AWS CLI는 명령줄 셸에서 명령어를 사용하여, AWS 서비스들과 상호작용할 수 있도록 해 주는 도구입니다.

그러니 만약 명령줄을 입력하고 코드가 나오면 이런 결과를 반환할 겁니다.

aws s3 cp로 시작하는 식이죠 이게 바로 CLI입니다.

AWS CLI를 사용하는 이유는 모든 명령어가 aws로 시작하기 때문입니다.

CLI를 사용하면 AWS 서비스의 공용 API로 직접 액세스가 가능합니다. 그리고 CLI를 통해 리소스를 관리하는 스크립트를 개발해 일부 작업을 자동화할 수 있습니다.

 

CLI는 오픈 소스로, GitHub에서 모든 소스 코드를 찾으실 수 있으며 AWS 관리 콘솔 대신 사용되기도 합니다.

몇몇 사람들은 관리 콘솔을 아예 사용하지 않고 CLI만 사용하기도 합니다. (나도 그런 고수가 될테야)

 

 AWS SDK

SDK는 소프트웨어 개발 키트입니다.

특정 언어로 된 라이브러리의 집합인데요, 따라서 프로그래밍 언어에 따라 개별 SDK가 존재합니다.

이 방식을 사용해서도 역시 AWS 서비스나 API에 프로그래밍을 위한 액세스가 가능하도록 해줍니다.

 

하지만 SDK는 터미널 내에서는 사용하는 것이 아니라, 코딩을 통해 애플리케이션 내에 심어 두어야 하는 겁니다.

애플리케이션 내에 자체적으로 AWS SDK가 있고 다양한 프로그래밍 언어를 지원합니다.

JavaScript Python, PHP, .NET, Ruby, Java, Go Node.js, C++ 등을 지원합니다.

전부 프로그래밍 언어들이죠

안드로이드나 iOS를 쓰면 모바일 SDK도 사용 가능합니다.

사물 간 인터넷이라는 IoT SDK 장치도 지원하죠 이 장치는 온도 센서를 사용하는 경우나 연결된 백로그 등에서 사용됩니다.

SDK로 구축할 수 있는 것의 예시를 들면, AWS CLI는 사실상 Boto라는 Python용 AWS SDK에 구축되어 있습니다.

 

AWS CLI 실습하기

Google에 AWS CLI install을 검색하여 설치합니다.

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html 

 

 

Install or update to the latest version of the AWS CLI - AWS Command Line Interface

When updating from a previous version, the unzip command prompts to overwrite existing files. To skip these prompts, such as with script automation, use the -u update flag for unzip. This flag automatically updates existing files and creates new ones as ne

docs.aws.amazon.com

https://awscli.amazonaws.com/AWSCLIV2.msi

 

 

 

 

설치 확인은 aws --version으로 확인

 

 

이제 저번 IAM 실습에서 만들었던 사용자를 클릭한 후 보안 자격 증명에 들어가 엑세스 키를 만듭니다.

 

 

엑세스키를 생성했으면, CLI에서 활용할 수 있습니다.

 

 

aws iam list-users 명령어를 이용하여 내 계정의 모든 사용자가 나열됩니다. 

사용자 ID, Arn, 생성된 날짜, 비밀번호가 마지막으로 사용된 시점이 나옵니다. 이 내용은 AWS Console에서 나오는 내용과 매우 비슷합니다. 따라서 관리 콘솔과 CLI는 유사한 정보를 제공한다는 것을 알 수 있습니다.

 

하지만 이 과정은 제가 최초의 만들었던 사용자 iamgomgjong이 admin 그룹에서 모든 권한을 가지고 있기 때문에 이렇게 명령어를 사용해서 정보를 볼 수 있었고, 권한이 없다면 저번 콘솔에서와 같이 권한 외 정보는 제공하지 않습니다.

 

또한 

 

CLI를 통해 명령을 내리는 대신, CloudShell을 사용할 수 있습니다. 

 

CloudShell을 모든 리전에서 제공하지는 않습니다. 특정 리전에서만 사용이 가능합니다.

다행히 한국 (ap-northeast-2)은 사용이 가능합니다.

 

CloudShell을 사용하여 aws --version 을 입력하면 cloudshell을 사용 중이고, 버전이 나옵니다. 

CloudShell은 AWS 클라우드에서 무료로 사용 가능한 터미널 같은 개념입니다. 

 

CloudShell의 장점은 CLI를 사용할 때, API 호출을 반환해 주는데, 마치 자격 증명이 클라우드를 사용 중인 계정에서 실행되고 있는 것처럼 표시됩니다.

또한 여기서는 기본 리전이 현재 로그인된 리전으로 나오게 됩니다. 

CloudShell에는 전체 저장소도 있는데, ls 명령어를 통해 보면, 처음에는 파일이 하나도 없는 걸 볼 수 있는데 test라는 문자열을 demo.txt 파일에 작성하고, cat 명령어를 사용하여 출력해보면 test라는 문자열이 있는 것을 볼 수 있습니다.

 

그리고 CloudShell을 재시작하게 되면 파일이 그대로 있는데, 이 환경에서 생성한 demo.txt파일 같은게 저장될 수 있다는 것입니다.

 

또한 여기서 표시 기본 설정을 바꿀 수 있는데 글씨 크기, 테마등을 선택하고, 안전하게 붙여넣기 기능도 있습니다.

 

그리고 

 

작업 탭을 활성화 하면, 여러가지 기능을 확인할 수 있습니다.

 

여기서 작성한 파일을 pwd 명령어를 통해 경로를 복사하고, 파일을 AWS CloudShell에서 로컬 데스크톱으로 파일을 다운로드 할 수 있습니다. 아직 다운로드가 되는 경로는 설정할 수 없는 것 같습니다.

 

또 다른 기능으로는 cloudshell환경에 파일을 업로드 할 수 있고, 탭이 더 필요하면 더 생성 할 수 있고 행, 열로 나눠 출력할 수 있습니다.

 

 

정리하자면,

 

1. 웹으로 제공하는 관리 콘솔과, CLI, AWS CloudShell을 통해 AWS Cloud에 엑세스를 할 수 있다.

2. 대부분의 기능은 동일하다.

3. CloudShell은 특정 리전에서만 가능하고 다양한 기능을 제공한다

'AWS > 자격증' 카테고리의 다른 글

AWS CCP 자격증 - 5 (ELB, ASG)  (1) 2024.07.03
AWS CCP 자격증 - 4 (EBS)  (0) 2024.07.01
AWS CCP 자격증 - 3 (EC2)  (0) 2024.07.01
AWS CCP 자격증 - 1 (기본, IAM)  (4) 2024.06.16
AWS CCP - 퀴즈  (0) 2024.06.14