Amazon Aurora 연결

김유신·2024년 2월 20일
post-thumbnail

이어지는 이전 글 - https://velog.io/@kys/AWS.Auto-Scaling

Amazon Aurora(Aurora)는 MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진, 관리형 DB로(Amazon RDS)의 일부라서
유지 관리는 전체적으로 동일하지만 Amazon Aurora 와 Amazon RDS 가장 큰 차이점은 스토리지에서 차이가 난다.

DB 데이터 용량이 늘어날수록 Aurora 클러스터 볼륨은 자동 확장되고,
Aurora 클러스터의 볼륨 크기는 최대 128 tebibytes (TiB)까지 증가할 수 있습니다.

주요 목표가 안정성과 고가용성인 경우 중요한 엔터프라이즈 데이터에 Aurora를 선택하는 것이 유리하다.

인스턴스를 배포 하고 Auto Scaling Group의 웹 서비스(Apache + PHP)를 구성한 상태 https://velog.io/@kys/AWS.Auto-Scaling
기준으로 RDS Aurora(MYSQL)를 연결해보겠습니다.

순서 -
VPC 보안 그룹 생성 (1)
RDS 인스턴스 생성 (2)
RDS 크레덴셜 저장 (3)
웹 서버와 RDS 연결 (4)
RDS 관리 기능 (5)
RDS Aurora 연결 (6)

VPC 보안 그룹 생성 (1) - 이름,설명,VPC(Lab)
인바운드 규칙 - 오토스케일링 그룹을 통해 생성한 ec2 웹 서버로부터 RDS로의 접근을 허용하는 보안 그룹 정책을 생성합니다.
MySQL/Aurora(3306) 을 선택하고 Auto Scaling Group의 Web Instance들에 적용되어 있는 보안 그룹( ASG-Web-Inst-SG )을 선택하고 생성합니다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
RDS 인스턴스 생성 (2)

RDS > 데이터 베이스 생성으로 이동해 생성을 시작합니다.

사용할 RDS및 인스턴스의 DB 엔진을 선택합니다.
Aurora MYSQL 2.12.0(compatible with MYSQL 5.7.40)을 선택했습니다.
DB 식별자 이름 - rdscluster
마스터 사용자 이름 - awsuser
마스터 사용자 비밀번호 - awspassword

VPC - Lab-vpc를 선택해줍니다.

기존 VPC 보안 그룹에서 만들었던 DB-SG를 선택해줍니다.

추가 구성에서
초기 DB 이름을 설정해줍니다. - immersionday

이대로 생성해줍니다.

현재까지 아키텍쳐 구성

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

RDS 크레덴셜 저장 (3)

AWS Secrets Manger로 이동한뒤, 새 보안 암호 저장을 누릅니다.

RDS 데이터베이스에 대한 자격증명
사용자 이름 - awsuser
암호 - awspassword
데이터 베이스 - rdscluster을 선택한뒤 진행합니다.

보안 암호 이름을 설정해줍니다. (mysecret) 다음을 눌러 생성해줍니다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

웹 서버와 RDS 연결 (4)

웹 서버가 secret에 접근할 수 있도록 허용햐아 합니다.
IAM 콘솔 창에서 정책 - 정책 생성을 클릭합니다.

secrets Manager 서비스를 선택해 줍니다

읽기의 GetSecretValue를 허용해주었습니다. 리소스는 -ALL로 설정해줍니다.

정책 이름을 ReadSecrets로 지정한뒤 생성해 주었습니다.

IAM으로 돌아간뒤 SSMInstanceProfile를 클릭합니다.

권한 추가 - 정책 연결을 클릭합니다.

ReadSecrets로 생성한 정책를 찾고 정책 추가를 클릭합니다.

EC2 콘솔창 로드밸런서에서 DNS이름으로 접속해봅니다.
웹서버에 접속한 뒤 RDS 탭으로 들어갑니다.

생성한 데이터베이스에 있는 데이터들을 확인할 수 있습니다.

현재까찌 아키텍처 구성


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

RDS 관리 기능 (4)

RDS 장애 조치(Failover) 테스트

RDS 관리 콘솔에서 Databases를 선택하고, 장애 조치를 진행할 인스턴스를 선택한 후, 작업 란에서 Failover를 클릭합니다.


리프레시 버튼을 누르면 DB 식별자의 rdscluster의 상태가 Failing-over로 변경된뒤
리프레시 버튼을 눌러 보면, Reader 역할과 Writer 역할이 변경되어 장애 조치가 완료 됩니다.

운영 중인 RDS에 스냅샷을 생성하려면 RDS 관리 콘솔에서 DB를 누르고, 스냅샷 작업을 수행할 인스턴스를 선택 합니다. 우측 상단 Actions -> Take snapshot

RDS Aurora 연결 (5)

VPC-Lab 내의 Public Subnet에 만들어 둔 AMI로 EC2 인스턴스로 연결합니다.
네트워킹 옵션 (Public IP를 허용해야함)
RDS Aurora의 보안 그룹 설정을 변경하여 새로 생성한 EC2 인스턴스의 보안 그룹을 소스로 허용하도록 구성합니다.

$ mysql -u awsuser -pawspassword -h awsdb.xxxxxx.ap-northeast-2.rds.amazonaws.com
명령어를 통해 진입 해봅니다.
awsdb.xxxxxx.ap-northeast-2.rds.amazonaws.com - RDS 엔드 포인트

성공!

profile
KYS's blog

0개의 댓글