기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Neptune 블루/그린 솔루션을 사용하여 블루-그린 업데이트 수행
Amazon Neptune 엔진 업그레이드에는 업데이트를 설치하고 검증하는 동안 데이터베이스를 사용할 수 없으므로 애플리케이션 다운타임이 필요할 수 있습니다. 수동으로 시작하든 자동으로 시작하든 관계없이 모두 해당합니다.
Neptune은 AWS CloudFormation 스택을 사용하여 실행할 수 있고 이러한 가동 중지 시간을 크게 줄이는 블루/그린 배포 솔루션을 제공합니다. 이를 통해 블루 프로덕션 환경과 동기화되는 그린 스테이징 환경을 만들 수 있습니다. 이제 해당 스테이징 환경을 업데이트하여 마이너 또는 메이저 엔진 버전 업그레이드, 그래프 데이터 모델 변경 또는 운영 체제 업데이트를 수행하고 결과를 테스트할 수 있습니다. 마지막으로 다운타임이 거의 없는 운영 환경으로 빠르게 전환할 수 있습니다.
Neptune 블루/그린 솔루션은 다음 다이어그램에 나와 있는 것처럼 두 단계를 거칩니다.
1단계: 프로덕션 클러스터와 동일한 그린 DB 클러스터 생성
이 솔루션은 고유한 블루/그린 배포 식별자를 사용하고 프로덕션 클러스터와 동일한 클러스터 토폴로지를 사용하여 DB 클러스터를 생성합니다. 즉, 지정한 대상 엔진 버전으로 업그레이드되어 현재(블루) 엔진 버전보다 버전이 높아야 한다는 점을 제외하면 프로덕션(블루) DB 클러스터와 동일한 DB 인스턴스 수와 크기, 파라미터 그룹 및 구성이 동일합니다. 대상에 마이너 엔진 버전과 메이저 엔진 버전을 지정할 수 있습니다. 필요하다면 솔루션은 지정된 대상 엔진 버전에 도달하는 데 필요한 모든 중간 업그레이드를 수행합니다. 이 새 클러스터는 그린 스테이징 환경이 됩니다.
2단계: 지속적인 데이터 동기화 설정
그린 환경이 완전히 준비된 후, 솔루션은 Neptune 스트림을 사용하여 소스(블루) 클러스터와 대상(그린) 클러스터 간에 연속 복제를 설정합니다. 둘 사이의 복제 차이가 0에 도달하면 스테이징 환경을 테스트할 준비가 됩니다. 이때 추가 복제 지연을 방지하려면 블루 클러스터에 쓰기를 일시 중지해야 합니다.
대상 엔진 버전에 애플리케이션에 영향을 미치는 새로운 기능이나 종속성이 있을 수 있습니다. 대상 엔진 릴리스 페이지와 엔진 릴리스 아래의 중간 엔진 릴리스 페이지를 확인하여 현재 엔진 버전 이후 변경된 사항을 확인하세요. 프로덕션 환경으로 승격하기 전에 그린 클러스터에서 통합 테스트를 실행하거나 애플리케이션을 수동으로 확인하는 것이 가장 좋습니다.
그린 클러스터의 변경 사항을 테스트하고 검증한 후에는 애플리케이션의 데이터베이스 엔드포인트를 블루 클러스터에서 그린 클러스터로 전환하기만 하면 됩니다.
전환 후 Neptune 블루/그린 솔루션은 이전의 블루 프로덕션 환경을 삭제하지 않습니다. 필요하다면 추가 검증 및 테스트를 위해 계속 액세스할 수 있습니다. 인스턴스를 삭제하기 전까지는 인스턴스에 표준 청구 요금이 적용됩니다. 블루/그린 솔루션은 정상 가격으로 청구되는 비용인 다른 AWS 서비스도 사용합니다. 솔루션 사용 완료 시 솔루션 삭제에 대한 자세한 내용은 정리 섹션에서 다룹니다.
Neptune 블루/그린 스택 실행을 위한 사전 요구 사항
Neptune 블루/그린 스택 시작 전:
프로덕션(블루) 클러스터에서 Neptune 스트림을 활성화해야 합니다.
블루 클러스터의 모든 인스턴스가 사용 가능한 상태여야 합니다. Neptune 콘솔
에서 또는 describe-db-instances 를 사용하여 인스턴스 상태를 확인할 수 있습니다API. 또한 모든 인스턴스는 DB 클러스터 파라미터 그룹과 동기화되어야 합니다.
Neptune 블루/그린 솔루션에는 블루 클러스터VPC가 위치한 에 DynamoDB VPC 엔드포인트가 필요합니다. Amazon VPC 엔드포인트를 사용하여 DynamoDB 액세스 섹션을 참조하세요.
블루 프로덕션 DB 클러스터의 쓰기 워크로드가 최대한 적은 시간에 솔루션을 실행하도록 선택하세요. 예를 들어, 대량 로드가 발생하거나 다른 이유로 쓰기 작업 수가 많을 가능성이 있다면 솔루션을 실행하지 마세요.