웹 애플리케이션 호스팅
다음은 가장 기본적인 웹 애플리케이션 호스팅 아키텍쳐입니다.
2개의 서로 다른 AZ에 이중화 구성을 하여 고가용성을 실현하였고 갑작스러운 접속량 증가를 대비하여 자동으로 스케일 인/아웃이 가능합니다.
CDN을 통한 컨텐츠 배포로 지연 시간을 최소화 했습니다.
- 가용성과 확장성이 우수한 관리형 클라우드 DNS(Domain Name System) 웹 서비스 입니다. 이 서비스는 www.example.com과 같은 이름을 192.0.2.1과 같이 컴퓨터 간 연결을 위해 사용되는 숫자로 된 IP 주소로 변환합니다. AWS의 자원이나 타도메인으로 라우팅 해줍니다.
- 짧은 지연 시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 글로벌 콘텐츠 전송 네트워크(CDN) 서비스입니다. 사용자에게 가장 가까운 엣지 로케이션에 리퀘스트가 라우팅되어 최고의 속도를 보장합니다.
- 웹 사이트에서 모바일 앱, 기업 애플리케이션, IoT 센서나 디바이스의 데이터에 이르기까지 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지 플랫폼입니다. Amazon CloudFront로 전송하기 위한 동영상이나 이미지 데이터를 저장합니다.
- 들어오는 애플리케이션 트래픽을 하위의 EC2 인스턴스들에게 자동으로 분산시킵니다. 그리고 인바운드 트래픽을 물 흐르듯이 안정적으로 관리하여 애플리케이션의 내결함성을 증가시킵니다.
- 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다. 콘솔을 통해 간편하게 필요한 사양을 선택하여 구성하고 컴퓨팅 리소스를 포괄적으로 제어할 수 있습니다.
- 하나 이상의 데이터센터로 이루어진 가용 영역입니다. AZ1에서 접속 문제 발생 시에도 AZ2를 통해서 무중단으로 서비스가 운영될 수 있도록 고가용성을 실현하였습니다.
- 특성이 유사한 EC2의 조정 및 관리를 하기 위한 인스턴스 모음입니다. 이 아키텍쳐에서는 웹 서버 그룹 또는 애플리케이션 그룹의 자원 사용량에 따라 유연하게 스케일 인/아웃하여 인스턴스의 규모를 조정합니다.
- 사용하면 클라우드에서 관계형 데이터베이스를 더욱 간편하게 설정, 운영 및 확장할 수 있습니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하면서 비용 효율적이고 조정 가능한 크기의 인스턴스를 제공합니다.
- 다중 AZ 기능을 통해 복잡하고 어려운 DB 이중화를 몇 번의 클릭만으로 손쉽게 구성할 수 있습니다. DB 인스턴스 Failover는 완전히 자동으로 실행되므로 관리자의 개입이 필요가 없습니다. Amazon RDS는 인스턴스의 상태를 모니터링하고 다양한 장애 상황에 따라 자동으로 장애 조치를 시작합니다.
온라인 게임
온라인 게임 백엔드 인프라는 유지 관리 및 운영에 어려움을 겪을 수 있습니다.
피크 사용 시간, 멀티 플레이어, 대용량의 쓰기 작업은 운영팀이 직면하는 가장 일반적인 문제 중 하나입니다.
그러나 가장 어려운 과제는 해당 시스템의 규모에서 유연성을 확보하는 것입니다.
사용률이 높은 트래픽 패턴에 따라 확장되는 온라인 게임을 구축할 때 활용할 수 있는 다양한 도구와 서비스를 AWS를 통해 제공합니다.
- 가용성과 확장성이 우수한 관리형 클라우드 DNS(Domain Name System) 웹 서비스입니다. 이 서비스는 www.example.com과 같은 이름을 192.0.2.1과 같이 컴퓨터 간 연결을 위해 사용되는 숫자로 된 IP 주소로 변환합니다. AWS의 자원이나 타 도메인으로 라우팅해줍니다.
- 들어오는 애플리케이션 트래픽을 하위의 EC2 인스턴스들에게 자동으로 분산시킵니다. 그리고 인바운드 트래픽을 물 흐르듯이 안정적으로 관리하여 애플리케이션의 내결함성을 증가시킵니다.
- 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다. 콘솔을 통해 간편하게 필요한 사양을 선택하여 구성하고 컴퓨팅 리소스를 포괄적으로 제어할 수 있습니다.
- 특성이 유사한 EC2의 조정 및 관리를 하기 위한 인스턴스 모음입니다. 이 아키텍쳐에서는 웹 서버 그룹의 네트워크 부하, CPU 및 메모리 사용량에 따라 설정된 규칙에 맞춰 유연하게 인스턴스 규모가 조정됩니다.
- 웹 사이트에서 모바일 앱, 기업 애플리케이션, IoT 센서나 디바이스의 데이터에 이르기까지 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지 플랫폼입니다. 게임의 클라이언트는 주로 이미지, 소리, 플래시 애플리케이션, 자바 애플릿과 같은 정적인 파일로 구성되어 있습니다. 이러한 파일은 S3에서 호스트됩니다.
- 각각의 웹 서버에 의해 생성된 로그 파일은 S3로 푸쉬되어 보관됩니다.
- 짧은 지연 시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 글로벌 CDN(Content Delivery Network) 서비스입니다. 사용자에게 가장 가까운 엣지 로케이션에 리퀘스트가 라우팅되어 최고의 속도를 보장합니다. CloudFront의 글로벌 인프라를 활용하여 해외 플레이어들에게 빠른 컨텐츠 배포가 가능합니다.
- 규모와 관계없이 10밀리초 미만의 지연 시간이 일관되게 요구되는 모든 애플리케이션을 위한 빠르고 유연한 완전 관리형 NoSQL 클라우드 데이터베이스 서비스입니다. 플레이어의 데이터는 DynamoDB에 저장되며 이용자가 증가하면서 필요로 하는 성능을 예측하여 물 흐르듯이 유연하게 용량을 조정합니다.
- 관리형 하둡 프레임워크로서 동적으로 확장 가능한 Amazon EC2 인스턴스 전체에서 대량의 데이터를 쉽고 빠르며 비용 효율적으로 처리할 수 있습니다. 온라인 게임 플랫폼에서 생성되는 대용량의 데이터를 분석하고 관리하기는 매우 어렵습니다. 하지만 EMR을 활용하면 웹 서버에서 생성되고 S3에 저장된 로그 파일과 DynamoDB에 저장된 플레이어 데이터를 분석하여 플레이어의 행동 양식 및 사용 패턴을 간편하게 분석 가능합니다. 이분석 결과물은 위해 S3나 RDS에 다시 저장하여 다른 분석 도구에서 활용할 수 있습니다.
- 디지털 마케터 및 애플리케이션 개발자가 마케팅, 알림 및 트랜잭션 이메일을 발송하는 데 도움이 되도록 설계된 클라우드 기반 이메일 발송 서비스입니다.
온라인 광고
인터넷 광고 서비스는 제한된 시간 내에 타게팅된 광고를 제공해야 합니다.
AWS는 클라우드에서 안정적이고 내결함성과 가용성이 높은 광고 플랫폼을 구축하기 위한 서비스 및 인프라를 제공합니다.
이러한 시스템의 두 가지 주요소인 광고 게재 인프라와 데이터 분석 클러스터가 포함된 클릭 정보 수집 시스템에 대한 아키텍쳐입니다.
- 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다. Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있습니다. 생성된 VPC 안에 IP 주소 범위를 선택하여 서브넷을 생성하고 라우팅 테이블, 네트워크 게이트웨이 및 보안 설정을 구성할 수 있습니다. 서브넷은 VPC 안에 특정 IP 주소 범위입니다. AWS 리소스를 선택한 서브넷에서 시작할 수 있습니다.
- 들어오는 애플리케이션 트래픽을 하위의 EC2 인스턴스들에게 자동으로 분산시킵니다. 그리고 인바운드 트래픽을 물 흐르듯이 안정적으로 관리하여 애플리케이션의 내결함성을 증가시킵니다.
- 접속자들이 웹페이지를 보면 Ad 서버에서 포인터를 통해 광고를 보여줍니다. 이 Ad 서버는 EC2를 이용하여 구성합니다. Amazon EC2(Elastic Compute Cloud)는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다.
- 특성이 유사한 EC2의 조정 및 관리를 하기 위한 인스턴스 모음입니다. 이 아키텍쳐에서는 웹 서버 그룹으로 유입되는 사용자 양에 따라 네트워크 부하, CPU 사용량, 등의 설정된 규칙에 맞춰 유연하게 자원이 조정됩니다. Ad 서버와 클릭 서버의 인스턴스를 스케일링 해줍니다.
- 짧은 지연 시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 글로벌 콘텐츠 전송 네트워크(CDN) 서비스입니다. 사용자에게 가장 가까운 엣지 로케이션에 리퀘스트가 라우팅되어 최고의 속도를 보장합니다. 광고 컨텐츠가 이 CloudFront를 통해서 사용자에게 다운로드 됩니다.
- 웹 사이트에서 모바일 앱, 기업 애플리케이션, IoT 센서나 디바이스의 데이터에 이르기까지 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지 플랫폼입니다. 사용자에게 전달될 광고 이미지나 동영상의 원본을 저장하고 해당 광고에 대한 impression(사용자가 광고를 접한 상태) 로그 파일을 다시 전달받아 저장합니다.
- 광고를 접한 사용자가 광고를 클릭하거나 터치(모바일의 경우)하면 해당 클릭 요청 트래픽을 ELB에서 분산하여 클릭 서버로 전달합니다.
- 클릭 서버에 대한 로그 파일을 S3에 저장합니다.
- 관리형 하둡 프레임워크로서 동적으로 확장 가능한 Amazon EC2 인스턴스 전체에서 대량의 데이터를 쉽고 빠르며 비용 효율적으로 처리할 수 있습니다. 각각의 인스턴스 그룹에서 수집되고 S3에 저장된 impression 로그 파일과 클릭 파일을 EMR에서 동시다발적으로 분석합니다.
- Amazon EC2 예비 컴퓨팅 리소스에 입찰하여 구매하는 인스턴스입니다. 스팟 인스턴스는 온디맨드 요금과 비교하여 대폭 할인된 요금으로 사용할 수 있기 때문에 애플리케이션 실행 비용을 대폭 절감하고, 같은 예산으로 애플리케이션의 컴퓨팅 파워와 처리 속도를 높일 수 있습니다. 이런 스팟 인스턴스의 특성을 활용한 새로운 유형의 클라우드 컴퓨팅 애플리케이션을 실행할 수 있습니다. EMR에 의해서 운영되는 EC2 클러스터의 인스턴스를 스팟으로 구매하면 훨씬 저렴하고 유동적으로 구성할 수 있습니다.
- 규모와 관계없이 10밀리초 미만의 지연 시간이 일관되게 요구되는 모든 애플리케이션을 위한 빠르고 유연한 완전 관리형 NoSQL 클라우드 데이터베이스 서비스입니다. EMR에서 분석된 대용량 데이터의 결과물이 DynamoDB에 저장되고 Ad 서버에 해당 정보가 반영됩니다.