Search
Duplicate
📒

[AWS - SAA] 08. Classic Solutions Archirecture ⭐

상태
완료
수업
AWS - Solutions Architect
주제
AWS
4 more properties
참고

Classic Solutions Archirecture

NOTE
지금까지 배운 기술들이 어떻게 사용될 수 있는지 살펴본다!

예시1) 무상태 앱: 지금 몇시임?

NOTE
사람들에게 현재 시간을 알려줌
데이터베이스가 필요하지 않음
수직 및 수평 확장에 대해서 downtime이 없어야 한다.
downtime ⇒ 중단시간
1.
EC2와 탄력적 IP로 바로 소통하는 구조
scale up하게되면 DownTime이 생기고, scale out시 많은 elastic ip를 관리해야 한다..
2.
탄력적 IP를 사용하지 않고, Route 53의 DNS Query(A record)를 통해 EC2의 IP를 알아내어서 통신하기
이제 탄력적 IP관리는 편해졌지만, 여전히 문제는 남아있다..
A Record방식으로 다수의 EC2 IP를 등록해서 통신하도록 한다.
그런데 여기서 하나의 EC2를 업데이트하거나 제거하면, TTL의 시간만큼 고객이 사용하지 못하게 된다!
3.
Route 53의 DNS Query를 통해 모두 ELB로 가게하고, ELB에서 Health Check를 통해 정상적인 인스턴스로 연결
ELB를 통해 정상적인 인스턴스로 자동연결됨! 오토 스케일링으로 과부하시 자동으로 인스턴스 추가 확장!

예시2) 상태 앱: 내 옷사기

NOTE
온라인으로 옷을 구매한다.
수백명의 유저가 동시간대에 사용한다.
수평확장이 필요하고, 웹 사이트를 최대한 무상태로 유지해야 한다.
사용자들의 구매목록을 DB에 저장한다.

문제 원인/해결 흐름

아니 왜 새로 들어갈때마다 내 장바구니 없어짐? ㄹㅇ 개쓰레기 사이트네
1.
ELB에서 Stickness를 통해 동일 인스턴스로 접속하게 하기!
이렇게 하면 데이터는 남아있다. 다만 인스턴스가 죽어버리면 그대로 데이터는 ㅂㅂ
2.
User cookie에 담아서 통신
stateless한 방식이지만 request가 말도안되게 무거워질 것
cookie용량에 제한도 있고, 보안도 취약함..
3.
session_id를 웹 쿠키에 넣어서 통신하고, ElasticCache를 통해 ID에 해당하는 데이터를 read/write하기!
이 방식은 로그인에서도 사용하니 잘 알아두자!
4.
RDS에서 read/write하고 Read Replicas를 통해 트레픽 분산하기!
우리가 배운 방법중 가장 이상적인 방법!
ElasticCache를 캐싱용으로 사용!

예시3) 상태 앱: MyWordPress.com

NOTE
확장가능한 WordPress 웹사이트 생성
웹사이트에 접근이 가능하고, 사진업로드가 가능해야 한다.
유저 데이터와 블로그 내용은 MySQL에 저장된다.

문제 원인/해결 흐름

1.
Aurora를 통해 MultiAZ, Read Replicas 간편하게 설정
Aurora를 활용하면 쉽게 설정가능
2.
이미지를 EBS에 저장
인스턴스가 1개면 상관없는데 2개이상이면 어떤 EBS에 저장하고 불러와야하지..?
3.
이미지를 EFS에 저장
EFS로 같은 저장공간을 사용하도록 한다

Elastic Beanstalk

NOTE
AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있는 서비스
용량 프로비저닝, 로드 밸런싱, 조정, 모니터링 등을 자동으로 해줌
EB Console, AWS CLI를 이용해 상호 작용
Beanstalk자체는 무료이고, 그 아래의 resource들에 대해 과금이 된다.