Elastic Beanstalk – 개요
- Elastic Beanstalk는 AWS에서 애플리케이션을 배포하는 개발자 중심의 서비스
- EC2, ASG, ELB, RDS 등 다양한 AWS 구성 요소들을 활용
- 관리형 서비스로, 용량 프로비저닝, 로드 밸런싱, 스케일링, 애플리케이션 상태 모니터링, 인스턴스 설정 등을 자동으로 처리
- 개발자는 애플리케이션 코드만 작성하면 되고, 나머지는 Elastic Beanstalk이 관리
- 여전히 모든 설정에 대해 완전한 제어권을 가짐
- Elastic Beanstalk 자체는 무료지만, 실제로 사용되는 인프라 리소스(예: EC2 인스턴스) 비용은 청구
Elastic Beanstalk – 구성 요소
- Application: Elastic Beanstalk의 모든 구성 요소(환경, 버전, 설정 등)의 모음
- Application Version: 애플리케이션 코드의 특정 버전
- Environment: 애플리케이션 버전을 실행하는 AWS 리소스들의 모음 (환경 하나당 하나의 애플리케이션 버전만 실행 가능)
- Tiers (계층):
- Web Server Environment Tier: 웹 서버 애플리케이션을 위한 계층
- Worker Environment Tier: 작업 처리용 애플리케이션을 위한 계층
- 환경을 여러 개 생성할 수 있습니다. (예: 개발, 테스트, 운영 환경)
Amazon S3
=> “무한 확장” 가능한 스토리지
Amazon S3 사용 사례
- 백업 및 스토리지
- 재해 복구
- 아카이브
- 하이브리드 클라우드 스토리지
- 애플리케이션 호스팅
- 미디어 호스팅
- 데이터 레이크 및 빅데이터 분석
- 소프트웨어 배포
- 정적 웹사이트
Amazon S3 - 버킷(Buckets)
- 객체(파일)는 “버킷”(디렉토리)에 저장
- 버킷 이름은 전 세계적으로 고유
- 버킷은 특정 리전(Region)에 생성 (리전 수준에서 정의됨)
Amazon S3 - Objects(객체)
- 객체(파일)는 “키(Key)“를 가짐
- 키(Key)는 전체 경로로 구성:
- 키는 접두사(prefix) + 객체 이름으로 구성
예: s3://my-bucket/my_folder1/another_folder/my_file.txt
- 디렉토리의 개념은 없지만, UI에서 디렉토리처럼 보이게 처리
- 객체 값은 본문(Content)
- 최대 객체 크기는 5TB(5000GB)
- 5GB를 초과하여 업로드할 경우 “멀티파트 업로드(Multi-Part Upload)“ 사용
Amazon S3 – Security
User-Based
- IAM Policies (IAM 정책)
: IAM Policies는 특정 사용자 또는 IAM 역할(Role)에 대해 어떤 API 호출을 허용 정의하는 정책
: AWS 리소스에 대한 접근을 사용자 단위로 세부적으로 제어
예: 특정 사용자가 S3 버킷에서 읽기(s3:GetObject)는 가능하지만 쓰기(s3:PutObject)는 불가능하도록 설정.
Resource-Based
- Bucket Policies (버킷 정책)
: S3 버킷 전체에 적용되는 규칙을 설정하는 정책
: S3 콘솔 또는 AWS 정책 언어(JSON)를 사용하여 권한을 정의
교차 계정 접근 제어(Cross-Account Access)
: 다른 AWS 계정이나 외부 사용자에게 접근 권한을 부여할 수 있음
예: 특정 AWS 계정에만 읽기 또는 쓰기 권한을 부여.
세부 접근 제어 옵션
-
Object Access Control List (객체 ACL)
: S3 객체(파일) 단위로 권한을 설정할 수 있는 세부적인 접근 제어 옵션
: 각 객체별로 읽기/쓰기 권한을 설정할 수 있지만, 비활성화 가능
-
Bucket Access Control List (버킷 ACL)
: S3 버킷 단위로 권한을 설정하는 제어 옵션
: 과거에는 많이 사용되었지만, 현재는 잘 사용되지 않으며 비활성화 가능
-
Encryption
: Amazon S3에서 저장된 객체(파일)를 암호화할 수 있는 기능
: AWS 제공 암호화 키(Encryption Key)를 사용하여 데이터를 보호
Amazon S3 – Static Website Hosting
• S3는 정적 웹사이트를 호스팅할 수 있으며, 인터넷에서 접근 가능하도록 설정할 수 있음
- 403 Forbidden 오류가 발생할 경우, 버킷 정책(Bucket Policy)이 공개 읽기(Public Read) 권한을 허용하는지 확인
Amazon S3 - Versioning
- Amazon S3에서는 파일의 버전을 관리
- 버킷 수준에서 활성화
- 동일한 키(Key)로 파일을 덮어쓰면 버전 번호가 변경(예: 1, 2, 3…).
- 버킷에 버전 관리를 활성화하는 것이 모범 사례
- 의도하지 않은 삭제로부터 보호 가능 (이전 버전 복원 가능).
- 이전 버전으로 손쉽게 롤백 가능.
Notes
- 버전 관리 활성화 전의 파일은 버전이 “null”로 설정
- 버전 관리를 중단(Suspend) 해도 기존 버전은 삭제되지 않음
- 삭제 마커(Delete Marker)를 사용하면 실제 파일을 삭제하지 않고 새 버전으로 덮어씌울 수 있음
=> 이 경우, 해당 파일에 접근 시 404 Not Found 오류가 표시

Amazon S3 – Replication (CRR & SRR)
기본 조건
사용 사례
복제 작동 방식
- 복제 활성화후 새로운 객체만 복제
- 기존 객체를 복제하려면 S3 Batch Replication을 사용.
- 기존 객체와 복제 실패한 객체를 복제 가능.
삭제(Delete) 작업
- 삭제 마커(Delete Marker):
- 소스에서 생성된 삭제 마커를 대상으로 복제 가능 (옵션 설정).
- 버전 ID가 있는 삭제:
- 복제되지 않음 (악의적인 삭제를 방지하기 위함).
복제 체인(Replication Chaining) 없음
예:
- 버킷 1에서 버킷 2로 복제, 버킷 2에서 버킷 3으로 복제가 설정된 경우,
- 버킷 1에서 생성된 객체는 버킷 3으로 복제되지 않음.
S3 스토리지 클래스(S3 Storage Classes)

1. Amazon S3 Standard - 일반 목적
- 가용성(Availability): 99.99%
특징:
- 자주 접근하는 데이터에 사용.
- 낮은 지연 시간(Low Latency)과 높은 처리량(High Throughput) 제공.
- 동시에 2개의 시설 장애를 견딜 수 있음.
2. Amazon S3 Standard-Infrequent Access (IA)
특징:
- 덜 자주 접근하지만, 필요할 때 빠른 접근이 필요한 데이터에 사용.
- S3 Standard보다 비용이 저렴.
3. Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA)
특징:
- 단일 가용 영역(AZ)에서 높은 내구성(99.999999999%) 제공.
- 가용성(Availability): 99.5%.
- AZ가 파괴되면 데이터 손실 위험 존재.
4. Amazon S3 Glacier Instant Retrieval
특징:
- 저비용 객체 스토리지, 아카이빙 및 백업에 적합.
- 밀리초 단위의 검색 시간 제공.
- 데이터는 분기별로 한 번 정도 접근하는 경우에 사용.
- 최소 저장 기간: 90일.
5. Amazon S3 Glacier Flexible Retrieval
특징:
- 아카이빙 데이터 저장용.
- 검색 속도:
- Expedited: 1~5분.
- Standard: 3~5시간.
- Bulk: 5~12시간 (무료).
- 최소 저장 기간: 90일.
6. Amazon S3 Glacier Deep Archive
특징:
- 장기 아카이빙에 적합.
- 검색 속도:
- Standard: 12시간.
- Bulk: 48시간.
- 최소 저장 기간: 180일.
7. Amazon S3 Intelligent Tiering
특징:
- 자동 티어링(Auto-Tiering): 데이터를 사용량에 따라 접근 티어 간 자동 이동.
- 소규모 월간 모니터링 및 자동 티어링 요금 발생.
- 검색 요금 없음.
8. 클래스 간 이동
- 수동으로 이동하거나, S3 Lifecycle 설정을 통해 자동으로 이동 가능.
- 예:
- 30일 후 S3 Standard에서 IA로 이동.
- 60일 후 Glacier로 이동.
- 180일 후 Deep Archive로 이동.
요약
- S3 Standard: 자주 접근하는 데이터에 적합.
- IA 및 One Zone-IA: 덜 자주 접근하지만 빠른 접근이 필요한 경우.
- Glacier 시리즈: 아카이브 및 백업용, 검색 속도와 저장 기간에 따라 선택.
- Intelligent Tiering: 사용량에 따라 자동으로 티어를 조정, 효율적인 비용 관리.
- Lifecycle 구성으로 클래스 간 데이터 이동 자동화 가능.

Amazon S3 - Lifecycle Rules
1. 전환 작업(Transition Actions)
- 객체를 다른 스토리지 클래스로 전환하도록 구성할 수 있습니다.
- 예시:
- 객체 생성 후 60일 뒤, Standard IA 클래스로 이동.
- 6개월 후, Glacier 클래스로 아카이빙.
2. 만료 작업(Expiration Actions)
- 특정 시간이 지난 후 객체를 만료(삭제)하도록 구성할 수 있습니다.
- 예시:
- 접근 로그 파일을 365일 후 삭제.
- 버전 관리가 활성화된 경우, 오래된 객체 버전 삭제.
- 미완성 멀티파트 업로드 삭제.
3. S3 수명 주기 규칙 – 시나리오 1
요구 사항:
- 프로필 사진 업로드 시 생성된 이미지 썸네일은 60일 동안만 유지.
- 소스 이미지는 60일 동안 즉시 검색 가능해야 하며, 이후 최대 6시간 대기 가능.
구성:
1. 소스 이미지:
- S3 Standard 클래스에 저장.
- 수명 주기 규칙을 사용해 60일 후 Glacier로 전환.
- 썸네일:
- S3 One-Zone IA 클래스에 저장.
- 수명 주기 규칙을 사용해 60일 후 만료(삭제).
S3 수명 주기 규칙 – 시나리오 2
요구 사항:
- 삭제된 S3 객체를 30일 동안 즉시 복구 가능해야 함.
- 30일 이후에는 최대 365일 동안 48시간 내 복구 가능해야 함.
구성:
1. S3 버전 관리 활성화:
- 객체를 삭제해도 실제 삭제되지 않고 삭제 마커(Delete Marker)로 숨겨짐.
- 수명 주기 규칙 설정:
- 30일 이후, 객체의 “이전 버전(Noncurrent Versions)“을 Standard IA 클래스로 전환.
- 이후, “이전 버전”을 Glacier Deep Archive 클래스로 전환.
Amazon S3 Analytics – Storage Class Analysis
-
올바른 스토리지 클래스로 객체를 전환할 시점을 결정하는 데 도움을 줌.
-
Standard와 Standard IA 클래스에 대한 전환 권장 사항 제공.
-
제한 사항:
- One-Zone IA 또는 Glacier 계열에는 적용되지 않음.
-
리포트 업데이트 주기:
- 매일 업데이트.
- 데이터 분석 결과가 나타나기까지 24~48시간 소요.
S3 – Requester Pays (요청자 부담)
- 기본적으로 버킷 소유자가 모든 S3 저장 및 데이터 전송 비용을 부담.
- Requester Pays 버킷:
- 요청자가 요청 및 데이터 다운로드 비용을 부담.
- 대규모 데이터셋을 다른 계정과 공유할 때 유용.
주의사항:
- 요청자는 반드시 AWS에서 인증된 사용자여야 함(익명 요청 불가).

S3 Event Notifications (S3 이벤트 알림)
- 지원되는 이벤트 유형
- S3:ObjectCreated: 객체가 생성될 때.
- S3:ObjectRemoved: 객체가 삭제될 때.
- S3:ObjectRestore: 객체가 복원될 때.
- S3:Replication: 객체가 복제될 때.
- 기능
- 객체 이름 필터링 가능:
- 특정 파일 형식에만 이벤트를 트리거할 수 있음 (예: *.jpg).
- 사용 사례:
- S3에 업로드된 이미지에 대해 썸네일을 자동 생성.
- 알림 전달
- Amazon S3는 이벤트를 아래와 같은 서비스로 전달할 수 있음:
- SNS: 여러 구독자에게 알림 전송.
- SQS: 큐를 통해 이벤트 전달.
- AWS Lambda: 이벤트를 트리거하여 코드를 실행.
- 성능
- S3 이벤트 알림은 몇 초 내에 이벤트를 전달하지만, 경우에 따라 최대 1분 이상 소요될 수 있음.

- 고성능 요청 처리
- Amazon S3는 자동으로 고속 요청 처리를 지원, 지연 시간(latency)은 100-200ms 수준 유지
- 각 접두사(prefix) 당 아래와 같은 초당 요청 처리 성능을 제공:
- 3,500 PUT/COPY/POST/DELETE 요청/초.
- 5,500 GET/HEAD 요청/초.
- 버킷의 접두사(prefix) 수에는 제한이 없으므로, 접두사를 나눠서 요청 분산 가능.
- 접두사(prefix)의 개념
예:
- bucket/folder1/sub1/file → /folder1/sub1/
- bucket/folder1/sub2/file → /folder1/sub2/
- bucket/1/file → /1/
- bucket/2/file → /2/
- 접두사를 나누어 요청을 분산하면 성능이 향상
- 예: 4개의 접두사(/folder1/sub1/, /folder1/sub2/, /1/, /2/)로 요청을 균등히 분산하면,
- 초당 22,000개의 GET/HEAD 요청을 처리 가능.
- 멀티파트 업로드(Multi-Part Upload)
- 권장 조건:
- 파일 크기가 100MB 이상일 경우 멀티파트 업로드 사용 권장.
- 파일 크기가 5GB를 초과할 경우 멀티파트 업로드 사용 필수.
- 이점:
- 파일을 여러 부분으로 나누어 병렬 업로드 가능.
- 업로드 속도가 크게 향상되며, 실패한 부분만 다시 업로드 가능.

- S3 Transfer Acceleration
-
주요 특징
- 전송 속도 향상:
- 파일 업로드를 AWS 엣지 로케이션(Edge Location)으로 전달한 뒤, 해당 데이터를 S3 버킷이 위치한 타겟 리전으로 전송.
- 글로벌 네트워크 경로를 최적화하여 전송 속도를 높임.
-
동작 방식
2-1) 사용자가 데이터를 업로드하면, 가까운 AWS 엣지 로케이션으로 데이터가 전송
2-2) 이후, 엣지 로케이션에서 AWS 네트워크를 통해 최적화된 경로로 S3 버킷까지 데이터를 전달
2-3) 특히 인터넷 연결이 느리거나, 리전 간 전송 지연(latency)이 발생하는 경우 효과적
-
멀티파트 업로드와의 호환성
- S3 Transfer Acceleration은 멀티파트 업로드(Multi-Part Upload)를 지원.
- 데이터를 여러 부분으로 나누어 전송하기 때문에, 대규모 파일의 업로드 속도를 더욱 효과적으로 향상
-
사용 사례
- 글로벌 사용자가 S3에 데이터를 빠르게 업로드해야 하는 경우.
- 대용량 파일 업로드: 예를 들어, 미디어 파일, 백업 데이터, 로그 파일 등을 S3에 저장할 때.

- S3 Byte-Range Fetches
- 특정 바이트 범위를 요청하여 GET 작업 병렬 처리 가능.
- 실패 시에도 더 나은 복원력을 제공.
- 다운로드 속도 향상: 큰 파일을 병렬로 나누어 빠르게 다운로드.
- 부분 데이터만 가져오기 가능 (예: 파일의 헤더 부분만 읽기).

S3 Select & Glacier Select
- S3 Select:
- S3 객체에서 필요한 데이터만 추출하여 처리 성능과 비용 절감.
- 예: CSV, JSON, Parquet 파일에서 특정 열이나 행만 선택.
- Glacier Select:
- Glacier에 저장된 데이터에서도 필요한 데이터만 추출 가능.
- 데이터를 복원하지 않고 직접 필터링하여 비용과 시간을 절약.
S3 Batch Operations
-
대량 작업을 단일 요청으로 실행 가능.
-
가능한 작업 예시:
- 객체 메타데이터 및 속성 수정.
- S3 버킷 간 객체 복사.
- 암호화되지 않은 객체 암호화.
- 객체 ACL 및 태그 수정.
- S3 Glacier에서 객체 복원.
- Lambda 함수 호출로 사용자 지정 작업 수행.
-
작업 구성 요소:
- 작업할 객체 목록.
- 수행할 작업.
- 선택적인 매개변수.
-
기능:
- 자동 재시도 및 작업 진행 상황 관리.
- 완료 알림 발송 및 보고서 생성.
-
활용 예시:
- S3 Inventory를 사용해 객체 목록을 생성하고,
- S3 Select를 사용해 필요한 객체만 필터링 후 작업 수행.

S3 - Storage Lens
- 개요
- AWS 전체 조직에 걸쳐 스토리지 사용을 이해, 분석, 최적화할 수 있도록 지원.
- 이상 탐지, 비용 효율성 분석, 데이터 보호 모범 사례 적용 가능.
- 30일간의 사용량 및 활동 지표를 기반으로 데이터 분석.
- 데이터 집계: 조직 전체, 특정 계정, 리전, 버킷, 또는 접두사(prefix) 수준에서 가능.
- 대시보드:
- 기본 대시보드 제공 또는 사용자 정의 대시보드 생성 가능.
- 메트릭 데이터를 S3 버킷으로 일일 내보내기 지원 (CSV, Parquet 형식).

- Storage Lens – 기본 대시보드
- 요약된 인사이트 및 트렌드 시각화 제공 (무료 및 고급 메트릭 모두 포함).
- 다중 리전 및 다중 계정 데이터를 보여줌.
- Amazon S3에서 사전 구성되어 제공.
- 삭제할 수는 없지만, 비활성화 가능.

- Storage Lens – 메트릭 종류
1) 요약 메트릭(Summary Metrics)
- 스토리지 전반에 대한 일반적인 인사이트 제공.
- 예: StorageBytes, ObjectCount
- 사용 사례:
- 가장 빠르게 성장하거나 사용되지 않는 버킷/접두사 식별.
2) 비용 최적화 메트릭(Cost-Optimization Metrics)
- 스토리지 비용 관리 및 최적화 인사이트 제공.
- 예: NonCurrentVersionStorageBytes, IncompleteMultipartUploadStorageBytes
- 사용 사례:
- 7일 이상 된 미완성 멀티파트 업로드가 있는 버킷 식별.
- 더 저렴한 스토리지 클래스로 전환할 객체 식별.
3) 데이터 보호 메트릭(Data-Protection Metrics)
- 데이터 보호 기능에 대한 인사이트 제공.
- 예: VersioningEnabledBucketCount, MFADeleteEnabledBucketCount
- 사용 사례:
- 데이터 보호 모범 사례를 따르지 않는 버킷 식별.
4) 접근 관리 메트릭(Access-management Metrics)
- S3 객체 소유권(Object Ownership)에 대한 인사이트 제공.
- 예: ObjectOwnershipBucketOwnerEnforcedBucketCount
- 사용 사례:
- 각 버킷의 객체 소유권 설정 확인.
5) 이벤트 메트릭(Event Metrics)
- S3 이벤트 알림 설정에 대한 인사이트 제공.
- 예: EventNotificationEnabledBucketCount
- 사용 사례:
- 이벤트 알림이 설정된 버킷 식별.
6) 성능 메트릭(Performance Metrics)
- S3 전송 가속(S3 Transfer Acceleration)에 대한 인사이트 제공.
- 예: TransferAccelerationEnabledBucketCount
- 사용 사례:
- 전송 가속이 활성화된 버킷 식별.
7) 활동 메트릭(Activity Metrics)
- 스토리지 요청 활동에 대한 인사이트 제공.
- 예: AllRequests, GetRequests, PutRequests, BytesDownloaded
8) 상태 코드 메트릭(Detailed Status Code Metrics)
- HTTP 상태 코드에 대한 인사이트 제공.
- 예: 200OKStatusCount, 403ForbiddenErrorCount, 404NotFoundErrorCount.
- 무료 vs 유료 메트릭
무료 메트릭(Free Metrics)
- 모든 고객에게 자동 제공.
- 약 28개의 사용량 메트릭 포함.
- 데이터는 14일간 조회 가능.
고급 메트릭 및 권장 사항(Advanced Metrics and Recommendations)
- 추가 비용이 발생하는 고급 메트릭 및 기능 제공.
- 포함 항목:
- 고급 활동(Activity), 비용 최적화, 데이터 보호, 상태 코드 메트릭.
- CloudWatch 연동: 추가 비용 없이 CloudWatch에서 메트릭 조회 가능.
- 접두사 집계(Prefix Aggregation): 접두사 수준에서 메트릭 수집 가능.
- 데이터는 15개월간 조회 가능.
요약
1. Amazon S3 Storage Lens는 AWS 조직 전반의 스토리지 사용을 분석 및 최적화하는 도구.
2. 대시보드와 메트릭을 통해 사용량, 비용, 데이터 보호, 활동 상태 등을 시각화.
3. 무료 메트릭은 기본 제공되며, 유료 메트릭은 고급 기능과 장기 데이터 조회를 지원.