일상적인 리소스 관리를 위한 필수 AWS CLI 명령어 Top 10

이 필수적인 상위 10가지 AWS CLI 명령어 치트 시트로 AWS의 잠재력을 최대한 활용하십시오. 이 가이드에서는 S3 스토리지, EC2 컴퓨팅 인스턴스 및 IAM 사용자 관리에 걸쳐 일상적인 리소스 관리에 필수적인 명령어를 다룹니다. 목록화, 복사, 동기화, 시작, 중지, 종료 및 사용자 권한 관리를 효율적으로 배우십시오. 실용적인 예제와 모범 사례를 통해 생산성을 높이고, 작업을 자동화하고, AWS 운영을 간소화하십시오. AWS CLI를 마스터하고자 하는 개발자, 운영 엔지니어 및 클라우드 관리자에게 이상적입니다.

28 조회수

일상적인 리소스 관리를 위한 필수 AWS CLI 명령어 상위 10가지

서론

클라우드 컴퓨팅의 역동적인 세계에서 아마존 웹 서비스(AWS)는 다양한 서비스를 제공하는 선두 플랫폼으로 두각을 나타냅니다. AWS 관리 콘솔은 사용자 친화적인 그래픽 인터페이스를 제공하지만, AWS 명령줄 인터페이스(CLI)는 리소스를 관리하는 데 있어 비할 데 없는 강력함과 유연성을 제공합니다. CLI는 터미널에서 명령어를 사용하여 AWS 서비스와 상호작용할 수 있도록 해주는 오픈소스 도구로, 자동화, 스크립팅, 그리고 효율적인 일상 운영 작업을 위해 필수적입니다.

AWS CLI를 숙달하면 생산성을 크게 높일 수 있으며, AWS 계정 전반의 리소스를 신속하게 검사하고, 생성하고, 수정하고, 삭제할 수 있습니다. 이 글은 모든 AWS 사용자가 일상적인 리소스 관리를 위해 알아야 할 필수 AWS CLI 명령어 상위 10가지를 강조하는 중요한 치트 시트 역할을 합니다. 특히 Amazon S3(스토리지), Amazon EC2(컴퓨팅), AWS IAM(자격 증명 및 액세스 관리)에 중점을 둡니다.

개발자, 운영 엔지니어 또는 클라우드 관리자이든 관계없이, 이 명령어들은 AWS 환경을 보다 효과적으로 관리하고, 문제 해결을 가속화하며, 반복적인 작업을 자동화할 수 있는 도구를 제공할 것입니다. 이제 일상적인 워크플로우를 가속화할 명령어들을 살펴보겠습니다.

전제 조건

시작하기 전에 시스템에 AWS CLI가 설치 및 구성되어 있는지 확인하십시오. 설치되어 있지 않다면, AWS 공식 문서를 참조하여 설치하고 자격 증명(액세스 키 ID, 비밀 액세스 키, 기본 리전)을 구성하십시오.

# AWS CLI 버전 확인
aws --version

# AWS CLI 구성 (아직 완료되지 않은 경우)
aws configure

Amazon S3(Simple Storage Service)를 위한 필수 AWS CLI 명령어

Amazon S3는 확장성이 뛰어나고 내구성이 좋으며 가용성이 높은 객체 스토리지 서비스입니다. 다음 명령어들은 버킷과 객체를 관리하는 데 필수적입니다.

1. aws s3 ls - S3 버킷 및 객체 나열

이 명령어는 S3 버킷 또는 특정 버킷 내의 객체를 나열할 수 있게 해줍니다. 이는 스토리지 환경을 이해하는 첫 번째 단계인 경우가 많습니다.

목적: S3 버킷 또는 버킷의 내용 보기.

예시:

# 계정의 모든 S3 버킷 나열
aws s3 ls

# 특정 버킷의 객체 나열
aws s3 ls s3://your-bucket-name/

# 인간이 읽을 수 있는 크기와 날짜로 객체 재귀적으로 나열 및 요약
aws s3 ls s3://your-bucket-name/ --recursive --human-readable --summarize

팁:
* --recursive를 사용하여 모든 객체와 하위 폴더를 나열합니다. --summarize는 총 개수와 크기를 제공합니다.
* 버킷 내의 경로를 지정할 수도 있습니다: aws s3 ls s3://your-bucket-name/prefix/.

2. aws s3 cp - S3로 및 S3에서 파일 복사

cp 명령어는 로컬 파일 시스템과 S3 간, 또는 S3 버킷 간에 파일을 전송하는 데 필수적입니다.

목적: 로컬 파일을 S3로 복사, S3 객체를 로컬로 복사, 또는 S3 버킷 간에 S3 객체 복사.

예시:

# 로컬 파일을 S3 버킷으로 복사
aws s3 cp local-file.txt s3://your-bucket-name/folder/remote-file.txt

# S3에서 로컬 머신으로 객체 복사
aws s3 cp s3://your-bucket-name/folder/remote-file.txt local-copy.txt

# 한 S3 버킷에서 다른 S3 버킷으로 객체 복사
aws s3 cp s3://source-bucket/file.txt s3://destination-bucket/new-file.txt

# 로컬 디렉토리를 S3로 재귀적으로 복사
aws s3 cp --recursive local-folder/ s3://your-bucket-name/remote-folder/

팁:
* --recursive는 전체 디렉토리를 복사하는 데 중요합니다.
* 재귀적 복사 중 파일을 필터링하려면 --exclude--include를 사용하십시오.

3. aws s3 sync - 로컬 디렉토리와 S3 동기화

sync는 디렉토리의 내용을 S3 프리픽스와 동기화하거나 그 반대로 수행하는 강력한 명령어입니다. 새로 생성되거나 수정된 파일만 복사하므로 백업 및 배포에 매우 효율적입니다.

목적: 로컬 디렉토리를 S3 버킷/프리픽스와 효율적으로 동기화.

예시:

# 로컬 디렉토리를 S3 버킷과 동기화
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/

# S3 버킷을 로컬 디렉토리와 동기화
aws s3 sync s3://your-bucket-name/remote-path/ local-directory/

# 실제 변경을 수행하지 않고 어떤 변경이 이루어질지 확인하는 드라이 런
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/ --dryrun

모범 사례: 특히 중요한 데이터의 경우, sync 작업을 실행하기 전에 항상 --dryrun을 사용하여 변경 사항을 미리 확인하십시오.

4. aws s3 rm - S3 객체 및 버킷 제거

이 명령어는 S3 버킷에서 객체를 삭제하거나 빈 버킷을 제거하는 데 사용됩니다.

목적: S3에서 객체 또는 빈 버킷 삭제.

예시:

# 버킷에서 단일 객체 삭제
aws s3 rm s3://your-bucket-name/path/to/object.txt

# 폴더(프리픽스) 내의 모든 객체를 재귀적으로 삭제
aws s3 rm s3://your-bucket-name/folder/ --recursive

# 빈 버킷 삭제
aws s3 rb s3://your-bucket-name/

# 버킷과 모든 내용물을 강제로 제거 (극도로 주의하여 사용하십시오!)
aws s3 rb s3://your-bucket-name/ --force

경고: aws s3 rb --force 명령어는 파괴적이며 되돌릴 수 없습니다. 지정된 버킷 내의 모든 객체와 버전을 삭제하므로 극도로 주의하여 사용하십시오.

Amazon EC2(Elastic Compute Cloud)를 위한 필수 AWS CLI 명령어

EC2는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 이 명령어들은 가상 서버를 관리하는 데 도움이 됩니다.

5. aws ec2 describe-instances - EC2 인스턴스 세부 정보 가져오기

이 명령어는 EC2 인스턴스에 대한 정보(상태, 공용/사설 IP, 태그 등)를 수집하는 데 사용됩니다.

목적: 하나 이상의 EC2 인스턴스에 대한 자세한 정보 검색.

예시:

# 현재 리전의 모든 EC2 인스턴스 설명
aws ec2 describe-instances

# 특정 태그(예: Environment=Production)를 가진 인스턴스 설명
aws ec2 describe-instances \n    --filters "Name=tag:Environment,Values=Production"

# 인스턴스 ID로 인스턴스 설명
aws ec2 describe-instances --instance-ids i-0abcdef1234567890

# JMESPath를 사용하여 인스턴스를 설명하고 특정 정보 필터링(예: PublicIpAddress)
aws ec2 describe-instances \n    --query "Reservations[*].Instances[*].{InstanceId:InstanceId,PublicIp:PublicIpAddress,State:State.Name}" \n    --output table

팁:
* --filters는 인스턴스 상태, 태그, 인스턴스 유형 등을 기반으로 결과를 좁히는 데 강력합니다.
* --query를 사용하면 특정 데이터 필드를 추출하고 출력을 다시 포맷할 수 있습니다(예: JMESPath 표현식 사용).

6. aws ec2 start-instances - 중지된 EC2 인스턴스 시작

이 명령어를 사용하여 하나 이상의 중지된 EC2 인스턴스를 시작합니다. 인스턴스는 사설 IP 주소를 유지합니다.

목적: 중지된 EC2 인스턴스의 시작 프로세스 개시.

예시:

# 단일 EC2 인스턴스 시작
aws ec2 start-instances --instance-ids i-0abcdef1234567890

# 여러 EC2 인스턴스 시작
aws ec2 start-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

7. aws ec2 stop-instances - 실행 중인 EC2 인스턴스 중지

이 명령어는 실행 중인 EC2 인스턴스를 중지합니다. 인스턴스가 중지되어 있는 동안에는 인스턴스 사용료가 청구되지 않으며, 연결된 EBS 볼륨에 대해서만 요금이 부과됩니다.

목적: 실행 중인 EC2 인스턴스 중지.

예시:

# 단일 EC2 인스턴스 중지
aws ec2 stop-instances --instance-ids i-0abcdef1234567890

# 여러 EC2 인스턴스 중지
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

# 인스턴스 강제 중지 (운영 시스템에서는 주의하여 사용하십시오)
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 --force

경고: 인스턴스를 강제로 중지하면 애플리케이션이 정상적으로 종료되지 않았을 경우 데이터 손실 또는 파일 시스템 손상이 발생할 수 있습니다.

8. aws ec2 terminate-instances - EC2 인스턴스 종료

인스턴스를 종료하면 해당 인스턴스와 연결된 EBS 볼륨(종료 시에도 유지되도록 구성되지 않은 경우)이 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.

목적: EC2 인스턴스 영구 삭제.

예시:

# 단일 EC2 인스턴스 종료
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890

# 여러 EC2 인스턴스 종료
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

경고: 종료는 영구적이며 되돌릴 수 없는 작업입니다. 인스턴스를 종료하기 전에 중요한 데이터의 백업 또는 스냅샷이 있는지 확인하십시오.

IAM(Identity and Access Management)을 위한 필수 AWS CLI 명령어

IAM을 사용하면 AWS 서비스 및 리소스에 대한 액세스를 안전하게 제어할 수 있습니다. 이 명령어들은 사용자와 권한을 관리하는 데 도움이 됩니다.

9. aws iam list-users - IAM 사용자 나열

이 명령어는 AWS 계정의 모든 IAM 사용자 목록과 해당 ARN, 생성 날짜, 사용자 ID를 제공합니다.

목적: AWS 계정에 구성된 모든 IAM 사용자 보기.

예시:

# 모든 IAM 사용자 나열
aws iam list-users

# JMESPath를 사용하여 사용자를 나열하고 특정 필드 추출
aws iam list-users --query "Users[*].{UserName:UserName,CreateDate:CreateDate,Arn:Arn}" --output table

모범 사례: 필요한 사용자만 존재하고 오래되거나 사용되지 않는 계정이 제거되었는지 확인하기 위해 IAM 사용자 목록을 정기적으로 검토하십시오.

10. aws iam list-attached-user-policies - IAM 사용자에게 연결된 정책 나열

IAM 사용자가 어떤 권한을 가지고 있는지 이해하는 것은 보안 및 액세스 문제 해결에 매우 중요합니다. 이 명령어는 특정 사용자에게 직접 연결된 관리형 정책을 나열합니다.

목적: IAM 사용자에게 연결된 관리형 정책 표시.

예시:

# 특정 IAM 사용자에게 연결된 모든 관리형 정책 나열
aws iam list-attached-user-policies --user-name YourIAMUserName

# 특정 IAM 사용자에게 연결된 인라인 정책 나열
aws iam list-user-policies --user-name YourIAMUserName

팁:
* 사용자는 그룹(aws iam list-groups-for-user) 및 역할로부터 권한을 상속받거나 인라인 정책(aws iam list-user-policies)을 가질 수도 있다는 점을 기억하십시오.
* 특정 정책의 세부 정보를 얻으려면 aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess를 사용한 다음 aws iam get-policy-version을 사용하십시오.

결론

AWS CLI는 아마존 웹 서비스에서 리소스를 관리하는 모든 사람에게 매우 강력한 도구입니다. 이 가이드에서 설명한 S3, EC2, IAM을 다루는 10가지 명령어는 일상적인 운영 작업의 기반을 형성하며, 클라우드 리소스를 효율적이고 정확하게 나열, 생성, 수정 및 삭제할 수 있도록 해줍니다.

이 명령어들을 일상 업무에 통합함으로써 워크플로우를 간소화하고, 반복적인 작업을 자동화하며, AWS 환경에 대한 더 깊은 통찰력을 얻을 수 있습니다. AWS CLI는 이러한 필수 명령어를 넘어 광범위한 기능을 제공합니다. 도구 키트를 더욱 확장하고 더 고급 기능을 발견하려면 AWS 공식 CLI 문서를 탐색하는 것을 권장합니다. 꾸준한 연습과 탐색은 전문 지식을 공고히 하고 AWS의 잠재력을 최대한 활용할 수 있도록 지원할 것입니다.

오늘부터 이 명령어들을 연습하여 클라우드 관리 생산성을 급증시키세요!