AWS IT 설계시 고려사항

  1. 정적컨텐츠 분리
    • 정적 컨텐츠의 딜리버리를 위하여 정적 커텐츠와 동적 컨텐츠를 분리 할 수 있도록 디렉토리 구조를 설계한다. 이렇게 분리된 디렉토리 구조는 CloudFront를 이용하여 캐싱기능 활용이 용이하다. (Hit ratio 상승)
  2. 네트워크 대역폭
    • EBS 최적화 인스턴스 : EC2 인스턴스에서 DBS 볼륨까지 네트워크 대역폭을 보장 받을 수 있음
    • 프로비저닝된 IOPS : 안정적으로 1만 IOPS 이상의 I/O 대역폭을 보장 받을 수 있음
  3. 메모리 캐시 DB 저장 활용 Point
    • 캐시되지 좋은 데이터
    • 잘 변하지 않는 마스터데이터
    • 세션 데이터
    <고려> 여러프로세스가 동일한 데이터를 업데이트할 경우 일관성 보장이 안됨
  4. RDS for Aurora
    • Read DB에 대한 복제 알고리즘이 기존 MySQL의 트랜젝션 로그를 Master 에서 Read로 전달하는 것이 아닌 MasterDB와 ReadDB가 공통 스토리지를 사용 (공통스토리지는 분산 스토리지로 AZ 3개가 개별로 디스크2개 로 묶인 쿼럼 구성)
  5. DNS(Route53)를 통한 가용성 구현
    • DNS 장애조치 기능을 사용한 크로스 리전 다중화 구성시 Route53이 단일 장애 지점인 것 처럼 보일 수 있지만, Route53은 서비스 내부에서 다중화를 통해 자체적인 고가용성 설계가 되어 있으며, SLA 가동률이 100% 임
    • Route53에 여러개 서비스 엔드포인트를 등록하고, 일부 장애로 인해 엔드포인트에 접속할 수 없게 되면 유입되는 트래픽을 해당 엔드포인트로 전송하지 않음
    • 다중 엔드포인트는 Live 서비스로 구성되어야 하며, A-A (Active - Active) 구조로 설계한다.
  6. RDS 다른 Region에 읽기전용 복제본 기능 사용
    • 읽기 전용 복제본의 마스터 승격은 RDS의 API로 제공, 원본 마스터에서 복제를 중지하고 독립된 DB로서 작동을 시작
    • 백업 사이트에서 장애 조치 시에 사용하면 백업 사이트의 데이터베이스가 마스터로서 Read/Write 가능해짐
    • 읽기전용 마스터를 마스터로 승격시 다소 작업 소요시간이 걸리고, Route53 DNS 장애조치 기능과 연동되지 않음 이를 자동화 하기위해 Lamba 등을 이용해 Event Trigerring이 필요함
  7. S3는 리전간 복제 기능을 이용하여 백업 사이트와 데이터를 동가화 가능