BE전문가 프로젝트
2. 간단한 아키텍처 본문
클라우드에서 안정적으로 데이터를 배포, 저장, 분석하는 간편한 방법
S3
s3 | |
객체 수준 스토리지 | 파일 일부를 변경 시 파일을 변경 후 파일 전체를 다시 업로드 해야한다. |
99.999% 내구성 | |
이벤트 트리거 | - 특정 버킷으로 객체가 업로드되거나 삭제되는 등 특정 이벤트가 발생할 때 자동으로 알림을 보내 도록 설정할 수 있다. - 사용자에게 정송되거나 Lambda스트립트 같은 다른 프로세스를 트리거하는데 사용가능 |
스토리지 클래스 분석 (S3 Analytics) |
- 액세스 패턴을 분석하여 올바른 데이터를 올바른 스토리지 클래스로 이전할 수 있다. - 액세스 빈도가 낮은 스토리지를 Standard-IA로 이전할 최적의 수명 주기 정책을 자동으로 식별 |
- 원하는 만큼 데이터를 저장할 수 있다.
- 여러시설과 각 시설의 여러 디바이스에 중복 저장된다.
- 웹 기반 Management Console, API 및 SDK를 통한 프로그래밍 방식 또는 타사 솔루션을 통해 액세스할 수 있다.
S3사용 사례
1. 정적 웹 콘텐츠와 미디어 저장 및 배포
- 각 객체가 고유한 HTTP URL에 연경되므로 S3에서 직접 전달 가능
- 콘텐츠 전송 네트워크의 오리진으로 사용할 수 있음
- 뛰어난 탄력성이 요구되며 빠르게 성장하는 웹 사이트에 효과적(동영상 및 사진공유)
1.1 액세스 제어(일반)
- 리소스 즉 버킷, 객체 및 관련 하위 리소스는 비공개이다. 하지만 다른 사람에게 액세스 권한을 부여할 수도 있다
- 중요-
public 액세스는 일반적인 사용 사례가 아니며 대부분은 Public 액세스가 필요하지 않다 |
S3 버킷은 기본적으로 보호되며 새로 생성 또는 수정되지 않은 버킷에 액세스할 수 있는 것은 관리자와 루트 뿐이다. |
실수로 인한 고객 데이터 노출을 방지하기 위해 추가 보호 계층을 담당하는 "퍼블릭 액세스 차단"기능이 포함된다. - 네가지 옵션 - 1. 새 퍼블릭 ACL 및 퍼블릭 객체 업로드 차단 2. 퍼블릭 ACL을 통해부여된 퍼블릭 액세스 권한 제거 3. 새 퍼블릭 버킷 정책 차단 4. 퍼블릭 정책이 있는 버킷에 대한 퍼블릭 액세스 및 교차 계정 액세스 차단 |
1.2 액세스 제어(버킷 정책)
- 다른 .AWS 계정 또는 사용자에게 그 안에 저장된 객체에 액세스하도록 허용할 수 있다.
- 버킷 정책은 ACL 액세스 정책을 보완하며, 경우에 따라 이를 대체할 수 있다.
- 크기가 20KB로 제한된다.
1.3 액세스 포인트
- 해당 엔드포인트를 사용하여 데이터에 액세스하는 방법을 설명하는 전용 액세스 정책을 포함하는 고유한 호스트 이름을 액세스 포인트라고 함
- 단일 사용자, 애플리케이션, 사용자들의 그룹 및 애플리케이션을 지원한다.
2. 전체 정적 웹 사이트 호스팅
- 정적 HTML 파일, 이미지, 동영상, 클라이언트 측 스크립트(ex JavaScript형식)를 위한 스토리지를 비롯해 저렴하고 고가 용성이며 확장 가능한 솔루션을 제공함
- 버전 관리 기능의 버킷을 사용하면 실수로 삭제 또는 덮어쓴 객체를 복구할 수 있다.
객체를 영구제거하는 것이 않고 삭제시 S3는 삭제 마커를 삽입하는데 이것이 객체의 현재 버전이 된다.
덮어쓴 경우 새 객체버전이 생기며 언제나 복구가 가능하다
- 객체 잠금 기능을 사용하여 실수를 방지할 수 있다.
2.2 S3액세스 제어(CORS)
- 한 도메인에서 로드되어 있는 클라이언트 웹 애플리케이션이 다른 도메인에 있는 리소스와 상호 작용하는 방법을 정의
- CORS를 통해 S3로 다양한 기능의 클라이언트 웹 애플리케이션을 구축하고 S3 리소스에 대한 교차 오리진 액세스를 허용할 수 있다.
3. 연산 및 대규모 분석용 데이터 스토어
금융 거래분석 |
클릭스트림 분석 |
미디어 트랜스코딩 |
수평 확장성 덕분에 손쉽게 다수의 동시 트랜잭션이 가능하여 S3가 이러한 워크로드를 지원할 수 있음 |
4. 백업 도구
- 뛰어난 내구성 및 확장성으로 백업 및 아카이브 도구로도 유용하다.
- 수명 주기 정책을 사용하여 장기 데이터를 Glacier로 이전할 수 있다.
- 더 높은 수준의 내구성이 필요할 경우교차 리전 복제를 사용하여 다른 리전에 있는 S3 버킷에 자동 복사가 가능하다.
4.1 S3로 데이터를 이동
- S3에 업로드한 파일은 S3객체로 저장된다.
- 객체는 파일 데이터 및 그 객체를 설명하는 메타데이터로 구성된다
- 한 버킷에 저장할 수 있는 객체의 수에는 제한이 없다.
데이터 이동법 | |
콘솔,AWS명령줄 인터페이스(AWS CLI) 또는 API를 이용하여 전송 |
데이터가 소량이거나 이미 AWS 네트워크 내에 있는 경우 콘솔, CLI 또는 API를 사용하여 손쉽게 데이터 이전이 가능하다. |
S3 버킷에 업로드한다 | - 이미지, 백업 데이터, 동영상 등 모든 파일 형식을 S3버킷으로 업로드 가능 - 업로드 할 수 있는 파일의 최대 크기 160GB - CLI또는 API를 사용하면 더 많은 파일을 이동할 수 있음 |
AWS DataSync | - On-primise 스토리지와 S3 또는 Elastic File System 간의 데이터 이동을 쉽게 자동화 할 수 있는 데이터 전송 서비스 - 오픈소스 도구보다 최대 10배 빠르게 데이터를 전송할 수 있음 - DataSync는 자체 인스턴스 실행, 암호화처리, 스크립트관리, 네트워크 최적화, 데이터 무결성 검증 등 마이그레이션 속도를 지연시킬 수 있는 여러 작업 자동 처리 - NFS 프로토콜을 사용한 온프레미스 소프트웨어를 사용하여 기존 스토리지 또는 파일시스템에 연결하여 복사한 데이터에 대해서만 비용 지불 |
AWS Transfer for SFTP | - 완전 관리형 고가용성의 보안 파일 전송 프로토콜인 SETP 서비스 - 애플리케이션이 SFTP를 통해 S3로 직접 파일 전송할 수 있도록 한다. |
4.2 멀티파트 업로드
- 멀티파트 업로드 시 대용량 객체를 관리 가능한 파트로 분할하여 일관성 있게 업로드 가능
- 순서 : 업로드 시작 → 객체 파트 업로드 → 멀티파트 업로드 완료
멀티파트 업로드의 이점 | |
개선된 처리량 | 파트를 병렬로 업로드하여 처리량을 개선할 수 있다 |
네트워크 문제로부터 빠른 복구 | 더 작은 파트의 크기가 네트워크 오류로 인해 실패한 업로드의 재시작 시 영향을 최소화 한다. |
객체 업로드 일시 중지 및 재개 | - 객체 파트를 장시간에 걸쳐 업로드할 수 있다 - 멀티파트 업로드가 시작되면 제한시간이 없으며, 명시적으로 완료하거나 중지 |
최종 객체 크기를 알기전에 업로드를 시작 |
객체를 생성하는 동안 업로드 가능 |
대용량 객체 업로드 | 멀티파트 업로드 API를 사용하여 최대 5TB의 대용량 객체 업로드 가능 |
4.3 Transfer Acceleration
- 전 세계에 분산된 Amazon CloudFront의 엣지 로케이션을 통해 S3 버킷으로 빠르고 간편하게 데이터를 전송할 수 있도록 도와준다.
- 전 세계 각지에서 중앙의 버킷으로 업로드하는 고객이 있는 경우
- 전 세계에서 정기적으로 기가바이트 또는 테라바이트 규모의 데이터를 전송하는 경우
- 인터넷을 통해 Amazon S3로 업로드할 때 사용 가능한 대역 폭을 충분히 활용하지 못하는 경우
4.4 S3로 데이터를 이동
S3로 데이터를 이동 | |
AWS Snowball | - 페타바이트 규모의 데이터 전송 - 데이터 전송을 위해 코드를 작성하거나 하드웨어를 구매할 필요없는 페타바이트 규모의 전송 옵션 - Console에서 작업을 생성하기만 하면 Snowball 어플라이언스가 고객에게 배송됨 - 어플라이언스를 로컬 네트워크에 연결 후 파일을 어플라이언스로 직접 전송 - 작업완료 시 전자 잉크 배송 레이블이 자동으로 업데이트되어 Amazon Simple Notification Service(SNS) 또는 콘솔을 통해 추적될 수 있음 - Snowball이 안전한 Amazon 시설로 회수되어 네트워크로 전송됨 |
AWS Snowball Edge Opimized |
- 원경의 외진 환경 또는 네트워크 연결이 끊기거나 열악한 환경에서 추가 컴퓨팅 파워가 필요한 엣지 처리 사용에 적합 - 52개의 vCPU, 208GB의 메모리, 7.68TB의 NVMe SSD, 42TB의 S3호환 스토리지를 제공 - 연결이 끊긴 환경에서 고급 기계 학습 및 풀 모션 비디오 분석을 하는 경우 흔히 사용됨 |
AWS Snowmoblie | - 엑사바이트 규모에서 사용하는 훨씬 대규모의 데이터 전송 옵션 - 막대한 양의 데이터를 AWS 이전시에만 사용해야됨 - 세미 트레일러 트럭으로 견인되는 45피트 길이의 견고한 운반 컨테이너 - 1개로 100PB를 운반할 수 있음 |
S3 사용 | |
모범 사용 사레 | 이상적인 사용 사례가 아닌 경우 |
한 번 쓰고 여러 번 읽어야 하는 경우 | 불록 스토리지 요구 사항 |
데이터 액세스가 일시적으로 급증 | 자주 바뀌는 데이터 |
사용자가 매우 많고 콘텐츠 양이 다양 | 장기 아카이브 스토리지 |
데이터 세트가 계속 증가 |
Amazon S3 비용 | |
다음에 대해 사용한 만큼만 비용 지불 | 비용 지불할 필요 X |
월별 GB | Amazon S3로 수신 |
다른 리전 또는 인터넷으로 전송 | 동일한 리전 내 EC2 또는 Cloud Front로 전송 |
PUT, COPY, LIST 및 GET 요청 | |
- 세부적인 비용은 리전과 수행된 특정 요청에 따라 달라질 수 있음 - 일반적으로 리전 경계를 넘어가는 전송에 대한 비용만 지불 - 같은 리전에 있는 Amazon CloudFront 엣지 로케이션으로 전송된 데이터에는 비용이 부과되지 않는다 |
5. Amazon S3 Glacier
Amazon S3 Glacier | 장기 데이터 스토리지 : 데이터를 검색할 일이 거의 없으며 몇 시간 정도의 검색 지연 시간 이 허용되는 데이터 |
아카이브 또는 백업 | |
매우 저렴한 스토리지 : 매우 저렴한 비용으로 데이터를 저장할 수 있지만 필요할 때 즉시 검색은 안된다 |
5.1 S3 Glacier 아키이브 및 저장소
아카이브 | 아카이브는 사진, 동영상, 문서 등 저장소에 저장한 모든 객체 |
S3 Glacier 내의 기본 스토리지의 기본 단위 | |
각 아카이브는 고유 ID가 있으며 선택사항으로 설명 추가 가능 | |
아카이브를 업로드하면 AmazonS3 Glasier가 아카이브 ID가 포함된 응답을 반환한다. | |
아카이브 아이디는 아카이브가 저장된 리전에서 고유하다. | |
S3 Glacier는 관리 콘솔을 제공하며 저장소를 생성하거나 삭제할 수 있지만 다른 모든 S3 Glacier 작업에서는 CLI를 사용하거나 코드를 작성해야된다. EX) 사진, 동영상, 문서 같은 데이터를 업로드하려면 AWS CLI를 사용하거나 REST API를 직접 사용하거나 AWS SDK를 사용하여 요청 코드를 작성해야함 | |
저장소 | 아카이브를 저장할 수 있는 컨테이너 |
저장소를 생성할 때 저장소 이름과 저장소를 생성할 리전을 지정해야됨 | |
잠금기능은 감금 가능한 정책을 통해 규정 준수를 강화함 |
5.2 S3 Glacier 관련 비용
신속 검색 | - 보통 1~5분 이내에 완료 - 1GB당 0.03USD의 고정 요율로 1~5분 이내에 데이터에 액세스 가능 - 아카이브 하위 집합을 긴급하게 사용해야하는 경우 신속하게 데이터 액세스 가능 |
표준 검색 | - 보통 3~5시간 이내에 완료 |
대량 검색 | - 보통 5~12시간 이내에 완료 - 페타바이트 규모의 대용량 데이터 검색 시 대량 검색을 통해 1GB당 0.0025USD의 저렴한 고정 요율로 약 5~12시간 이내에 데이터에 액세스할 수 있음 - 효과적인 비용으로 빅 데이터분석, 미디어 트렌스코딩 같은 작업을 위한 막대한 양의 데이터에 액세스 가능 |
5.3 AmazonS3/Amazon S3 Glacier 스토리지 클래스
클래스 | |
S3 Standard | 범용 자주 액세스하는 데이터 |
S3 Standard IA | 수명이 길고 자주 액세스하지 않는 데이터 - 안정성, 가용성, 보안 등 S3의 이점을 제공하며, 오래된 디지털 미디어, 로그 파일과 같이 자주 액세스하지 않는 데이터 저장을 위한 다른 비용 모델의 솔루션 제공 |
S3 ONE ZONE IA | 수명이 길고 자주 액세스하지 않으며 중요하지 않는 데이터 - 자주 액세스하지는 않지만 필요 시 빠르게 액세스해야되는 데이터를 위한 스토리지 - 최소 3개의 가용 영역에 데이터를 저장하는 다른 객체 스토리지와 다르게 S3 ONE ZONE IA는 단일 가용 영역에 데이터를 저장함 - 데이터 저장비용은 S3 Standard IA보다 20%저렴 |
AMAZON GLACIER/DEEP ARCHIVE | 거의 액세스하지 않는 데이터 |
- S3분석 스토리지의 클래스 분석을 이용하면 스토리지 액세스 패턴 분석 후 올바를 데이터를 적절한 스토리지 클래스로 옮길 시간을 결정할 수 있으며 Standard에서 Standard IA 스토리지 클래스로 옮길 시점을 알려준다.
S3 인텔리전트 티어링 | 액세스패턴이 변경되면 두개의 스토리지액세스 티어 간에 객체를 자동으로 이동하여 스토리지 비용을 최적화할 수 있는 스토리지 클래스 |
알 수 없거나 변화하는 액세스 패턴이 한달 이상 유지되는액세스 스토리지에 적합 | |
객체가 저장된 S3티어에 상관없이 동일한 밀리초 단위의 지연 시간 및 99%가용성SLA를 제공 | |
자동으로 스토리지 비용을 최적화하기 때문에 액세스 빈도가 낮은 스토리지의 비용을 절감하기 위해 스토리지 액세스 패턴분석 및 검사할 필요가 없음 |
5.4 수명 주기 정책
- 생성 후 기간을 기준으로 객체를 삭제 또는 이동할 수 있음
S3 Standard →(30일) S3 Standard IA →(90일) S3 Glacier →(365일) 삭제
6. 아키택처용 리전 선택
6.1 리전 선택
데이터 주권 및 규정 준수 | |
관련된 지역 데이터 프라이버시 법률이 있는지 |
데이터는 데이터가 저장되는 리전의 법을 적용받으며 일부 법에서는 해당 관할권에서 사업을 운영하는 경우 다른 곳에 데이터를 저장하지 못하도록 규정했음 |
고객 데이터를 해외에 저장할 수 있는지 |
|
거버넌스 의무를 준수할 수 있는지 |
사용자와 데이터 간 근접성 |
지연 시간의 작은 차이가 고객 경험에 영향을 미칠 수 있음 |
사용자 기준에서 가장 가까운 리전을 선택 |
서비스 및 기능 가용성 |
일부 서비스는 아직 모든 리전에서 제공되지 않는다 |
일부 서비스는 교차리전으로 사용할 수 있지만 지연 시간이 증가한다 |
정기적으로 서비스를 새 리전으로 확장하고 있다 |
비용 효율성 | |
비용은 리전별로 다름 | 리전 간의 지연시간/규정 준수/서비스 가용성 차이가 미미한 경우, 더 저렴한 환경에서 사용 가능 |
S3와 같은 일부 서비스는 데이터를 외부로전송할 때 비용이 발생함 |
|
전체 환경을 다른 리전으로 복제하는 비용 효율성을 고려함 |
고객이 여러 나라에 있는 경우 고객에게 가까운 리전환경을 복제하여 최적화할 수 있으며 여려 환경에 로드를 분산하게 되므로 인프라를 추가함에 따라 각 환경의 구성 요소 비용이 낮아질 수 있다. |
'AWS이론 자습' 카테고리의 다른 글
6. AWS 네트워킹(2) (0) | 2022.03.17 |
---|---|
5. AWS 기반 네트워킹 (0) | 2022.02.21 |
4. DB 계층 (0) | 2022.02.18 |
3. 컴퓨터 계층 (0) | 2022.02.08 |
1. AWS (0) | 2022.01.30 |