Amazon Aurora에서 블루/그린 배포를 활용한 데이터베이스 업그레이드하는 방법
블루/그린 배포(Blue/Green Deployment)는 데이터베이스 배포 전략 중 하나로 새로운 버전의 애플리케이션이나 데이터베이스를 그린 환경에 배포한 후 검증과 테스트를 거쳐 트래픽을 해당 환경으로 전환하는 방식입니다. 기존 환경은 블루로 유지되며 문제가 발생할 경우 빠르게 롤백할 수 있습니다.
백업(스냅샷)
스냅샷 생성
파라미터 그룹
- DB 인스턴스 파라미터 그룹 : vvlbxgvl2pdb-aurora-mysql5-7
- DB 클러스터 파라미터 그룹 : vvlbxgvl2pdb-aurora-mysql5-7
binlog_format 파라미터 편집(binlog 활성화)
Amazon Aurora에서 블루/그린 배포 전략을 사용하여 데이터베이스 업그레이드 시 Replication을 통해 데이터 동기화를 설정할 필요가 있습니다. 이를 위해 binlog 활성화 여부를 확인하고 binlog_format 파라미터를 적절히 설정하는 것이 중요합니다.

show variables like '%version';+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| aurora_version   | 2.11.4                |
| innodb_version   | 5.7.12                |
| protocol_version | 10                    |
| tls_version      | TLSv1,TLSv1.1,TLSv1.2 |
| version          | 5.7.12                |
+------------------+-----------------------+
5 rows in set (0.00 sec)show variables like 'binlog_format';+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.00 sec)| 블루/그린 배포 미지원 | 블루/그린 배포 지원 | 
| MySQL 5.7.12 | MySQL 5.7.44 | 
| Aurora 2.11.4 | Aurora 2.12.4 | 
|  |  | 
Amazon RDS 엔진 버전

Aurora(MySQL 5.7)에서 Aurora(MySQL 8.0)으로 업데이트
Blue/Green Deployments
데이터베이스 목록

1. 블루/그린 배포
블루/그린 배포 생성


블루/그린 배포 구성 : bg-deployment-1

검토 및 확인

데이터베이스 목록 확인(그린 생성 중)

데이터베이스 목록 확인(그린)

2. 그린 환경(Aurora 클러스터) 설정 변경
인스턴스 클래스 변경
블루 연결 및 보안
show variables like '%version';+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| aurora_version   | 2.11.4                |
| innodb_version   | 5.7.12                |
| protocol_version | 10                    |
| tls_version      | TLSv1,TLSv1.1,TLSv1.2 |
| version          | 5.7.12                |
+------------------+-----------------------+show master status\G*************************** 1. row ***************************
             File: mysql-bin-changelog.000003
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)그린 연결 및 보안
show variables like '%version';+--------------------------+-----------------+
| Variable_name            | Value           |
+--------------------------+-----------------+
| admin_tls_version        | TLSv1.2,TLSv1.3 |
| aurora_version           | 3.08.0          |
| immediate_server_version | 999999          |
| innodb_version           | 8.0.39          |
| original_server_version  | 999999          |
| protocol_version         | 10              |
| tls_version              | TLSv1.2,TLSv1.3 |
| version                  | 8.0.39          |
+--------------------------+-----------------+show slave status\G*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 172.23.15.0
                  Master_User: rdsrepladmin
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin-changelog.000003
          Read_Master_Log_Pos: 154
               Relay_Log_File: relaylog.000012
                Relay_Log_Pos: 279
        Relay_Master_Log_File: mysql-bin-changelog.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
...
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
...
1 row in set, 1 warning (0.00 sec)3. 블루/그린 배포 전환(Switch Over)



4. 기존 블루 환경 삭제
인스턴스 삭제

클러스터 삭제

블루/그린 배포 삭제

데이터베이스 목록

참고URL
- AWS Documentation : 데이터베이스 업데이트에 Amazon Aurora 블루/그린 배포 사용
- AWS re: Invent - Amazon RDS Blue/Green Deployments, Optimized Writes & Optimized Reads
'퍼블릭 클라우드' 카테고리의 다른 글
| Amazon RDS에서 스냅샷 복원을 하는 방법 (0) | 2025.01.06 | 
|---|---|
| Amazon Aurora에서 binlog를 활성화하는 방법 (0) | 2025.01.06 | 
| Amazon Route 53과 AWS Global Accelerator의 속도 및 비용 비교 (0) | 2025.01.02 | 
| 우분투에서 AWS CDK를 설치하고 간단한 샘플을 실행하는 방법 (0) | 2024.12.02 | 
| AWS Lambda에서 Layer를 사용하여 Node.js로 샘플 코드를 구현하는 방법 (0) | 2024.11.27 | 

 
                  
                 
                  
                 
                  
                