Taeyoung Kim

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 설치하기

  1. Node.js와 npm 이란?
    • Node.js: JavaScript 런타임
    • npm: Node Package Manager
  2. 설치
    • 공식 웹사이트(https://nodejs.org/)에 접속하여 LTS(Recommended For Most Users) 버전을 다운로드하여 설치합니다.
  3. 설치 확인
    • 터미널에서 다음 명령어를 실행하여 각 버전이 정상적으로 출력되는지 확인합니다.Bash

      # Node.js 버전 확인
      node --version
      
      # npm 버전 확인
      npm --version
      

4. (실습) Shared Credentials 설정

공유 자격 증명 (Shared Credentials) 이란?

  • 컴퓨터에 AWS 자격 증명을 한 번 설정해두면, 별도의 추가 설정 없이 SDK나 CLI를 사용하여 AWS 서비스를 이용할 수 있게 해주는 방식입니다.

설정 절차

  1. IAM 사용자 생성
    • AWS Management Console에 로그인하여 IAM 서비스로 이동합니다.
    • 사용자 메뉴에서 사용자 생성을 클릭합니다.
    • 사용자 이름(예: admin)을 입력하고 다음으로 넘어갑니다.
    • 권한 설정 단계에서 직접 정책 연결을 선택합니다.
    • 권한 정책 목록에서 필요한 권한(예: AmazonS3FullAccess)을 검색하여 체크하고 다음으로 넘어갑니다.
    • 설정을 검토한 후 사용자 생성을 완료합니다.
  2. 액세스 키 발급
    • 생성된 사용자 상세 페이지로 이동하여 보안 자격 증명 탭을 클릭합니다.
    • 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
    • 사용 사례로 Command Line Interface(CLI)를 선택하고, 경고창의 내용을 확인한 후 다음으로 진행합니다.
    • 설명 태그는 선택 사항이므로 건너뛰고 액세스 키 만들기를 클릭합니다.
    • 액세스 키비밀 액세스 키가 생성됩니다. 이 창을 벗어나면 비밀 액세스 키를 다시 확인할 수 없으므로, .csv 파일 다운로드를 눌러 반드시 로컬 컴퓨터에 저장합니다.
  3. Credential 파일 생성 및 설정
    • 로컬 컴퓨터의 홈 디렉터리에 .aws 폴더를 생성합니다.

      • Linux 및 macOS: ~/.aws/
      • Windows: %USERPROFILE%\.aws\
    • .aws 폴더 내에 credentials라는 이름의 파일을 생성합니다.

    • 다운로드한 .csv 파일의 Access key IDSecret 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

  1. 프로젝트 초기화

    • 작업할 폴더를 생성하고 터미널에서 아래 명령어를 실행하여 package.json 파일을 생성합니다.Bash

      npm init -y
      
  2. AWS SDK 설치

    • S3 서비스를 사용하기 위한 SDK 클라이언트를 설치합니다.Bash

      npm install --save @aws-sdk/client-s3
      
  3. package.json 수정

    • 생성된 package.json 파일을 열어 ES6 모듈(import 구문)을 사용하기 위해 다음 코드를 추가합니다.JSON

      "type": "module"
      
  4. JavaScript 코드 작성 (index.js)

    • index.js 파일을 생성하고 아래 코드를 작성합니다. bucketName은 다른 사용자와 겹치지 않도록 고유한 이름으로 변경해야 합니다.JavaScript

      import {
          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();
      
  5. 스크립트 실행 및 확인

    • 터미널에서 스크립트를 실행합니다.Bash

      node index.js
      
    • 실행 후 오류 메시지가 없다면, AWS S3 콘솔에서 your-unique-bucket-name-20231010 버킷이 생성되었는지 확인합니다.

    • 버킷 안으로 들어가 hello.txt 파일이 생성되었고, 파일을 열었을 때 'Hello, JavaScript SDK!' 내용이 보이는지 확인합니다.


6. (실습) AWS CLI 설치 및 사용

  1. AWS CLI 설치

    • 공식 설치 가이드(링크)를 참고하여 운영체제에 맞는 설치 프로그램을 다운로드하고 설치합니다.
  2. 설치 확인

    • 터미널에서 아래 명령어를 실행하여 버전 정보를 확인합니다.Bash

      aws --version
      
  3. CLI 명령어 사용

    • **S3 버킷 목록 조회 (ls)**Bash

      aws 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 사용자에게 부여되어 있어야 합니다.

참고 자료