AWS CLI 완벽 정복: 설치부터 S3 파일 업로드까지 한 번에 끝내기!
안녕하세요! 클라우드 서비스를 다루다 보면 반복적인 작업을 자동화하거나, 그래픽 인터페이스(GUI) 없이 빠르게 명령을 실행하고 싶을 때가 많습니다. 이럴 때 AWS Command Line Interface (CLI)는 정말 강력한 도구가 됩니다.
오늘은 AWS CLI의 설치부터 기본 구성, 그리고 가장 많이 사용되는 서비스 중 하나인 S3에 파일을 업로드하는 방법까지 차근차근 알아보겠습니다.
1. AWS CLI란 무엇이고 왜 사용해야 할까요?
AWS CLI는 AWS 서비스를 명령줄에서 직접 제어할 수 있게 해주는 오픈 소스 도구입니다. 터미널(macOS/Linux)이나 PowerShell(Windows)에서 간단한 명령어를 입력하여 EC2 인스턴스를 시작하거나, S3 버킷을 관리하고, IAM 사용자를 설정하는 등 AWS 콘솔에서 할 수 있는 거의 모든 작업을 수행할 수 있습니다.
AWS CLI 사용의 장점:
- 자동화: 스크립트 작성을 통해 반복적인 작업을 자동화할 수 있습니다.
- 효율성: GUI를 여러 번 클릭하는 것보다 빠르게 작업을 처리할 수 있습니다.
- 통합: 다른 스크립트나 도구와 쉽게 통합하여 워크플로우를 구축할 수 있습니다.
- 세밀한 제어: 콘솔에서는 제공하지 않는 세밀한 옵션 설정이 가능할 때도 있습니다.
개발자나 시스템 관리자라면 AWS CLI는 필수 스킬 중 하나라고 할 수 있습니다.
2. AWS CLI 설치하기 (Windows 기준, macOS/Linux도 간단!)
AWS CLI는 다양한 운영체제에서 설치할 수 있습니다. 여기서는 Windows를 기준으로 설명하지만, 다른 OS도 매우 간단합니다.
공식 설치 가이드 방문: AWS는 친절하게도 한국어 가이드를 제공합니다. 아래 링크에서 최신 버전의 설치 방법을 확인하세요.
Windows:
- 위 링크에서 Windows용
.msi설치 프로그램을 다운로드합니다. - 다운로드한 파일을 실행하고, 화면의 지시에 따라 "다음"을 눌러 설치를 완료합니다. 특별히 설정을 변경할 부분은 없습니다.
- 위 링크에서 Windows용
macOS/Linux (참고):
- 일반적으로
curl명령어를 사용해 설치 스크립트를 다운로드하고 실행하거나, Python 패키지 관리자인pip를 통해 (pip install awscli) 설치할 수 있습니다. 자세한 내용은 위 공식 가이드를 참고하세요.
- 일반적으로
3. 설치 확인: 버전 정보 보기
설치가 올바르게 완료되었는지 확인해 봅시다. PowerShell(Windows)이나 터미널(macOS/Linux)을 열고 다음 명령어를 입력하세요.
aws --version
다음과 유사한 형태로 AWS CLI 버전, Python 버전, OS 정보 등이 출력된다면 성공적으로 설치된 것입니다.
aws-cli/2.15.0 Python/3.11.6 Windows/10 exec-env/EC2 RenchKernel/5.10.102.1 Botocore/1.34.0
(버전 정보는 설치 시점에 따라 다를 수 있습니다.)
4. AWS CLI 사용자 인증 정보 구성: aws configure
AWS CLI가 여러분의 AWS 계정에 접근하여 작업을 수행하려면 인증 정보가 필요합니다. 이때 aws configure 명령어를 사용합니다.
준비물:
- AWS Access Key ID
- AWS Secret Access Key
이 두 가지 키는 AWS IAM(Identity and Access Management) 서비스에서 사용자를 생성할 때 발급받을 수 있습니다. 보안을 위해 루트 계정의 키 대신, 필요한 권한만 가진 IAM 사용자의 키를 사용하는 것이 강력히 권장됩니다.
PowerShell이나 터미널에서 다음 명령어를 입력합니다.
aws configure
그러면 다음과 같은 정보들을 순서대로 입력하라는 프롬프트가 나타납니다.
AWS Access Key ID [None]:발급받은 Access Key ID를 입력하고 Enter를 누릅니다.AWS Secret Access Key [None]:발급받은 Secret Access Key를 입력하고 Enter를 누릅니다. (입력 시 화면에 표시되지 않으니 주의하세요!)Default region name [None]:주로 사용할 AWS 리전 이름을 입력합니다. 예를 들어, 서울 리전은ap-northeast-2입니다.Default output format [None]:CLI 명령어 결과의 기본 출력 형식을 지정합니다. 보통json을 많이 사용하며,text나table형식도 선택할 수 있습니다.json을 추천합니다.
입력이 완료되면 이 정보들은 사용자 홈 디렉터리 아래의 .aws 폴더(~/.aws/credentials 와 ~/.aws/config 파일)에 저장되어 다음 명령어 실행 시 자동으로 사용됩니다.
5. S3 기본 명령어 활용: 버킷 관리 및 파일 업로드/다운로드
이제 AWS CLI를 사용하여 Amazon S3(Simple Storage Service)를 다루는 몇 가지 기본적인 명령어를 실행해 보겠습니다.
5.1. 내 S3 버킷 목록 확인하기: aws s3 ls
계정에 생성된 S3 버킷들의 목록을 보려면 다음 명령어를 사용합니다.
aws s3 ls
출력 예시:
2023-10-26 14:30:00 my-awesome-bucket-01
2024-01-15 09:15:00 my-project-data-backup
버킷 생성 날짜와 버킷 이름이 표시됩니다.
5.2. S3 버킷의 파일 로컬로 가져오기(동기화): aws s3 sync
S3 버킷에 있는 특정 폴더나 파일들을 로컬 컴퓨터로 다운로드(동기화)할 수 있습니다.
aws s3 sync s3://<버킷이름>/[S3내_폴더경로] <로컬_다운로드_경로>
예를 들어, my-project-data-backup 버킷의 images/ 폴더 내용을 현재 디렉터리 아래 backup_images 폴더로 받고 싶다면:
aws s3 sync s3://my-project-data-backup/images/ ./backup_images
이 명령어는 backup_images 폴더가 없다면 생성하고, S3의 images/ 폴더 내용과 로컬 폴더 내용을 동일하게 만듭니다.
5.3. 로컬 파일을 S3 버킷으로 업로드하기: aws s3 cp
로컬 컴퓨터의 파일을 S3 버킷으로 업로드할 때는 cp (copy) 명령어를 사용합니다.
aws s3 cp <로컬_파일_경로_및_이름> s3://<버킷이름>/[S3내_업로드_경로_및_이름]
예를 들어, 현재 디렉터리에 있는 report.docx 파일을 my-awesome-bucket-01 버킷의 documents/ 폴더 안에 final_report.docx라는 이름으로 업로드하고 싶다면:
aws s3 cp ./report.docx s3://my-awesome-bucket-01/documents/final_report.docx
업로드가 성공하면 터미널에 upload: ./report.docx to s3://my-awesome-bucket-01/documents/final_report.docx 와 같은 메시지가 표시됩니다. AWS 콘솔에서 해당 S3 버킷으로 이동하여 파일이 잘 업로드되었는지 확인할 수 있습니다.
6. 마무리하며: AWS CLI로 더 스마트하게!
지금까지 AWS CLI의 설치부터 구성, 그리고 S3 관련 기본 명령어 사용법까지 알아보았습니다. 이 외에도 AWS CLI는 수많은 AWS 서비스를 지원하며, 다양한 옵션을 통해 더욱 강력한 기능을 제공합니다.
CLI를 사용하면 AWS 콘솔에 직접 접속하지 않고도 효율적으로 리소스를 관리하고, 스크립트를 통해 복잡한 작업들을 자동화할 수 있습니다. 오늘 배운 내용을 바탕으로 AWS 공식 문서를 참고하여 더 많은 명령어와 기능을 익혀보세요. 여러분의 AWS 활용 능력이 한층 더 업그레이드될 것입니다!