/엔지니어/클라우드/AWS S3 버킷 생성과 CLI 활용
클라우드초급ubuntumacosawss3cli

AWS S3 버킷 생성과 CLI 활용

S3 버킷을 생성하고, 버킷 정책과 ACL을 설정하며, AWS CLI로 파일을 업로드·다운로드·동기화하는 방법입니다.

S3 버킷 생성

Bash
aws s3 mb s3://my-bucket-name --region ap-northeast-2
aws s3 ls
aws s3 ls s3://my-bucket-name/
aws s3 ls s3://my-bucket-name/logs/ --recursive

파일 업로드 / 다운로드

Bash
aws s3 cp file.txt s3://my-bucket/file.txt
aws s3 cp ./dist/ s3://my-bucket/dist/ --recursive

aws s3 cp s3://my-bucket/file.txt ./file.txt

aws s3 sync ./dist/ s3://my-bucket/ --delete
aws s3 sync s3://my-bucket/backups/ ./backups/

유용한 옵션

Bash
aws s3 sync . s3://my-bucket/ --exclude "*.log" --exclude ".git/*"

aws s3 cp backup.tar.gz s3://my-bucket/backups/ \
  --storage-class STANDARD_IA

# 미리 서명된 URL (1시간)
aws s3 presign s3://my-bucket/private.pdf --expires-in 3600

버킷 정책 (공개 읽기)

JSON
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::my-bucket/*"
  }]
}
Bash
aws s3api put-bucket-policy \
  --bucket my-bucket \
  --policy file://bucket-policy.json

정적 웹사이트 호스팅

Bash
aws s3 website s3://my-bucket/ \
  --index-document index.html \
  --error-document error.html

백업 자동화 (cron + s3)

Bash
#!/bin/bash
DATE=$(date +%Y%m%d-%H%M)
BACKUP_FILE="/tmp/db-backup-${DATE}.tar.gz"

pg_dump mydb | gzip > "$BACKUP_FILE"
aws s3 cp "$BACKUP_FILE" "s3://my-backups/db/${DATE}.tar.gz" \
  --storage-class STANDARD_IA
rm -f "$BACKUP_FILE"
Bash
# crontab
0 3 * * * /opt/scripts/backup-to-s3.sh >> /var/log/s3-backup.log 2>&1
#aws#s3#cli#스토리지#백업#cloud
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서AWS 공식 문서

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.