BE전문가 프로젝트

2. 간단한 아키텍처 본문

AWS이론 자습

2. 간단한 아키텍처

원호보고서 2022. 1. 31. 00:35

클라우드에서 안정적으로 데이터를 배포, 저장, 분석하는 간편한 방법

 

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
Comments