[SAA] 섹션 11: Classic Solutions Archirecture Discussions

천호영·2022년 6월 11일
0

aws

목록 보기
10/10
post-thumbnail

이번 섹션에서는 지금까지 나온 기술들이 어떻게 함께 이용되는지 살펴본다.

Stateless Web App: WhatIsTheTime.com

cf. downtime은 중단시간을 의미한다.

  1. EC2 instance와 elastic IP로 User와 바로 소통하는 구조
  • scale up할 때 Downtime이 생기고, scale out시 많은 elastic IP를 관리해야 한다.
  1. Elastic IP를 안쓰고, Route 53의 DNS Query(A Record)를 통해 EC2의 IP를 알아내서 소통하도록 하기
  • TTL이 1hour일 때, 특정 EC2 인스턴스가 죽거나 삭제되면 최대 1시간 동안 특정 고객이 이용 못 할 수 있다.
  1. Route 53의 DNS Query를 통해 모두 ELB로 가게 하고(Alias Record 사용), ELB에서 Health Check를 통해 정상적인 Private EC2 instance에 연결되도록 하기
    (+ auto scaling group을 통해 수요에 맞게 scale in/out)
    (+ 재난에 대응하기 위해 ELB, EC2 모두 multi AZ로)
    (+ 최소 용량이 있다면 reserved instance 이용)

Stateful Web App: MyClothes.com

  1. ELB에서 Stickness를 통해 데이터 유지되도록 하기
  • sticky하게 소통하던 EC2가 중단되거나 제거되면 데이터도 함께 사라진다
  1. User cookie에 담아서 소통
  • stateless하지만 request가 무거워지고 보안이 매우 취약해진다(쉽게 쿠키 교체 가능, 따라서 Validation 필수)
  • cookie 용량도 4KB가 최대이다
  1. session_id를 웹 쿠키에 넣어서 소통하고, ElastiCache를 통해 ID에 해당하는 데이터 Store/retrieve하기(DynamoDB로 대체 가능)

  2. RDS에서 데이터 Store/retrieve하고, Read Replicas를 통해 트래픽 분산
    (+ ElastiCache를 캐싱용으로 사용, cache miss일때만 RDS 접근하도록)
    (+ multiAZ ELB, multiAZ ASG, multiAZ RDS, multiAZ ElastiCache로 HA토록)
    (+ 연결되는 파트만 보안그룹에서 설정)
    cf. Route53은 multiAZ 따로 설정 안해도 이미 highly avaliable(HA)

Stateful Web App: MyWordPress.com

  1. Aurora를 통해 MultiAZ, Read Replicas 간편하게 설정

  2. 이미지를 EBS에 저장

  • 한 EC2 instance일 때는 잘 동작하나 scale out시 다른 EC2간 이미지 공유가 안된다.
  1. 이미지를 EFS에 저장
    NFS(Network File System)인 EFS와 각 AZ안의 ENI(Elastic Network Interface)를 통해 EC2는 소통한다.
  • AZ와 상관없이 인스턴스간의 이미지가 공유된다.
    cf. EBS에서 특정 타입(io1, io2)은 같은 AZ에서 공유 가능

Instantiating Applications quickly

Cloud를 통해 여러 full stack 구성을 시작하는데 걸리는 시간을 줄일 수 있다.

EC2 Instance에서는 다음이 가능하다.

  • Use a Golden AMI: OS 영역을 포함하여 필수 패키지가 설치된 표준 이미지 개념 - 공통 부분을 미리 패키징하여 인스턴스 프로비저닝 시간 최소화
  • Bootstrap using User Data
  • Hybrid(Golden AMI + User Data): Elastic Beanstalk

RDS, EBS Volume은 snapshot을 통해 쉽게 복구 가능

Elastic Beanstalk

Web App이 3-tier(PUBLIC SUBNET, PRIVATE SUBNET, DATA SUBNET)는 다음과 같다.

cf. web application (or web app) is application software that runs on a web browser

Elastic Beanstalk은 AWS application 배포의 개발자 중심 View다.

  • 개발자는 오로지 코드만 책임이 있고, 나머지는 모두 알아서 해준다.
  • Beanstalk 자체는 무료이고, 그 아래의 resource들에 대해 과금된다.

Web Server Environment Tier와 Worker Environment Tier가 있다.

profile
성장!

0개의 댓글