Amazon Aurora DB - AWS RDS Aurora MySQL(2)

Last Updated on 5월 24, 2021 by 태랑(정현호)


해당 글은 아래 이전 글에서 이어지는 글 입니다.



1. Amazon Aurora 생성

Amazon RDS 에서 제공 되는 관계형 데이터베이스중에서 이번 포스팅에서는 Amazon Aurora 생성 진행 하겠습니다.




Amazon Aurora 는 MySQL, PostgreSQL 의 호환되는 관계형 데이터베이스 완전 관리형 서비스 이고 포스팅에서는 Aurora MySQL 으로 진행 하였습니다.

[참고] 포스팅에서 사용한 계정은 프리티어 계정에서 이벤트나 웨비나 참석 에 따른 크레딧이 포함된 계정을 사용하여 테스트를 진행하였습니다. 


1. RDS 선택

메인 대시보드 에서 RDS 를 선택합니다.




2. 데이터베이스 생성

RDS -> 데이터베이스 생성 을 선택합니다.




3. 생성 방식 및 엔진 옵션

포스팅에서는 엔진 유형에서 Amazon Aurora 에디션은 MySQL 호환 Aurora 를 선택 해서 진행 하였습니다.





4. 단일 마스터, 버전, 템플릿 선택

먼저 생성 시점에 복제 기능을 통한 단일 마스터 또는 다중 마스터를 선택할 수 있으며, 그 다음 버전을 선택 할 수 있습니다. 포스팅에서는 2.07.2 로 진행하였으며 버전 선택은 예시 입니다.

템플릿에서는 프로덕션과 개발/테스트 를 고를수 있으며 포스팅에서는 프로덕션으로 선택하였습니다.




5. DB 클러스터 식별자, 자격 증명 설정

DB 클러스터 시별자를 입력해야 하며 아래 이미지의 설명과 같이 대소문자 구분없이 소문자로만 저장되게 됩니다. 그리고 마스터 사용자(관리자) 의 아이디 와 패스워드를 지정해야 하며 admin 이라는 계정 대신 다른 계정을 설정해서 사용해도 됩니다.




6. DB 인스턴스 크기, 복제본 선택

DB 인스턴스의 크기(CPU,RAM, Network) 를 정할 수 있으며 선택한 인스턴스의 스펙에 따른 과금이 달라지게 됩니다. 포스팅에서는 버스터블 클래스 중 가장 작은 t3.small 을 선택하여 진행 하였으며 진행시에는 읽기 전용 복제본을 선택하지 않았습니다(별도로 복제본 생성 예정)




7. 연결 설정

연결에 관한 설정 항목 이며 VPC, Public 액세스 여부 등을 설정 할수 있습니다. 포스팅에서는 퍼블릭 엑세스를 선택하지 않았으며, IDC 나 다른 클라우드에서 바로 접속 하는 유형이 필요한 경우 퍼블릭 액세스 를 선택하시면 됩니다. 

그리고 보안 그룹을 선택 하면 되며, 가용 영역(AZ) 를 선택할 수 있습니다 포스팅에서 포트는 기본 3306으로 진행 하였습니다.




8. 추가 구성 및 생성

추가 구성 부분이며 추가 구성 이라고 하지만 몇 가지 중요한 설정 할 내역도 있습니다. 
먼저 초기 데이터베이스 이름 을 설정할 수 있으며 mysql 과 같은 논리 스키마(DB)를 의미 합니다. 지정하지 않으면 Aurora DB 를 생성 후 mysql 과 같은 기본 논리 DB만 생성 하고 그 이외 사용자 데이터베이스를 별도로 생성해서 사용하면 됩니다  

그 다음은 장애 조치 우선 순위 그리고 백업 을 설정할 수 있습니다.

장애 조치 우선 순위는 마스터 인스턴스의 장애시 다수의 읽기 복제본 중에서 기본 인스턴스로 승격 시킬 인스턴스에 대한 우선 순위를 지정하는 옵션 입니다. 우선 순위가 가장 높은 복제본(티어 0으로 시작)을 새로운 기본 인스턴스로 승격시킵니다. 포스팅에서는 현재 읽기 복제본이 없으므로 가장 높은 우선 순위(티어 0)로 설정하고 진행하겠습니다.




암호화 설정이 가능하며, 역추적 기능 과 Enhanced 모니터링 활성화 를 설정 할 수 있습니다.




CloudWatch 로 보낼 로그를 설정 할 수 있으며 유지 관리 기능을 통해서 마이너 버전에 대한 자동 업글레이드 설정, 그리고 이런 작업을 할 유지 관리 기간을 설정할 수 있으며 마지막으로 삭제 방지 옵션을 선택할 수 있습니다. 포스팅에서는 삭제와 생성의 테스트를 반복 진행함으로 옵션을 제외 하였습니다. 운영  환경이라면 옵션 사용을 고려 하는 것이 좋을것 같습니다 해당 옵션은 사용중에 설정에서 변경할 수 있습니다.

설정이 완료 되었다면 하단의 데이터베이스 생성 버튼을 클릭 합니다.




9. 생성 완료

생성이 시작 하고 나면 아래와 같이 처음에 읽기 역활 로 생성이 진행됩니다.




생성이 완료 되면 아래와 같이 "사용 가능" 상태로 확인 되게 됩니다. 위에서 설정 한것 과 같이 클러스터에 1개의 쓰기 기본 인스턴스(마스터) 만 존재 하고 설정한 AZ , 인스턴스 스펙 를 확인 할 수 있으며 다중 AZ 를 선택하지 않았기 때문에 다중 AZ 아니요 로 설정되어 있는 것을 확인 할 수 있습니다.





2. 보안 그룹 설정

위에서 RDS 생성시 퍼플릭 엑세스 :아니요 로 선택하여 생성하였기 때문에 중간 EC2 인스턴스를 배스천 호스트로 사용하여 접속 하도록 하겠습니다.

[참고] bastion host(배스천 호스트) 는 외부망과 내부망이 분리된 환경에서 중간 역활을 하는 서버나 시스템을 의미하며 게이트웨이 역활 또는 방화벽 역활 등을 수행 합니다.


1. 엔드포인트 확인 및 보안 그룹 설정

RDS 를 선택 후 하단에서 연결&보안 탭을 선택 합니다 해당 탭에서 먼저 접속을 위한 엔드포인트 정보를 확인 합니다. 엔드포인트 정보가 접속 가능 주소 입니다. 그 다음 VPC 보안 그룹을 선택 합니다.




2. 인바운드 규칙

보안 그룹에서 -> 인바운드 규칙 탭 -> 인바운드 규칙 편집 을 선택 합니다.




3. 규칙 추가

아래와 같이 TCP 3306 를 선택 하고 접속지는 사용자 정의 -> 보안 그룹 을 선택 합니다 보안 그룹은 현재 사용중인 보안 그룹을 선택 하면 됩니다(EC2 와 같은 보안 그룹)

이렇게 설정하면 같은 보안 그룹 내 서버(EC2 나 라이트세일 등) 에서 생성한 MySQL RDS 로의 접속이 가능 합니다(직접 외부 접속은 불가)




4. 규칙 저장

설정이 완료 되었다면 하단의 규칙 저장을 선택 합니다.



여기 까지 완료 되었다면 배스천 호스트에서 접속이 가능한 상태로 설정이 된 것 입니다.



3. Aurora 접속

Aurora DB 생성시 포스팅에서는 퍼블릭 접속 불가 형태로 생성하였기 때문에 배스천 호스트를 통해 사용할 것입니다.


1. 배스천 호스트를 통한 접속

1-1 MySQL 클라이언트 설치

배스천 호스트에서 접속을 RDS 로 접속하기 위해서는 배스천 호스트에 MySQL 클라이언트의 설치가 필요 합니다. 각 배포판 별로 설치는 아래와 같습니다.

# 우분투
user# wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
user# sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb
user# sudo apt update
user# sudo apt -y install mysql-shell mysql-community-client rsync iputils-ping vim net-tools


# RHEL/CentOS7 기준
user# sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
user# sudo yum install -y mysql-community-client mysql-shell



1-2 Endpoint 확인

RDS 정보 하단에 연결&보안 탭에서 접속 주소인 엔드포인트 와 포트를 확인 합니다.




1-3 접속

설치한 mysql 이나 mysqlsh 툴로 아래와 같이 접속을 시도 합니다.

• MySQL Client

User$ mysql -u admin -p -h myaurora-instance-1.xxxxxxx.rds.amazonaws.com
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.003 sec)

MySQL [(none)]> 



• MySQL-Shell

root@aws1:~# mysqlsh -u admin -p -h myaurora-instance-1.xxxxxxxxx.rds.amazonaws.com
Please provide the password for 'admin@myaurora-instance-1.xxxxxxxxx.rds.amazonaws.com': *************
MySQL Shell 8.0.24

Copyright (c) 2016, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'admin@myaurora-instance-1.xxxxxxxxx.rds.amazonaws.com'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 20
Server version: 5.7.12 MySQL Community Server (GPL)
No default schema selected; type \use <schema> to set one.
 MySQL  myaurora-instance-1.xxxxxxxxx.rds.amazonaws.com:3306 ssl  JS > \sql
Switching to SQL mode... Commands end with ;
 MySQL  myaurora-instance-1.xxxxxxxxx.rds.amazonaws.com:3306 ssl  SQL > 




2. Workbench 를 통한 접속

2-1 SSH 키 교환

MySQL GUI 툴인 Workbench 를 사용하여 Aurora 접속이 가능하며 중간 서버인 배스천 호스트를 이용해서 접속하는 방식을 사용 합니다. 배스천 호스트를 이용해서 접속해야 함으로 배스천 호스트의 개인키를 소지하거나 PC의 SSH 공개키를 배스천 호스트에 입력하는 둘 중 하나의 방식으로 배스천 호스트에 연결이 가능하도록 사전에 설정이 되어있어야 합니다.


2-2 Workbench 접속 설정

Workbench 를 실행 후 접속 설정에서 아래와 같이 입력을 합니다.

1. Connection Method 는 Standard TCP/IP over SSH 를 선택
2. SSH Hostname : 배스천 호스트의 IP와 SSH 포트인 :22 를 입력
3. SSH Key File : 배스천 호스트에 접속이 가능한 개인키 선택
4. MySQL Hostname : RDS 의 Endpoint 주소를 입력
5. User ID 와 패스워드 입력




2-3 Test Connection

입력한 정보가 모두 정상이라면 아래와 같이 접속 성공 메세지를 확인 할 수 있습니다.



여기 까지 Aurora 기본 생성 및 접속 방법에 대해서 확인해보았습니다. 다음 포스팅에서는 파라미터 그룹 및 읽기 복제본 생성(복제) 등을 다루도록 하겠습니다.



이어지는 다음 글





연관된 다른 글

 

 

 

답글 남기기