728x90
728x90
MyClothes.com 개요 이전에는 stateless 형식의 웹 애플리케이션을 다뤘다. 단순히 시간을 알려주기만 했고 데이터베이스나 다른 정보들이 필요하지는 않았다. 이제는 stateful 형태의 웹 애플리케이션을 다뤄보자. MyClothes.com 에는 장바구니가 있고 수백명의 사용자들이 웹사이트에 접속할 수 있다. 모든 사용자들이 웹사이트를 둘러볼 수 있다. 인스턴스를 확장할 수 있어야 하고, 수평 확장성을 유지하며 애플리케이션의 상태를 가능하면 stateless 상태로 두고 싶다. 장바구에 저장한 정보들을 잃어버리면 안되고 주소 같은 사용자 정보를 효과적으로 보관하도록 데이터베이스를 사용할 것이다. MyClothes.com 클라이언트가 있고 Route 53 과 ELB, ASG 가 있으며 Mult..
Stateless Web App : WhatsTheTime.com 개요 WhatsTheTime.com 이라는 사람들에게 시간을 알려주는 웹사이트를 만들었다. 각각의 인스턴스와 서버는 현재 시간을 알고 있다. 너무나 간단한 웹사이트라 DB 서버도 필요없지만 인기가 정말 많아져서 전 세계의 시간을 모두 알아야 한다. 인스턴스를 수직 및 수평적으로 확장할 수 있어야 한다. 이제 해당 앱에 대해서 해결책을 강구해보자. What time is it? t2.micro 인스턴스와 사용자가 있다. 사용자가 시간을 물어보면 응답값으로 현재 시간을 알려준다. 현재 앱에 고정 IP 주소를 할당해준다. 탄력적 IP 주소를 EC2 인스턴스에 연결해준다. 이제 내가 이 웹사이트를 다른 사람들에게 추천을 해서 많은 사람들이 웹사이..
타사 도메인 및 Route 53 Domain Registar vs DNS Service 도메인 이름 레지스트라와 DNS 서비스를 구별해보자. 도메인 이름 레지스트라를 통해 원하는 도메인 이름을 구매할 수 있고 매년 비용을 지불하여 사용할 수 있다. Amazon Route 53 레지스트라 외에도 가비아, GoDaddy, Google 도메인 등이 있다. 레지스트라를 통해 도메인을 등록하면 DNS 레코드 관리를 위한 DNS 서비스를 제공한다. 그래서 Amazon 호스트 이름으로 도메인 이름을 등록했다면 자동으로 Route 53에서 DNS 레코드 관리를 위한 호스팅 존을 갖는다. 반대로 Route 53 에서 도메인 이름을 구입하지 않고 그 외 사이트에서 example.com 이라는 도메인 이름을 구매했다고 가정..
라우팅 정책 - 다중값 응답 트래픽을 다중 리소스로 라우팅할 때 사용하는 정책이다. Route 53이 DNS 쿼리에 대해 다수의 값(예: 웹 서버의 IP 주소)을 반환하도록 구성할 수 있다. 다중값은 거의 모든 레코드에 대해 지정할 수 있지만, 다중값 응답 라우팅을 사용하면 각 리소스의 상태를 확인할 수도 있으므로 Route 53은 정상 리소스(헬스 체크를 통과)의 값만 반환한다. 로드 밸런서를 대체하는 것은 아니지만, 다수의 상태 확인 가능한 IP 주소를 반환하는 기능은 DNS를 사용하여 가용성 및 로드 밸런싱을 개선하는 한 방법이다. 다중 값 쿼리에 최대 8개의 정상 레코드가 반환된다. 클라이언트 측의 로드 밸런싱이라고 볼 수 있다. 예시 www.example.com 에서 Multi-Value 정책으..
라우팅 정책 - 지리 근접 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 라우팅해준다. 이 정책을 사용하여 특정 위치에 트래픽이 쌓이는 정도를 확인할 수 있다. 특히, 해당 정책에서는 bias라고 하는 값을 지정하여 해당 리소스로 라우팅하는 트래픽의 양을 늘리거나 줄일 수도 있다. bias는 트래픽이 리소스로 라우팅되는 지리적 리전의 크기를 확장하거나 축소한다. 리소스에 트래픽을 줄이려면 bias를 음수로 축소시키면 된다. 리소스는 AWS 서비스가 될 수도 있고 온프레미스 환경이 될 수도 있다. 만약 AWS 리소스가 아니라 온프레미스 리소스일 경우에는 위도와 경도를 입력해줘야 한다. 지리 근접 라우팅을 사용하려면 Route 53 트래픽 흐름(traffic flow)을 사용해야 한다. us-west-1..
라우팅 정책 - Geoloaction(지리적 위치) 지리적 라우팅 정책은 사용자의 위치(DNS 쿼리가 발생하는)를 기반으로 라우팅할 리소스를 지정할 수 있다. 각 위치마다 사용자들의 특성별로 서비스를 제공할 수 있어 글로벌 서비스에 특화되어 있는 리소스 정책이다. 마찬가지로 레코드 이름, 레코드 타입, TTL을 기입하면 해당 레코드에 대한 지역(Location)과 라우팅할 리소스를 지정할 수 있다. 일치하는 위치가 없을 경우에는 기본 레코드를 생성해야 한다. 사용 사레로는 콘텐츠 분산을 제한하고 로드 밸런싱을 사용하는 웹사이트의 현지화에 사용한다.(넷플릭스 나라별로 볼 수 있는 영상이 있는 것처럼..) 헬스 체크 사용 가능하다. 예를 들어, 독일의 유저가 독일어 버전의 앱으로 접속될 수 있게 지리적 라우..