(기초) AWS - CloudFront

AWS에 대해 알아봅니다.

정민호정민호

1. CloudFront

  • 정적, 동적, 실시간 웹사이트 컨텐츠를 유저들에게 전달

  • Edge Location을 사용

  • 컨텐트 딜리버리 네트워크 Content Delivery Network(CDN)

    • 멀어질 수록 지연시간 증가

    • CDN은 컨텐트 딜리버리 서버, 웹 페이지가 어디에서 불려지는지, 웹 페이지를 불러오려는 사용자가 어느 지역에 거주하는지에 근거하여 컨텐츠 웹페이지에 딜리버리 해줌

    • 특정 홈페이지 방문시 CDN을 통해 속도를 개선시킬 수 있음

  • 분산 네트워크(Distributed Network)

1.1. CloudFront 용어 정리

  • Edge Location(엣지 지역) : 컨텐츠들이 캐시(Cache)에 보관되어지는 장소

  • Origin(오리진) : 원래 컨텐츠들이 들어있는 곳, 웹서버 호스팅이 되어지는 곳. EC2 인스턴스가 오리진이 될 수 있음

  • Distribution(분선) : CDN에서 사용되어지며 Edge Location들을 묶고 있다는 개념

(기초) AWS - S3

AWS에 대해 알아봅니다.

정민호정민호

1. S3

S3(Simple Storage Service) AWS에서 가장 처음 런칭

  • 안전하고 가변적인(Scaling) Object(OS 불가, 이미지, 파일 등만 가능) 저장공간을 제공(ex: Google Cloud)

  • 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음

  • 파일 크기는 0KB 부터 5TB까지 지원

  • 저장공간 무제한(자동으로 저장공간이 늘어남)

  • Bucket이라는 이름을 사용함(디렉토리와 유사함)

  • Bucket은 보편적인 namespace를 사용함(Bucket 이름은 유니크 해야함)

1.1. S3 Object 구성요소

  • Key (파일명)

  • Value (파일 내 데이터)

  • Version ID (S3 고유 특징)

  • Metadata

  • CORS(Cross Origin Resource Sharing) (AWS 사용시 종종 출현, 한 버켓의 파일은 다른 버켓에서 접근 가능하게 해주는 기능(지역무시))

1.2. S3 Data Consistency Model

  • (PUT) Read after Write Consistency

  • (UPDATE, DELETE) Eventual Consistency (바로 바뀐것 같아 보이지만, 내부적으로는 아님)

1.3. S3 스토리지 종류

  • 일반 S3

  • S3 - IA(Infrequent Access)

  • S3 - One Zone IA

  • Glacier

  • Intelligent Tiering

1.3.1. 일반 S3

  • 가장 보편적으로 사용되는 스토리지 타입

  • 높은 내구성, 가용성(Durability, Availability) (데이터 손실없이 잘 복원 되는지, 데이터 접근이 얼마나 용이한지)

1.3.2. S3 - IA(Infrequent Access)

  • 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을시 유용

  • 일반 S3에 비해 비용은 저렴하나 접근시 추가 비용 발생

  • 멀티 AZ를 통한 데이터 저장 (가용성 높음)

1.3.3. S3 - One Zone IA

  • 단일 AZ를 통한 데이터 저장

  • 단일 AZ에 의한 데이터 접근 제한(조금 낮은 가용성)

  • 데이터 접근시 S3 - IA 보다 20% 비용 저렴 (비용과 가용성을 잘 따져 사용)

1.3.4. Glacier

  • 거의 접근하지 않을 데이터 저장 시 유용

  • 매우 저렴한 비용

  • 데이터 접근시 대략 4-5시간 소요

1.3.5. Intelligent Tiering

  • 2018년 런칭

  • 데이터 접근 주기가 불규칙할 때 매우 유용

  • 2가지 티어 존재 (AWS가 자동분류)

    • Frequent Tier (데이터 접근이 한달 없을 경우 분류)

    • Infrequent Tier (데이터 접근할시 분류)

  • 데이터 접근 주기에 따라 두가지 티어중 하나로 선택됨

  • Frequent Tier가 비용이 약간 더 비쌈

  • 최고의 비용 절감 효율을 누릴 수 있음

1.4. S3 요금

  • GB 당

  • PUT, GET, COPY 요청 횟수당

  • 데이터 다운로드 시 / 다른 리소스로 전송시

  • Metadata (object tag)

2. S3 - 버켓 생성시 알아야 할 것들

2.1. S3 사용 용례

  • 파일 저장소 (로그, 다양한 파일들(이미지, 비디오, 압축파일 등))

  • 웹사이트 호스팅

  • CORS(Cross Origin Resource Sharing)

2.2. 최초 S3 버켓 생성시 → 비공개(Private)

  • 버켓 정책 변경(Bucket Policy)

  • 접근 제어 리스트 변경 (Access Control List)

3. S3 암호화(Encryption)

3.1. 암호화 유형

3.1.1. 파일 업로드/다운로드 시

  • SSL / TLS (Secure Socket Layer / Transport Layer Security)

3.1.2. 가만히 있을 시

  • SSE(Server-Side Encryption)

  • SEE-S3

  • SSE-KMS (누가, 언제, 어떻게 암호를 풀었는지 기록)

  • SSE-C (딱히 장점은 없어 보임)

3.2. S3 암호화 과정

  • PUT 요청이 생성됨

PUT /simon-image.jpg HTTP/1.1
Host: SimonBucket.s3.<Region>.amazonaws.com
Date: Thu, 12 Feb 2020 14:26:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-Length: 82253
x-amz-meta-author: Simon
Expect: 100-continue
[82253 bytes of object data]
  • x-amz-server-side-encryption-paramerer

    • 암호화되지 않은 파일 제한

PUT /simon-image.jpg HTTP/1.1
Host: SimonBucket.s3.<Region>.amazonaws.com
Date: Thu, 12 Feb 2020 14:26:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-Length: 82253
x-amz-meta-author: Simon
Expect: 100-continue
x-amz-server-side-encryption-parameter: AES-256   <--<--
[82253 bytes of object data]

(기초) AWS - CloudWatch

AWS에 대해 알아봅니다.

정민호정민호

1. CloudWatch

  • 이벤트

    • S3 버킷 파일 업로드 & 삭제

    • S3 버킷 접근 시 접근거부 발생

    • RDS 데이터베이스에 접속 시도

  • AWS 리소스 사용의 실시간 모니터링 기능 지원

  • 다양한 이벤트들을 수집하여 로그파일로 저장

  • 이벤트&알람 설정을 통해 SNS, AWS Lambda로 전송 가능

  • [CloudWatch 사용 가능 서비스들]: EC2, RDS, S3, ELB 등등

1.1. CloudWatch 모니터링 종류

  • Basic Monitoring

    • 무료, 5분 간격으로 최소의 Metrics 제공

    • 주로 CPU 사용량, 디스크 사용량, 네트워크 I/O

  • Detailed Monitoring

    • 유료, 1분 간격으로 자세한 Metrics 제공

1.2. CloudWatch 사용 용례

  1. 사례

    • UseCase : 매일 얼마나 많은 사용자들이 모바일 앱을 사용하는지 알고 싶음

    • Potential Issue : 특정날에 수많은 traffic이 몰릴 수 있어 병목현상이 생길 수 있음

    • Solution : 매일 traffic rate와 특정 버튼의 유저 클릭 횟수를 분석하여 더 효율적인 앱개발을 할 수 있는 통찰력을 얻을 수 있음

  2. 사례

    • UseCase : 특정 시간대에 웹서버 상태를 점검하여 비용 절감 목표

    • Potential Issue : 똑같은 비용을 내며 AWS 리소스들을 사용하지만 낮시간대와 밤시간대에 필요한 서버의 성능은 달라질 수 있기 때문에 금전적 손실이 생길 수 있음 (주로 밤시간대가 낮시간대보다 서버가 오랫동안 idle)

    • Solution : 알람 설정을 통하여 특정 threshold 에 도달했을 때 개발자에게 상황을 보고해줌으로써 서버 management 를 할 수 있음

2. Alarm

  • 임의로 정해놓은 값에 도달할 시 Alarm 을 울림

  • Alarm 이 울릴 시 특정 이벤트들을 작동시킬 수 있음

  • 오전 7시 알람 설정 → 기상 후 조식 & 세수 & 옷갈아입기 → 오전 9시 출근

    • 임의의 값 → 이벤트 → 임의의 값

2.1. Alarm State

  • Alarm

  • Insufficient

    • 무언가 불충분.

  • OK

    • 알람이 울리지않고 범위내에서 잘 돌아간다는 뜻

2.2. Billing Alarm

  • 우리들이 정해놓은 지출 임계값을 초과할 경우 SNS를 통하여 경고를 함

  • 현재 N.Virginia(us-east-1) 지역에서만 이 기능이 지원됨 (2020.07 기준)