AWS RDS 블루 그린 배포 FLOW

은경·2024년 5월 8일

[AWS] RDS

목록 보기
3/5

MySQL 버전 업그레이드를 위해 RDS에서 지원하는 블루그린 배포를 이용하기로 결정했고 AWS 에서 가이드한 블루그린 배포 과정을 간략히 정리합니다.

📌 블루 / 그린 배포 생성


  1. 복사할 DB 인스턴스를 지정 : 블루 환경의 기본 DB인스턴스 → 그린 환경으로 복사됨
  2. 블루/그린 배포 생성 시 변경 사항 지정
    1. 엔진 버전을 지정해서 업그레이드
    2. 다른(신규) 파라미터 그룹 지정
    3. RDS 최적화된 쓰기를 지원하는 DB 인스턴스 클래스로 업그레이드 가능 (db.r6g, db.r6id)
    4. 스토리지 구성 업그레이드 : 그린 DB 인스턴스를 이전 스토리지 구성(32비트 파일 시스템)에서 원하는 구성으로 마이그레이션 가능 → 블루/그린 배포의 생성 시간이 길어짐
      • 블루 DB 인스턴스가 프로비저닝된 IOPS SS (io1) 스토리지를 사용하고 그린 환경을 인스턴스 크기가 4xlarge 이상이 되도록 프로비저닝한 경우 스토리지 업그레이드 프로세스가 더 빠름.
      • 범용 SSD(gp2) 스토리지를 사용하는 스토리지 업그레이드는 I/O 크레딧 밸런스를 고갈할 수 있어 업그레이드 시간이 더 오래 걸릴 수 있음.
  3. 블루/그린 배포 생성 시 지연 로드 처리
    • 생성된 그린 DB 인스턴스는 백그라운드에서 데이터를 계속 로드함(지연로딩)
      DB 인스턴스에 읽기 전용 복제본이 있는 경우 복제본도 지연 로딩 발생

      아직 로드되지 않은 데이터에 액세스하는 경우, DB 인스턴스는 Amazon S3에서 요청된 데이터를 즉시 다운로드한 후, 백그라운드에서 데이터의 나머지 로드를 계속 진행합니다. 자세한 내용은 Amazon EBS 스냅샷을 참조하세요.
      빠른 액세스가 필요한 테이블에 대한 지연 로딩의 영향을 완화하기 위해 SELECT *와 같은 전체 테이블 스캔과 관련된 작업을 수행할 수 있습니다. 이 작업을 통해 Amazon RDS는 S3에서 백업된 모든 테이블 데이터를 다운로드할 수 있습니다.
      애플리케이션이 아직 로드되지 않은 데이터에 액세스하려고 하면, 데이터가 로드되는 동안 애플리케이션의 지연 시간이 평소보다 길어질 수 있습니다. 이렇게 지연 로딩 때문에 지연 시간이 길어지면 지연 시간에 민감한 워크로드의 성능이 저하될 수 있습니다.


📌 블루 / 그린 배포 보기


  1. 연결성 및 보안 탭 → 복제 섹션: 블루 ↔ 그린 환경 사이의 논리적 복제/복제 지연의 상태를 보여줌. 복제 상태가 Replicating인 경우 블루/그린 배포가 성공적으로 복제되고 있는 것.

📌 블루 / 그린 배포 전환


💡 **전환 :** 그린 환경을 새로운 프로덕션 환경으로 승격(읽기전용 복제본 포함) 전환 전: 프로덕션 트래픽 → 블루 환경의 DB 인스턴스로 라우팅 전환 후: 프로덕션 트래픽 → 그린 환경의 DB 인스턴스로 라우팅.
  1. 전환 제한 시간 지정 : 30초 ~ 3,600초(1시간), 기본 설정은 300초(5분) → 초과 시 롤백
  2. 전환 가드레일 : 전환 시작 시 RDS에서 전환 준비가 되었는지 검사 실행
    1. 그린 - 복제 상태, 복제 지연, 활성 쓰기 등 검사
    2. 블루 - 장기 실행 활성 쓰기, 장기 실행 DDL문 등이 있는지 검사
  3. 전환 작업 : 가드레일 검사 실행 및 전환 준비 확인
    1. 두 환경 모두 기본 DB 인스턴스에 대한 신규 쓰기 작업 중지
    2. 두 환경 모두 DB 인스턴스에 대한 연결을 끊고 새연결 허용 안함
    3. 그린 ↔ 블루 복제 진행 (동기화)
    4. 두 환경 모두 인스턴스 이름 변경
    - 전환 중 그린의 이름을 블루 DB 와 일치하도록 변경
    - 전환 후 블루의 현재 이름에 -oldn 을 추가하여 이름 변경
    - 블루환경에 대응하는 엔드포인트와 일치하도록 그린 환경의 엔드포인트를 변경
    5. 두 환경 모두 데이터 베이스 연결 허용
    6. 새 프로덕션 환경에서 기본 DB 인스턴스에 대한 쓰기 작업 허용
    전환 이후 이전 프로덕션 기본 DB 인스턴스는 재부팅 전까지 읽기 작업만 허용

📌 블루 / 그린 배포 삭제


  1. 블루/그린 배포는 전환 전이나 후에 삭제 가능
  2. 블루/그린 배포를 삭제해도 블루 환경은 영향을 받지 않음
profile
Python 서버 개발자

0개의 댓글