다운타임, 데이터베이스 동기화 문제 또는 데이터 손실 없이 Amazon RDS 인스턴스를 Elastic Beanstalk 환경에서 분리하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 12월 23일

AWS Elastic Beanstalk 환경에 Amazon Relational Database Service(Amazon RDS) DB 인스턴스가 연결되어 있습니다. 다운타임, 데이터베이스 동기화 문제 및 데이터 손실을 방지하면서 인스턴스와 환경 간의 종속성을 제거하고 싶습니다.

간략한 설명

환경 상태에 영향을 미치지 않으면서 Elastic Beanstalk 환경에서 데이터베이스를 분리하려면 다음 단계를 따르세요.

  1. Amazon RDS DB 스냅샷을 생성합니다.
  2. RDS DB 인스턴스가 삭제되지 않도록 보호
  3. 새 Elastic Beanstalk 환경 생성
  4. 블루/그린 배포를 수행합니다.
  5. Beanstalk 환경 A에 대한 데이터베이스 삭제 정책을 업데이트합니다.
  6. RDS 인스턴스를 Beanstalk 환경 A에서 분리합니다.
  7. 이전 Elastic Beanstalk 환경을 종료합니다.

중요: Elastic Beanstalk 환경에 RDS DB 인스턴스를 연결하는 것은 배포 및 테스팅 환경에 적합합니다. 그러나 데이터베이스 인스턴스의 수명주기는 애플리케이션 환경의 수명주기와 연관되기 때문에 프로덕션 환경에는 적합하지 않습니다. 환경을 종료하면 그에 따라 RDS DB 인스턴스가 환경에서 삭제되므로 데이터가 손실됩니다. 자세한 내용은 Amazon RDS에서 Elastic Beanstalk 사용을 참조하세요.

해결 방법

RDS DB 스냅샷 생성

  1. Elastic Beanstalk 콘솔을 엽니다.
  2. RDS DB 인스턴스에서 분리하려는 Elastic Beanstalk 환경을 선택합니다(환경 A).
  3. 탐색 창에서 구성(Configuration)을 선택합니다.
  4. 데이터베이스에서 수정(Modify)을 선택합니다.
  5. 엔드포인트(Endpoint)를 선택합니다.
  6. RDS DB 인스턴스의 RDS DB 스냅샷을 생성합니다.

RDS DB 인스턴스가 삭제되지 않도록 보호

  1. Amazon RDS 콘솔을 엽니다.
  2. 데이터베이스를 선택한 다음 수정(Modify)을 선택합니다.
  3. 삭제 방지에서 삭제 방지 활성화(Enable deletion protection) 옵션을 선택합니다.
  4. 계속(Continue)을 선택합니다.
  5. 수정 사항 예약에서 즉시 적용(Apply immediately)을 선택합니다.
  6. DB 인스턴스 수정(Modify DB Instance)을 선택합니다.
  7. Amazon RDS 콘솔을 새로 고친 다음 삭제 방지 기능이 활성화되는지 확인합니다.

새 Elastic Beanstalk 환경 생성

새 Elastic Beanstalk 환경(환경 B)에는 동일한 Elastic Beanstalk 애플리케이션에 있는 RDS DB 인스턴스가 포함되지 않아야 합니다.

참고: 나중에 블루/그린 배포(또는 CNAME 스왑)를 수행하려면 환경 A와 환경 B가 동일한 애플리케이션의 일부인지 확인하십시오.

  1. 환경 B를 생성합니다.
  2. 환경 B를 환경 A의 기존 RDS DB 인스턴스에 연결합니다.
    참고: 자세한 내용은 기본 VPC에서 외부 Amazon RDS 인스턴스 시작 및 연결을 참조하세요.
  3. 환경 B가 기존 RDS DB 인스턴스에 연결될 수 있고 애플리케이션이 올바르게 작동하는지 확인합니다.

다운타임 방지를 위해 블루/그린 배포 수행

  1. 환경 BElastic Beanstalk 콘솔을 엽니다.
  2. 이전 Elastic Beanstalk 환경과 새로운 Elastic Beanstalk 환경의 URL을 바꿉니다.
    참고: 자세한 내용은 Elastic Beanstalk로 블루/그린 배포를 참조하세요.
  3. 환경 B의 URL이 응답하고 애플리케이션이 제대로 작동하는지 확인합니다.

중요: DNS 변경 사항이 전파되고 이전 DNS 레코드가 만료될 때까지 환경 A를 종료하지 마십시오. DNS 레코드가 만료될 때까지 최대 48시간이 걸릴 수 있습니다. DNS 서버가 DNS 레코드에 설정된 TTL(Time to Live)을 기반으로 해당 캐시에서 이전 레코드를 지우는 것은 아닙니다.

Beanstalk 환경 A에 대한 데이터베이스 삭제 정책을 업데이트합니다.

  1. 환경 AElastic Beanstalk 콘솔을 엽니다.
  2. 탐색 창에서 구성(Configuration)을 선택합니다.
  3. 데이터베이스 구성에서 편집(Edit)을 선택합니다.
  4. 데이터베이스 설정에서 데이터베이스 삭제 정책유지로 설정합니다.
  5. 적용(Apply)을 선택합니다. 구성 변경 사항을 저장하는 데 몇 분 정도 걸립니다.

중요: 데이터베이스 삭제 정책 변경이 Beanstalk 환경 A에 적용될 때까지 다음 단계로 진행하지 마십시오.

RDS 인스턴스를 Beanstalk 환경 A에서 분리합니다.

  1. 환경 AElastic Beanstalk 콘솔을 엽니다.
  2. 탐색 창에서 구성(Configuration)을 선택합니다.
  3. 데이터베이스 구성에서 편집(Edit)을 선택합니다.
  4. 데이터베이스 설정에서 데이터베이스 삭제 정책유지로 설정되어 있는지 확인합니다.
  5. 데이터베이스 연결 섹션으로 이동하여 데이터베이스 분리를 선택합니다.
  6. 적용(Apply)을 선택하여 데이터베이스 분리 작업을 시작합니다.

참고: 이 기간 동안 데이터베이스는 계속 작동하며 데이터베이스를 분리하는 데 보통 5분도 채 걸리지 않습니다.

이전 Elastic Beanstalk 환경 종료

새 환경의 기능이 검증된 후 이전 Elastic Beanstalk 환경(환경 A)을 종료합니다.

환경을 종료하면 Elastic Beanstalk에서 생성한 RDS DB 인스턴스 및 RDS 보안 그룹을 제외한 모든 Elastic Beanstalk 리소스가 삭제됩니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?