2018년 2월 11일 일요일

AWS 인프라로 사이트 구축 사례

[글로벌 사진 사이트 구축]
1. 개발 요구 사항
  - 대용량 이미지 파일 저장
  - 전 세계 어디서나 사이트 및 이미지를 보여주는 속도가 빠름
  - 원본 사진의 크기를 웹사이트에 맞게 조절
  - 사용자 증가량 대비
2. AWS 리소스와 서비스 구조 설계
  - S3 : 대용량 이미지 저장
  - CloudFront : 전 세계에 빠르게 사이트와 이미지 배포
  - EC2, SQS : 원본 사진 크기 조절 처리 및 서버간 통신
  - EC2, RDS : 웹 서버, 데이터베이스
  - ELB, AutoScaling : 사용자 증가 대비
  - Rout53 : 도메인 처리

[자동 확장 가능한 콘서트 티켓 예매 사이트 구축]
1. 개발 요구 사항
  - 짧은 시간에 사람이 많이 몰려도 서비스가 중단되지 않아야 함
  - 결제가 정확히 이루어져야 함
  - 실시간으로 좌석 예매 상황 표시
2. AWS 리소스와 서비스 설계 구조
  - ELB, AutoScaling : 사용자 증가 대비
  - RDS : 좌석 결제가 정확하게 처리
    ~ DynamoDB는 실제 처리량이 설정한 처리량을 넘기면 읽기/쓰기 실패
    ~ RDS는 인스턴스 클랙스, IOPS 속도를 높일 수 있음(수직확장)
3. ElastiCache의 Radis : 실시간 좌석 예매 상황 표시
4. socket.io : 웹 브라우저에서 실시간으로 좌석 상태 갱신
5. CloudFront : HTML, JavaScript 파일을 배포하여 EC2 인스턴스 부하를 줄임

[자동 확장 가능한 모바일 게임 서버 구축]
* 모바일 게임 패턴
  - 퍼즐 또는 런(Run) 등 게임 방식이 간단하고 소셜 플랫폼을 활용한 순위형 게임
  - 카드나 캐릭터를 수집한 뒤 전투를 하는 게임
  - 자신의 요새나 성을 쌓고 서로 공격하는 게임
  - 자신의 소유물을 경영하는 게임
  - 스포츠 기반 수집 게임
1. 개발 요구 사항
  - 실시간으로 순위를 산출
  - 부분 유료화 아이템의 결제에 장애가 발생하면 안됨
  - 마케팅을 위한 로그를 저장해야 함
  - 사용자가 늘어남을 대비
2. AWS 리소스와 서비스 설계 구조
  - RDS : 유저 정보, 게임 데이터, 결제 정보 저장
  - ElasticCache : 전체 순위, 친구 순위 산출
  - DynamoDB : 결제 로그 및 게임 로그 등 비정형 데이터 저장
  - EC2, ELB, Auto Scaling : 게임서버, 분산부하 담당
  - S3, CloudFront : 게임의 리소스에 대한 부분 업데이트 저장소