Cloud & Platform
15강. AWS SDK, CLI
15강. AWS SDK, CLI 학습 내용을 정리한 백필 노트입니다.
이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.
목차
- SDK
- CLI
- (실습) Node.js와 npm 설치하기
- (실습) Shared Credentials 설정
- (실습) AWS SDK for JavaScript
- (실습) AWS CLI 설치 및 사용
1. SDK (Software Development Kit)
정의
- *소프트웨어 개발 키트(Software Development Kit)**의 약자입니다.
- 애플리케이션을 만들기 위한 소프트웨어 개발 도구의 집합을 의미합니다.
- AWS SDK는 AWS 서비스와 연동하기 위한 개발 도구의 집합입니다.
지원 언어 및 플랫폼
AWS는 코딩의 복잡성을 줄이기 위해 다양한 언어별 API를 제공합니다.
- 주요 지원 언어:
- JavaScript
- Python
- PHP
- .NET
- Ruby
- Java
- Go
- Node.js
- C++
- Front-End 웹 & 모바일 SDK:
- 웹: JavaScript, React, Angular, Vue, Next.js
- 모바일: Android, iOS, React Native, Ionic, Flutter
2. CLI (Command Line Interface)
정의
- *명령행 인터페이스(Command Line Interface)**의 약자입니다.
- 터미널이나 쉘 등을 통해 명령을 실행하여 AWS 서비스를 제어하고 스크립트로 서비스 관리를 자동화할 수 있는 도구입니다.
AWS Command Line Tools 종류
- AWS CLI
- PowerShell Tools
- Amazon EC2 AMI Tools
- AWS Elastic Beanstalk CLI
- Amazon ECS CLI
- AWS Amplify CLI
- AWS Serverless Application Model (SAM) CLI
- AWS Copilot
3. (실습) Node.js와 npm 설치하기
- Node.js와 npm 이란?
Node.js: JavaScript 런타임npm: Node Package Manager
- 설치
- 공식 웹사이트(https://nodejs.org/)에 접속하여 LTS(Recommended For Most Users) 버전을 다운로드하여 설치합니다.
- 설치 확인
-
터미널에서 다음 명령어를 실행하여 각 버전이 정상적으로 출력되는지 확인합니다.Bash
# Node.js 버전 확인 node --version # npm 버전 확인 npm --version
-
4. (실습) Shared Credentials 설정
공유 자격 증명 (Shared Credentials) 이란?
- 컴퓨터에 AWS 자격 증명을 한 번 설정해두면, 별도의 추가 설정 없이 SDK나 CLI를 사용하여 AWS 서비스를 이용할 수 있게 해주는 방식입니다.
설정 절차
- IAM 사용자 생성
- AWS Management Console에 로그인하여 IAM 서비스로 이동합니다.
사용자메뉴에서사용자 생성을 클릭합니다.- 사용자 이름(예:
admin)을 입력하고 다음으로 넘어갑니다. 권한 설정단계에서직접 정책 연결을 선택합니다.- 권한 정책 목록에서 필요한 권한(예:
AmazonS3FullAccess)을 검색하여 체크하고 다음으로 넘어갑니다. - 설정을 검토한 후
사용자 생성을 완료합니다.
- 액세스 키 발급
- 생성된 사용자 상세 페이지로 이동하여
보안 자격 증명탭을 클릭합니다. 액세스 키섹션에서액세스 키 만들기를 클릭합니다.- 사용 사례로
Command Line Interface(CLI)를 선택하고, 경고창의 내용을 확인한 후 다음으로 진행합니다. - 설명 태그는 선택 사항이므로 건너뛰고
액세스 키 만들기를 클릭합니다. - 액세스 키와 비밀 액세스 키가 생성됩니다. 이 창을 벗어나면 비밀 액세스 키를 다시 확인할 수 없으므로,
.csv 파일 다운로드를 눌러 반드시 로컬 컴퓨터에 저장합니다.
- 생성된 사용자 상세 페이지로 이동하여
- Credential 파일 생성 및 설정
-
로컬 컴퓨터의 홈 디렉터리에
.aws폴더를 생성합니다.- Linux 및 macOS:
~/.aws/ - Windows:
%USERPROFILE%\.aws\
- Linux 및 macOS:
-
.aws폴더 내에credentials라는 이름의 파일을 생성합니다. -
다운로드한
.csv파일의Access key ID와Secret access key값을 복사하여credentials파일에 아래 형식으로 붙여넣습니다.Ini, TOML[default] region = ap-northeast-2 aws_access_key_id = YOUR_AWS_ACCESS_KEY aws_secret_access_key = YOUR_AWS_SECRET_KEY -
파일을 저장합니다.
-
5. (실습) AWS SDK for JavaScript
-
프로젝트 초기화
-
작업할 폴더를 생성하고 터미널에서 아래 명령어를 실행하여
package.json파일을 생성합니다.Bashnpm init -y
-
-
AWS SDK 설치
-
S3 서비스를 사용하기 위한 SDK 클라이언트를 설치합니다.Bash
npm install --save @aws-sdk/client-s3
-
-
package.json수정-
생성된
package.json파일을 열어 ES6 모듈(import구문)을 사용하기 위해 다음 코드를 추가합니다.JSON"type": "module"
-
-
JavaScript 코드 작성 (
index.js)-
index.js파일을 생성하고 아래 코드를 작성합니다.bucketName은 다른 사용자와 겹치지 않도록 고유한 이름으로 변경해야 합니다.JavaScriptimport { S3Client, CreateBucketCommand, PutObjectCommand, } from '@aws-sdk/client-s3'; export async function main() { const s3Client = new S3Client({}); // S3 버킷 생성 (버킷 이름은 고유해야 합니다) const bucketName = 'your-unique-bucket-name-20231010'; await s3Client.send( new CreateBucketCommand({ Bucket: bucketName, }) ); // S3 버킷에 파일 업로드 await s3Client.send( new PutObjectCommand({ Bucket: bucketName, Key: 'hello.txt', Body: 'Hello, JavaScript SDK!', }) ); } main();
-
-
스크립트 실행 및 확인
-
터미널에서 스크립트를 실행합니다.Bash
node index.js -
실행 후 오류 메시지가 없다면, AWS S3 콘솔에서
your-unique-bucket-name-20231010버킷이 생성되었는지 확인합니다. -
버킷 안으로 들어가
hello.txt파일이 생성되었고, 파일을 열었을 때 'Hello, JavaScript SDK!' 내용이 보이는지 확인합니다.
-
6. (실습) AWS CLI 설치 및 사용
-
AWS CLI 설치
- 공식 설치 가이드(링크)를 참고하여 운영체제에 맞는 설치 프로그램을 다운로드하고 설치합니다.
-
설치 확인
-
터미널에서 아래 명령어를 실행하여 버전 정보를 확인합니다.Bash
aws --version
-
-
CLI 명령어 사용
-
**S3 버킷 목록 조회 (
ls)**Bashaws s3 ls -
**S3 버킷 생성 (
mb)**Bash# s3:// 뒤에 고유한 버킷 이름을 입력합니다. aws s3 mb s3://your-unique-bucket-name-cli-2 -
**로컬 파일 S3 버킷에 업로드 (
cp)**Bash# 먼저 hello.txt 파일을 로컬에 생성합니다. # 파일 내용: Hello, AWS CLI! echo "Hello, AWS CLI!" > hello.txt # 파일을 S3 버킷으로 복사합니다. aws s3 cp hello.txt s3://your-unique-bucket-name-cli-2 -
**S3 버킷 삭제 (
rb)**Bash# 버킷이 비어있지 않으면 삭제가 실패합니다. aws s3 rb s3://your-unique-bucket-name-cli-2 # 버킷 안의 모든 객체를 삭제하고 버킷까지 삭제하려면 --force 옵션을 사용합니다. aws s3 rb s3://your-unique-bucket-name-cli-2 --force
-
※ SDK 및 CLI 사용 시 유의할 점
- 명령을 실행하려는 AWS 서비스에 대한 권한이 공유 자격 증명에 설정된 IAM 사용자에게 부여되어 있어야 합니다.
참고 자료
- AWS CLI Command Reference: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html