AWS RDS – MySQL – Amazon 아마존 RDS (2)

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


해당 포스팅은 아래 이전 포스팅에서 이어지는 연재 포스팅 입니다.



1. 파라미터 그룹

이전 포스팅에서 생성한 MySQL RDS 인스턴스의 파라미터 변경을 진행하도록 하겠습니다. 파라미터 그룹을 생성 후 적용시 한번의 재기동이 필요함으로 초기에 적용하는 것이 좋습니다.


1-1 파라미터 그룹 생성

파라미터 그룹 -> 파라미터 그룹 생성 을 선택 합니다.




1-2 그룹 생성

그룹 이름 과 설명을 입력 후 하단의 생성을 선택 합니다. 파라미터명은 포스팅에서의 예시 입니다.




정상적으로 생성 되었다면 아래와 같이 새로 생성된 파라미터 그룹이 확인 됩니다.




1-3 인스턴스 수정

데이터베이스 -> RDS 인스턴스를 선택 -> 수정 을 선택합니다.




1-4 파라미터 그룹 선택

추가 구성 -> DB 파라미터 그룹 에서 위에서 생성한 파라미터 그룹을 선택 후 하단의 계속 을 선택 합니다.




1-5 적용

수정사항에 대한 반영 시점을 선택 해야 합니다. 다음 유지 관리 때 적용 할지, 즉시 적용 할지 선택할  수 있으며 포스팅에서는 즉시 적용으로 적용 하였습니다.




DB 인스턴스 수정 을 하게 되면 수분 간 아래 처럼 상태가 수정 중으로 확인 됩니다.




인스턴스의 상태가 사용 가능 으로 확인 된다면 구성 탭에서 파라미터 그룹 을 확인 시 "재시작 보류 중" 으로 확인된다면 인스턴스 재시작을 진행하면 됩니다.




1-6 인스턴스 재부팅

인스턴스 선택 -> 작업 -> 재부팅 메뉴를 선택해 RDS 인스턴스 재시작을 합니다. 재시작 중에는 당현히 기존 세션의 접속은 끊기게 되어 다시 재 접속이 필요 합니다.




확인 을 선택해 재부팅을 진행 합니다.





1-7 파리미터 수정 진행

인스턴스 재부팅 후 구성 탭의 파라미터 그룹을 확인 하면 아래와 같이 상태가 동기화 로 표기되며 적용이 된 상태로 확인 가능하며, 파라미터를 변경 하기 위해서 그룹을 선택(클릭) 합니다.





1-8 파라미터 편집

포스팅에서는 예시로 max_connections 파라미터를 변경 하도록 하겠습니다 파라미터 검색 후 파라미터 편집 을 선택 합니다.




원하는 값을 지정 후 "변경 사항 저정" 을 클릭하여 저장을 완료 합니다. max_connections 파라미터는 적용 유형이 dynamic 임으로 재기동 없이 바로 반영 됩니다.




새로 접속하면 바로 반영되어있는것을 확이 할 수 있습니다.

mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 66    |
+-----------------+-------+
1 row in set (0.01 sec)

mysql> exit
Bye
User$ mysql -u admin -p -h rds1.master.rds.amazonaws.com
Enter password:
<... 중략 ...>

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

mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
1 row in set (0.00 sec)



처음 생성 또는 기본 생성 시 지정되어 있는 Default 파라미터 에서는 수정이 불가능 함으로 별도로 생성 을 진행하여 적용한 것입니다(위의 단계에서)





2. 읽기 전용 복제본

Amazon RDS 의 MySQL 엔진의 기본 복제 기능을 사용하여 원본 DB 인스턴스의 읽기 전용 복제본이라고 하는 특수한 유형의 DB 인스턴스를 생성 할 수 있습니다. 기본 DB 인스턴스에 적용된 변경 사항에 대해서 읽기 전용 복제본에는 비동기식으로 복제가 수행됩니다. 애플리케이션에서 읽기 쿼리를 읽기 전용 복제본 인스턴스를 활용하여 기본 DB 인스턴스의 로드(부하)를 줄일 수 있습니다.



[AWS Read Replica]


읽기 전용 복제본을 생성하면 먼저 기존 DB 인스턴스를 원본으로 지정합니다. 그러면 Amazon RDS가 원본 인스턴스의 스냅샷을 생성한 후 이 스냅샷에서 읽기 전용 인스턴스를 생성합니다.



3. 읽기 복제본 생성

읽기 복제본을 생성 하기 위해서는 아래와 같은 절차로 진행을 하게 됩니다.


3-1 읽기 복제본 생성 선택

RDS -> 데이터베이스 -> 복제할 (Source) RDS 선택 -> 작업 -> 읽기 복제본 생성 을 선택 합니다.




3-2 읽기 복제본 이름 지정




3-3 인스턴스 크기 스토리지 유형

DB 인스턴스 의 크기(종류) 와 스토리지 유형 과 설정을 합니다 포스팅에서는 프리티어 등급의  db.t2.micro 로 선택 하였습니다.




3-4 가용영역 선택 및 네트워크 선택


가용 영역(다중 AZ) 과 네트워크 및 퍼브릭 엑세스 가능 여부를 선택 합니다.




3-5 데이터베이스 인증

포스팅에서는 암호 인증 을 선택하였습니다.




3-6 추가 구성 및 생성

추가 구성 설정을 완료 후 하단의 "Create read replica" 를 클릭 합니다




3-7 생성 과정

생성을 시작하면 원본(Source,Master) 는 수정중 으로 나오게 되며 Read Replica 는 생성중으로 처음에는 표기 됩니다 원본 인스턴스의 스냅샷을 생성한 후 이 스냅샷을 통해서 읽기 복제본을 생성하기 때문에 이 진행과정에서 원본 인스턴스에 수정중 으로 표기 됩니다




그 다음 과정으로 진행되면 원본 인스턴스는 사용 가능 으로 표기 되고 읽기 복제본은  수정 중으로 표기 됩니다




생성이 완료 되면 생성시 선택한 설정에 따라 다른 AZ 에 생성 되며 상태는 사용 가능으로 확인 됩니다. 또한 역할에서 Master 는 기본 으로 표시되며, Replica는 복제본 이라고 표현 됩니다.




생성이 완료 된 후 읽기 복제본(Read Replica) 에도 접속을 위한 엔드포인트 주소가 확인 되며 해당 주소를 통해 접속 가능 합니다. 




접속 후 파라미터를 확인 해보면 아래와 같이 read_only=ON 상태 인것도 확인 할 수 있습니다.

User$ mysqlsh -u admin -p -h rds2.replication_node.rds.amazonaws.com
Please provide the password for 'admin@rds2.replication_node.rds.amazonaws.com': *************
MySQL Shell 8.0.23

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@rds2.replication_node.rds.amazonaws.com'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 16
Server version: 8.0.23 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  rds2.replication_node.rds.amazonaws.com:3306 ssl  JS > \sql
Switching to SQL mode... Commands end with ;
 MySQL  rds2.replication_node.rds.amazonaws.com:3306 ssl  SQL > show variables like '%read_only%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_read_only      | OFF   |
| read_only             | ON    |
| super_read_only       | OFF   |
| transaction_read_only | OFF   |
| tx_read_only          | OFF   |
+-----------------------+-------+
5 rows in set (0.0026 sec)
 MySQL  rds2.replication_node.rds.amazonaws.com:3306 ssl  SQL >




4. 승격 

복제된 Replica 인스턴스를 기본 인스턴스(Source/Master) 로 분리-> 변경 할 수 있으며 승격 기능을 이용하게 됩니다

Replica Instance 를 Master 로 승격 시키면서 Master <-> Replica 의 Switch 형태가 아닌 Master 의 읽기 복제본에서 별도의 쓰기 가능한 Master(Standalone) 인스턴스로의 변경을 의미 합니다. 그러므로 읽기 복제본 인스턴스에 쓰기 가능한 Master 형태의 인스턴스로 사용하기 위해서 승격을 이용할 수 있습니다.


4-1 승격 메뉴 실행

RDS -> 데이터베이스 -> 인스턴스 선택 -> 메뉴 작업 -> 승격 을 선택 합니다.




4-2 기본 설정

기본 설정 을 진 행 합니다. 완료 되었다면 하단의 계속 버튼을 선택 합니다.




4-3 실행

마지막으로 확인이 모두 되었다면 "읽기 전용 복제본 승력" 을 선택 하여 진행을 완료 합니다




4-4 변경

승격을 실행하면 아래와 같이 인스턴스 상태는 수분 간 수정 중 으로 표시 되면서 내부적으로 작업이 진행 됩니다.




시간이 조금 지나면 재부팅 중으로 확인 됩니다.




완료가 되면 상태는 사용 가능 으로 확인 되며, 역할도 기본/복제본 에서 인스턴스/인스턴스 로 변경 된 것을 확인 할 수 있습니다.




다음 포스팅에서는 Multi-AZ 와 업그레이드 에 대해서 확인 해보도록 하겠습니다.



다음 이어지는 글



연관된 다른 글

 

 

 

 

 

 

답글 남기기