들어가며..
지금까지 배운 AWS solution을 복습할 겸 여러 사용자 요구조건에 따라 어떤 AWS Service들을 사용해야 하는지를 정리해보았습니다.
Example 1
현재 시각을 알려주는 서버를 설계한다.
요구사항
최초설계
![](https://velog.velcdn.com/images/hyeongjun-hub/post/58cd949d-ba4e-4311-ba1e-301d51a122dc/image.png)
- ec2 인스턴스는 t2.micro 타입을 가짐
- ec2 인스턴스는 elastic IP를 가짐
- 사용자는 ec2 인스턴스에게 현재 시각을 물어본다
- ec2 인스턴스는 현재 시각을 response 해준다.
수직적 확장
![](https://velog.velcdn.com/images/hyeongjun-hub/post/a72ebcc0-2579-430b-bf45-828485539633/image.png)
- t2 인스턴스가 부하가 많아져 느리다면
- ec2 인스턴스를 m5 인스턴스 타입으로 수직적 확장
수평적 확장
![](https://velog.velcdn.com/images/hyeongjun-hub/post/b337ca30-11a1-46ab-8578-2fd982793be6/image.png)
- 그럼에도 부하가 많아져 느리다면
- ASG에 인스턴스들을 넣어 수평적확장하도록 설정
- 각 인스턴스들은 elasticIP를 가짐
- 하지만 elastic IP는 계정 당 5개 사용가능하므로 문제점 발생
Route53
![](https://velog.velcdn.com/images/hyeongjun-hub/post/c0fb2de8-572b-4bc1-8bff-b70314bfd059/image.png)
- Route53을 이용해 elastic ip대신 dns를 사용
- TTL 설정
- 하나의 인스턴스에 부하가 집중되는 장애가 발생 할 가능성이 있음
ELB
![](https://velog.velcdn.com/images/hyeongjun-hub/post/b4d9cf29-86fa-4cd3-a7e5-911bb907e6d3/image.png)
More..
Multi-AZ를 이용해 재해에 대비할 수 있음
인스턴스의 용량을 예약해 on-demand보다 비용적으로 이점을 볼 수 있음
Example 2
쇼핑몰을 설계한다
요구사항
- 회원, 쇼핑물품에 대한 데이터베이스를 가짐
- 회원들의 로그인 세션, 장바구니 상태를 유지해야 함
sticky session
![](https://velog.velcdn.com/images/hyeongjun-hub/post/5fe713ca-6b08-498a-ab38-fc253b7c0638/image.png)
- elb에 stickness를 설정해 같은 회원은 같은 인스턴스에 연결되도록 설정
- 부하가 집중될 가능성 높음
cookie
- cookie에 사용자의 정보들을 전부 집어넣어 통신한다
- cookie의 최대 크기는 4KB로 제한적
- 보안적으로 critical
session store 사용
![](https://velog.velcdn.com/images/hyeongjun-hub/post/b505efab-b9e5-4b8e-9ae7-0961d571d4cd/image.png)
- elastiCache를 session store로 사용한다
- redis혹은 memcached를 선택하여 사용 가능
- amazon dynamoDB를 사용할 수도 있다.
데이터베이스
![](https://velog.velcdn.com/images/hyeongjun-hub/post/d6edab89-21e6-4b70-afc2-05d0dfe19e16/image.png)
- Amazon RDS를 데이터베이스로 사용
- RDS 읽기 전용 복제본을 이용해 성능을 높일 수도 있다.
ElastiCache를 RDS의 캐시서버로 사용
- ElastiCache를 RDS의 캐시서버로 사용해서 RDS의 성능을 높일 수 있다.
- Redis를 사용한다면 Multi-AZ 기능을 이용해 재난에 대비할 수 있다.
마치며..
여태 배웠던 AWS Service들을 복습하면서 어떻게 적재적소에 사용해야하는 지를 알게되었습니다. AWS는 알면 알수록 정답이 뚜렷해지는 것 같습니다.
https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/