다중 리전에 서버를 배포해야할 일이 생겼다. 기존 리전은 북미쪽이나, 유럽쪽에도 같은 서비스를 배포해야한다.
서로 다른 지역에 있는 사람들도 같은 데이터에 접근할 수 있어야 하며, 만족할만한 레이턴시를 낼 수 있어야 한다.
구축해야하는 환경은 다음과 같다.
- elastic beanstalk
- MySQL
- 글로벌 데이터 베이스 구축을 통해, 여러 리전에 읽기 인스턴스를 생성한다.
- 우선은 쓰기 전달은 사용하지 않는다. 쓰기가 필요할 경우, 기본 리전의 쓰기 인스턴스에 접근한다.
- DynamoDB
- ElastiCache
문제점들
- elastic beanstalk의 환경을 그대로 복제해야하는데, 구성 저장/로드는 서로 다른 리전/어플리케이션 간에는 지원하지 않는다.
- MySQL의 쓰기 인스턴스에 접근하려면 보안 그룹을 열어줘야하는데, 보안 그룹에는 서로 같은 리전의 것만 등록 가능하다. 따라서 다른 지역의 ec2 인스턴스가 MySQL 쓰기 인스턴스에 접근하려면 추가 조치가 필요하다.
- ElastiCache는 최대 3개의 복제본을 지원한다. 추가적인 리전에 배포가 일어날 경우, 이전에 만든 elasticache 복제본으로 인해 개수가 부족할 수 있다.
#01 부터는 작업 과정과 문제 해결 과정에 대해서 작성한다.