S3 및 데이터 전송 비용 최적화
S3 Intelligent-Tiering, 수명 주기 규칙, S3 Select 및 CloudFront를 적용해 스토리지와 데이터 전송 비용을 크게 줄입니다.
S3 및 데이터 전송 비용 최적화은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
S3 스토리지 비용의 기본 원리
Amazon S3 스토리지 비용은 스토리지 클래스와 액세스 패턴에 따라 크게 달라집니다. S3 Standard는 월별 GB당 약 $0.023을 부과하며, 페타바이트 규모에서는 상당한 비용이 됩니다. 다행히 S3는 다양한 액세스 빈도에 맞게 최적화된 7개의 스토리지 클래스를 제공하고, 가격은 $0.023/GB(Standard)부터 $0.00099/GB(Glacier Deep Archive)까지 다양합니다. S3 비용 최적화의 핵심은 데이터에 적합한 스토리지 클래스를 선택하고 lifecycle 정책으로 전환을 자동화하는 것입니다.
# S3 storage class costs (us-east-1 approximate):
# S3 Standard: $0.023/GB/month
# S3 Intelligent-Tiering: $0.023/GB (frequent) + $0.0125 (infrequent)
# S3 Standard-IA: $0.0125/GB/month + retrieval fee
# S3 One Zone-IA: $0.01/GB/month (single AZ)
# S3 Glacier Instant: $0.004/GB/month + retrieval fee
# S3 Glacier Flexible: $0.0036/GB/month + retrieval time
# S3 Glacier Deep Archive: $0.00099/GB/month + retrieval timeS3 Intelligent-Tiering
S3 Intelligent-Tiering은 실제 액세스 패턴에 따라 객체를 액세스 계층 간에 자동으로 이동합니다. 검색 요금이 없고, 빈번한 액세스 계층에는 최소 사용 기간도 없습니다. 객체 수준에서 액세스를 모니터링하여 30일 동안 액세스되지 않은 객체를 저빈도 액세스 계층으로 이동하고(40% 저렴), 90일이 지나면 아카이브 즉시 액세스 계층으로 이동합니다(68% 저렴). 객체 1,000개당 월 $0.0025의 소액 모니터링 요금이 있습니다. 액세스 패턴을 예측할 수 없거나 동일한 버킷에 자주 사용하는 데이터와 거의 사용하지 않는 데이터가 섞여 있을 때 Intelligent-Tiering을 사용하십시오.
# Enable Intelligent-Tiering on objects
aws s3api put-object \
--bucket my-bucket \
--key data/report.parquet \
--body report.parquet \
--storage-class INTELLIGENT_TIERING
# Or set as default for entire bucket
aws s3api put-bucket-intelligent-tiering-configuration \
--bucket my-bucket \
--id whole-bucket-tiering \
--intelligent-tiering-configuration '{
"Id": "whole-bucket-tiering",
"Status": "Enabled",
"Tierings": [
{"AccessTier": "ARCHIVE_ACCESS", "Days": 90},
{"AccessTier": "DEEP_ARCHIVE_ACCESS", "Days": 180}
]
}'자동 계층화를 위한 S3 Lifecycle 규칙
S3 Lifecycle 규칙은 객체의 사용 기간을 기준으로 객체 전환과 만료를 자동화합니다. 접두사 또는 태그로 규칙을 정의한 다음, 특정 일수 기준에 따른 전환을 지정합니다. 일반적인 보관 lifecycle은 다음과 같습니다. Standard → Standard-IA(30일) → Glacier Instant Retrieval(90일) → Deep Archive(365일) → 삭제(2555일). 이렇게 하면 시간이 지남에 따라 GB당 스토리지 비용을 $0.023에서 $0.00099로 낮출 수 있으며, 보관 데이터의 경우 95%를 절감할 수 있습니다. Lifecycle 전환에는 IA와 Glacier의 경우 최소 객체 크기 128KB가 적용됩니다. 더 작은 객체는 전환해도 비용 효율적이지 않습니다.
# Lifecycle rule: transition logs to archive
aws s3api put-bucket-lifecycle-configuration \
--bucket app-logs-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "log-archive",
"Filter": {"Prefix": "logs/"},
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}'S3 Select 및 Glacier Select
S3 Select를 사용하면 객체 전체를 다운로드하는 대신 SQL 표현식으로 S3 객체에서 필요한 데이터만 검색할 수 있습니다. 예를 들어 10GB CSV 파일에서 100개 행만 필요한 경우 S3 Select는 해당 행만 검색하여 데이터 전송 비용과 애플리케이션 처리 시간을 크게 줄일 수 있습니다. Glacier Select도 Glacier에 저장된 객체에 대해 같은 기능을 제공합니다. S3 Select는 CSV, JSON, Parquet 형식을 지원합니다. 이는 많은 쿼리가 각 데이터 파일의 일부만 액세스하는 데이터 분석 파이프라인에서 특히 유용합니다.
# S3 Select: query a CSV object using SQL expression
aws s3api select-object-content \
--bucket analytics-data \
--key sales/2026-06.csv \
--expression-type SQL \
--expression "SELECT * FROM S3Object WHERE region = 'us-east'" \
--input-serialization 'CSV={FileHeaderInfo=USE}' \
--output-serialization 'CSV={}' \
output.csv
# Only the matching rows are returned
# Saves data transfer cost vs downloading entire fileS3 Multipart Upload 및 Transfer Acceleration
대용량 객체를 업로드할 때 S3 Multipart Upload는 객체를 여러 부분으로 나누어(부분당 최소 5MB) 병렬로 업로드하므로 처리량이 향상되고 업로드를 재개할 수 있습니다. 일부가 실패해도 전체 업로드를 다시 시작하지 않고 실패한 부분만 재시도할 수 있습니다. 완료되지 않은 부분에 대한 요금이 부과되지 않도록 lifecycle 규칙으로 완료되지 않은 multipart 업로드를 정리하십시오. S3 Transfer Acceleration은 더 먼 지역에서의 업로드 속도를 높이기 위해 AWS CloudFront 엣지 로케이션을 통해 업로드를 라우팅합니다. 전 세계 사용자가 대용량 파일을 업로드하는 경우 유용하지만 추가 비용($0.04~$0.08/GB)이 발생합니다. 가속으로 측정 가능한 개선 효과가 있을 때만 사용하십시오.
# Multipart upload example
aws s3api create-multipart-upload \
--bucket my-bucket --key large-file.zip
# Abort incomplete multipart uploads via lifecycle
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "cleanup-incomplete-uploads",
"Status": "Enabled",
"AbortIncompleteMultipartUpload": {"DaysAfterInitiation": 7}
}]
}'데이터 전송 비용 이해하기
데이터 전송 비용은 AWS 청구서에서 가장 예상하기 어려운 항목 중 하나입니다. 주요 규칙은 다음과 같습니다. 인바운드 데이터 전송(AWS로 들어오는 데이터)은 무료입니다. 인터넷으로의 아웃바운드 데이터 전송은 약 $0.09/GB(월별 최초 10TB)입니다. 리전 간 데이터 전송은 약 $0.02/GB입니다. 동일한 리전 내 AZ 간 데이터 전송은 양방향 각각 $0.01/GB입니다. 동일한 AZ 내 전송은 무료입니다. 리전 간 및 인터넷으로 나가는 데이터 전송을 최소화하도록 아키텍처를 설계하십시오. 이것이 비용 효율적인 콘텐츠 제공에 리전 배포와 CloudFront가 중요한 이유입니다.
# Data transfer cost examples (us-east-1):
# Internet (outbound): $0.09/GB (first 10 TB)
# CloudFront -> internet: $0.0085/GB (much cheaper!)
# Cross-region: $0.02/GB
# Cross-AZ (same region): $0.01/GB each direction
# Same AZ: $0.00/GB (free)
# S3 -> CloudFront: $0.00/GB (free!)
# Cost reduction tip:
# S3 -> CloudFront -> users
# vs
# EC2 -> internet -> users
# CloudFront is 10x cheaper for data egress데이터 전송 비용 절감을 위한 CloudFront
Amazon CloudFront를 통해 콘텐츠를 제공하면 두 가지 방식으로 데이터 전송 비용을 크게 줄일 수 있습니다. 첫째, CloudFront의 송신 요금은 EC2 또는 S3의 직접 인터넷 액세스보다 저렴합니다(약 $0.0085/GB 대 $0.09/GB). 둘째, CloudFront는 엣지 로케이션에 콘텐츠를 캐시하므로 오리진에서 데이터를 제공하는 횟수가 줄어듭니다. 그 결과 한 번만 오리진에서 가져온 콘텐츠를 캐시에서 수백만 번 제공할 수도 있습니다. S3에서 CloudFront로의 데이터 전송도 무료입니다. 따라서 CloudFront는 성능 도구일 뿐 아니라 비용 최적화 도구이기도 합니다.
# Cost comparison for 100 TB/month of outbound traffic:
# Direct from EC2/S3 to internet:
# 100,000 GB x $0.09/GB = $9,000/month
# Via CloudFront (assuming 80% cache hit rate):
# 20,000 GB origin pull: free (S3->CF) or $0.02 (EC2->CF)
# 100,000 GB CF->internet: 100,000 x $0.0085 = $850
# Total: ~$1,250 vs $9,000 = 86% savings
# Create CloudFront distribution with S3 origin
aws cloudfront create-distribution \
--distribution-config file://cf-config.jsonNAT Gateway 비용 방지를 위한 VPC 엔드포인트
프라이빗 subnet의 EC2 인스턴스가 S3 또는 DynamoDB에 자주 액세스하면 NAT Gateway의 데이터 처리 요금($0.045/GB)이 상당한 비용이 될 수 있습니다. 대신 S3와 DynamoDB에는 VPC Gateway Endpoints를 사용하십시오. 이 엔드포인트는 비용 없이 AWS 네트워크 백본을 통해 트래픽을 라우팅하므로 이러한 서비스에 NAT Gateway가 필요하지 않습니다. 또한 다른 AWS 서비스에는 VPC Interface Endpoints(PrivateLink)를 사용하면 해당 서비스 트래픽에 대한 NAT Gateway 처리 요금을 없앨 수 있습니다. 단, Interface Endpoints 자체에는 소액의 시간당 비용이 발생합니다.
# Create VPC Gateway Endpoint for S3 (free!)
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345 \
--service-name com.amazonaws.us-east-1.s3 \
--vpc-endpoint-type Gateway \
--route-table-ids rtb-private-AZ1 rtb-private-AZ2
# Traffic from EC2 in private subnet to S3:
# WITHOUT endpoint: EC2 -> NAT GW ($0.045/GB) -> S3
# WITH endpoint: EC2 -> S3 via VPC endpoint ($0.00/GB)
# For DynamoDB:
aws ec2 create-vpc-endpoint \
--service-name com.amazonaws.us-east-1.dynamodb \
--vpc-endpoint-type GatewayS3 요청 비용 최적화
S3는 저장된 GB뿐 아니라 API 요청에도 요금을 부과합니다. PUT, COPY, POST, LIST 요청은 1,000건당 $0.005이고, GET, SELECT 요청은 1,000건당 $0.0004입니다. 수백만 건의 요청을 수행하는 애플리케이션에서는 이러한 비용이 누적됩니다. 다음과 같은 방법으로 최적화하십시오. 작은 객체를 묶어 더 큰 객체로 만들어 요청 수를 줄이고, CloudFront를 사용하여 캐시된 응답을 제공해 오리진에 대한 GET 요청을 줄이며, 가능한 경우 목록 조회 작업을 피하고(LIST는 비용이 높음), 수백만 건의 개별 API 호출 대신 대량 작업에는 S3 Batch Operations를 사용하십시오.
# S3 Batch Operations: process millions of objects at once
aws s3control create-job \
--account-id 123456789012 \
--manifest '{
"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},
"Location":{"ObjectArn":"arn:aws:s3:::manifest-bucket/manifest.csv","ETag":"abc123"}
}' \
--operation '{
"S3CopyObject": {
"TargetResource": "arn:aws:s3:::destination-bucket",
"StorageClass": "GLACIER"
}
}' \
--report '{"Bucket":"arn:aws:s3:::report-bucket","Enabled":true}'데이터 전송을 위한 AWS DataSync
온프레미스와 AWS 간 또는 AWS 서비스 간에 대규모 데이터를 전송할 때는 사용자 지정 전송 코드를 작성하는 것보다 AWS DataSync가 비용 효율적입니다. DataSync는 전송에 특화된 프로토콜을 사용하여 오픈 소스 도구보다 최대 10배 높은 처리량을 달성하며, 기본 제공 데이터 검증, 일정 예약 및 모니터링 기능을 포함합니다. DataSync를 통해 S3, EFS 또는 FSx로 전송하는 데이터에는 표준 AWS 데이터 전송 요금이 부과됩니다. 하지만 DataSync의 효율성 덕분에 전송을 더 빠르게 완료할 수 있어 대규모 마이그레이션에 필요한 EC2 컴퓨팅 시간과 비용을 줄일 수 있습니다.
# Create DataSync task to copy S3 bucket to another region
aws datasync create-task \
--source-location-arn arn:aws:datasync:us-east-1:123:location/loc-source \
--destination-location-arn arn:aws:datasync:us-west-2:123:location/loc-dest \
--name 'DR-replication' \
--options '{
"VerifyMode": "ONLY_FILES_TRANSFERRED",
"OverwriteMode": "ALWAYS",
"TransferMode": "CHANGED"
}'
# DataSync pricing: $0.0125/GB transferredS3 가시성을 위한 Storage Lens
Amazon S3 Storage Lens는 계정과 리전에 걸쳐 조직 전체의 S3 스토리지 사용량 및 활동 지표를 파악할 수 있게 해 줍니다. lifecycle 규칙이 없는 버킷, 완료되지 않은 multipart 업로드가 있는 버킷, 스토리지 클래스 분포와 같은 비용 최적화 기회를 찾아냅니다. S3 Storage Lens 기본 대시보드는 무료이며, 고급 지표 대시보드($0.20/객체 100만 개)는 접두사별 상세 분석과 데이터 사용 기간 지표를 추가합니다. S3 비용 최적화를 시작할 때 Storage Lens를 출발점으로 사용하여 영향이 가장 큰 버킷을 식별하십시오.
# Enable S3 Storage Lens dashboard
aws s3control put-storage-lens-configuration \
--account-id 123456789012 \
--config-id default \
--storage-lens-configuration '{
"Id": "default",
"IsEnabled": true,
"DataExport": {
"S3BucketDestination": {
"AccountId": "123456789012",
"Arn": "arn:aws:s3:::my-storage-lens-export",
"Format": "CSV",
"OutputSchemaVersion": "V_1"
}
}
}'빠른 확인
이 강의에서 다룬 AWS Solutions Architect(SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
강의 요약
이 강의에서는 다음을 배웠습니다. S3 Intelligent-Tiering과 lifecycle 규칙은 데이터를 더 저렴한 스토리지 클래스로 자동 이동하여 스토리지 비용을 줄입니다. CloudFront는 S3 또는 EC2에서 직접 제공하는 것과 비교해 데이터 전송 비용을 크게 줄입니다. 또한 VPC Gateway Endpoints는 S3와 DynamoDB 트래픽에 대한 NAT Gateway 요금을 없앱니다. S3 Storage Lens는 최적화 기회를 파악할 수 있는 가시성을 제공합니다. 다음으로 KMS, ACM 및 암호화 패턴을 살펴보겠습니다.
자주 묻는 질문
“S3 및 데이터 전송 비용 최적화” 강의는 무료인가요?
네 — “S3 및 데이터 전송 비용 최적화” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“S3 및 데이터 전송 비용 최적화”에서 뭘 배우나요?
S3 Intelligent-Tiering, 수명 주기 규칙, S3 Select 및 CloudFront를 적용해 스토리지와 데이터 전송 비용을 크게 줄입니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“S3 및 데이터 전송 비용 최적화” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 적정 규모 조정 및 Compute Optimizer
- 예약 인스턴스, Savings Plans 및 스팟
- Cost Explorer, 예산 및 비용 할당 태그
- S3 및 데이터 전송 비용 최적화