AWS Solution Architect Example

hyeongjun Jo·2023년 4월 5일
1

DevOps

목록 보기
5/12
post-thumbnail

들어가며..

지금까지 배운 AWS solution을 복습할 겸 여러 사용자 요구조건에 따라 어떤 AWS Service들을 사용해야 하는지를 정리해보았습니다.

Example 1

현재 시각을 알려주는 서버를 설계한다.

요구사항

  • 데이터베이스 없음
  • 무상태

최초설계

  • ec2 인스턴스는 t2.micro 타입을 가짐
  • ec2 인스턴스는 elastic IP를 가짐
  • 사용자는 ec2 인스턴스에게 현재 시각을 물어본다
  • ec2 인스턴스는 현재 시각을 response 해준다.

수직적 확장

  • t2 인스턴스가 부하가 많아져 느리다면
  • ec2 인스턴스를 m5 인스턴스 타입으로 수직적 확장

수평적 확장

  • 그럼에도 부하가 많아져 느리다면
  • ASG에 인스턴스들을 넣어 수평적확장하도록 설정
  • 각 인스턴스들은 elasticIP를 가짐
  • 하지만 elastic IP는 계정 당 5개 사용가능하므로 문제점 발생

Route53

  • Route53을 이용해 elastic ip대신 dns를 사용
  • TTL 설정
  • 하나의 인스턴스에 부하가 집중되는 장애가 발생 할 가능성이 있음

ELB

  • ELB를 이용해 부하를 분산시킴

More..

Multi-AZ를 이용해 재해에 대비할 수 있음
인스턴스의 용량을 예약해 on-demand보다 비용적으로 이점을 볼 수 있음

Example 2

쇼핑몰을 설계한다

요구사항

  • 회원, 쇼핑물품에 대한 데이터베이스를 가짐
  • 회원들의 로그인 세션, 장바구니 상태를 유지해야 함

sticky session

  • elb에 stickness를 설정해 같은 회원은 같은 인스턴스에 연결되도록 설정
  • 부하가 집중될 가능성 높음
  • cookie에 사용자의 정보들을 전부 집어넣어 통신한다
  • cookie의 최대 크기는 4KB로 제한적
  • 보안적으로 critical

session store 사용

  • elastiCache를 session store로 사용한다
  • redis혹은 memcached를 선택하여 사용 가능
  • amazon dynamoDB를 사용할 수도 있다.

데이터베이스

  • 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/

profile
DevOps Engineer

0개의 댓글