처음 만나는 클라우드 보안

[AWS프로젝트] 주제 & 아키텍처 소개 (with 오로라DB) 본문

클라우드 기초/Amazon AWS

[AWS프로젝트] 주제 & 아키텍처 소개 (with 오로라DB)

영민하게 2022. 7. 1. 20:45
반응형

# AWS 클라우드 프로젝트

 AWS를 처음 접하면서 세계 곳곳의 리전들을 모두 써보고 싶다는 욕심이 생겼다. 그래서인지 이번 프로젝트의 주제도 의도치 않게 '다중리전의 활용'으로 방향을 잡게 되었다. 다중 리전을 활용했을 때 이점이 있을 주제가 무엇인지 고민하기 시작했고 지금까지 떠올린 아이디어들이 아래와 같다.

 

 외국 관광객을 위한 한국 패키지여행 신청 서비스

 해외 K-POP팬들의 해외 팬미팅 사전예약 서비스

 국내 주요 이벤트, 공연, 소식지 알림 서비스

.

.

 

  대부분 국내로부터 시작된 데이터 소스가 해외로 전달된다. 내 바람은, 정보를 요청한 고객이 가장 근접한 '리전(Region)의 서비스를 제공받아 지연(Latency) 없는 가장 빠른 서비스를 제공받을 수 있게 하는 것이다. 이런 맥락에서 강사님은 데이터베이스로 아마존의 'Aurora DB'를 추천해 주셨고 이 새로운 서비스를 어떻게 활용할 수 있을지 공부하기 시작했다.

리전(Region): 물리적으로 분리된 가용 데이터베이스 센터들의 집합

2022년 기준으로 AWS에는 26개 리전이 존재한다.   (출처 - https://aws.amazon.com/ko/about-aws/global-infrastructure/)

 

1. 클라우드 아키텍처링

  서비스의 중심은 모두 싱가포르 리전에서 시작된다. 오로라DB의 기본 클러스터가 위치해 있으며, 웹서비스를 관리할 Host전용 EC2 또한 싱가포르에 위치한다. 이곳에서 업데이트된 데이터는 오로라 DB의 글로벌 데이터베이스 기능을 통해 다른 보조 인스턴스 DB로 자동 전달되며 각 리전의 인스턴스가 동일하게 지역의 고객들에게 정보를 제공한다. 모든 서비스는 Route53의 지리적 기반 라우트 정책에 따라 유도된다. (핵심은 '고객을 가장 가까운 리전의 서비스로 안내한다'이다.)

각 리전별로 적용된 오토스케일링은 국지적인 트래픽 과부화를 방지하기 위함이다.

 

2. 오로라 DB 구축하기

안정적인 '초리 전 정보전달'을 제공하는 만큼 다양한 기능과 높은 요금체계를 갖고 있다. 서비스에 꼭 필요한 기능적인 옵션을 미리 파악하고 테스트하는 것이 바람직할 것이다. (글로벌 데이터베이스를 위해  db.r5 이상의 인스턴스 클래스 선택)

AWS RDS의 엔진유형중 Aurora DB를 선택, 단일 마스터 선택

 

리전 간 정보전달을 위해 꼭 체크해야 할 기능이 '글로벌 데이터베이스 기능'이다. 아래 엔진 버전의 필터를 열어 해당 기능을 활성화시켜준다. 오로라 DB는 별도의 중지나 해당 옵션의 중도변경이 어렵기 때문에 생성시 설정해야 한다.

 

생성된 오로라DB는 아래와 같이 라이터 인스턴스 그리고 리더 인스턴스 총두 개의 엔드포인트를 갖는다. 동리 전의 EC2에서의 접근은 두 엔드포인트 모두 가능하나 라이터는 읽기/쓰기, 리더 인스턴스는 읽기 전용으로 쓰기가 불가하다.  오로라 DB의 기본 세팅은 라이터 인스턴스이다.

리전 클러스터 선택 > 작업 > 글로벌 데이터베이스 추가

글로벌 데이터베이스 생성되었다.

3. 오로라DB 리전간 클러스터 생성

글로벌 데이터베이스 선택 > 작업 > 리전 추가

아래와 같이 선택된 리전(US Oregon)에 보조 오로라 DB가 생성된다.

미국 보조 인스턴스 생성완료

여기서 기억할 점은 오로라 글로벌 데이터베이스의 보조 클러스터는 기본적으로 '읽기 작업' 수행만 가능하다.

'읽기 전달' 기능을 활성화시킨다면 보조 인스턴스로부터의 자료 입력을 기본 인스턴스에도 전달이 가능하지만 이것은 MySQL쿼리의 DML명령(INSERT, DELETE, UPDATE)만 해당한다. Create Table과 같은 DDL명령에는 아래와 같은 에러 메시지가 나타난다.

 

“MySQL 서버가 --read-only 옵션으로 실행 중이므로 이 문을 실행할 수 없습니다(The MySQL server is running with the --read-only option so it cannot execute this statement)”

 

프로젝트를 위해 최종적으로 싱가포르에는 기본 인스턴스가, 프랑스와 미국에는 보조 인스턴스가 설치되었다. 

과금 방지를 위해 리전별 리더 인스턴스 한 개씩만 생성되었다. 이후에 추가 가능하다.

 

계속 =Route53설정, 웹페이지 구동모습


참고자료

오로라DB 구성 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateDBCluster.html

 

Amazon Aurora 글로벌 데이터베이스 쓰기 전달을 사용하여 전 세계 분산 MySQL 애플리케이션 구축하기

Amazon Aurora 글로벌 데이터베이스 쓰기 전달을 사용하여 전 세계 분산 MySQL 애플리케이션 구축하기 AWS는 2018 년에 Amazon Aurora 글로벌 데이터베이스를 출시했습니다. Aurora 글로벌 데이터베이스는 두

jirak.net

 

오로라 DB 읽기전달 기능 활성화

 https://jirak.net/wp/amazon-aurora-%EA%B8%80%EB%A1%9C%EB%B2%8C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%93%B0%EA%B8%B0-%EC%A0%84%EB%8B%AC%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%A0%84-%EC%84%B8/

 

Amazon Aurora 글로벌 데이터베이스 쓰기 전달을 사용하여 전 세계 분산 MySQL 애플리케이션 구축하기

Amazon Aurora 글로벌 데이터베이스 쓰기 전달을 사용하여 전 세계 분산 MySQL 애플리케이션 구축하기 AWS는 2018 년에 Amazon Aurora 글로벌 데이터베이스를 출시했습니다. Aurora 글로벌 데이터베이스는 두

jirak.net

반응형
Comments