가동 중지, 데이터베이스 동기화 문제 또는 데이터 손실 없이 Amazon RDS 인스턴스를 Elastic Beanstalk 환경에서 분리하려면 어떻게 해야 하나요?

5분 분량
0

AWS Elastic Beanstalk 환경에 연결된 Amazon Relational Database Service(RDS) DB 인스턴스가 있습니다. 인스턴스와 환경 간의 종속성을 제거할 때 가동 중지, 데이터베이스 동기화 문제, 데이터 손실을 피하고 싶습니다.

간략한 설명

다음 절차는 데이터베이스를 Elastic Beanstalk 환경에서 분리하며 환경 상태에 영향을 주지 않습니다.

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

중요: 모범 사례는 개발 및 테스트 환경에서만 RDS DB 인스턴스를 Elastic Beanstalk 환경에 연결하는 것입니다. 프로덕션 환경에서는 데이터베이스 인스턴스의 수명 주기가 애플리케이션 환경의 수명 주기와 연결됩니다. 따라서 RDS DB 인스턴스를 프로덕션 환경의 Elastic Beanstalk 환경에 연결하지 않는 것이 좋습니다. 환경을 종료하면 해당 환경에서 DB 인스턴스가 삭제되므로 데이터가 손실됩니다. 자세한 내용은 Amazon RDS에서 Elastic Beanstalk 사용을 참조하세요.

해결 방법

인스턴스의 DB 스냅샷 생성

다음 단계에 따라 인스턴스의 DB 스냅샷을 생성하세요.

  1. Elastic Beanstalk 콘솔을 엽니다.
  2. Elastic Beanstalk 환경을 선택합니다.
  3. 환경 ID를 복사합니다.
  4. Amazon RDS 콘솔을 엽니다.
  5. 탐색 창에서 데이터베이스를 선택합니다.
  6. 검색 필드에 환경 ID를 입력한 다음 데이터베이스를 선택합니다.
  7. DB 스냅샷을 생성합니다.

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

다음 단계에 따라 DB 인스턴스가 삭제되지 않도록 보호하세요.

  1. Amazon RDS 콘솔을 엽니다.
  2. 탐색 창에서 데이터베이스를 선택합니다.
  3. 데이터베이스를 선택한 다음 수정을 선택합니다.
  4. 삭제 보호에서 삭제 보호 활성화를 선택한 다음 계속을 선택합니다.
  5. 일정 수정에서 즉시 적용을 선택한 다음 클러스터 수정을 선택합니다.
  6. Amazon RDS 콘솔을 새로 고친 다음 삭제 보호가 켜져 있는지 확인합니다.

새 Elastic Beanstalk 환경 생성

참고: 새 Elastic Beanstalk 환경에는 DB 인스턴스가 포함될 수 없습니다.

다음 단계에 따라 새 Elastic Beanstalk 환경을 생성하세요.

  1. 새 Elastic Beanstalk 환경을 생성합니다.
  2. 새 Elastic Beanstalk 환경을 이전 Elastic Beanstalk 환경의 기존 DB 인스턴스에 연결합니다. 자세한 내용은 기본 Virtual Private Cloud(VPC)에서 외부 Amazon RDS 인스턴스 시작 및 연결을 참조하세요.
  3. 새 환경이 기존 DB 인스턴스에 연결되고 애플리케이션이 제대로 작동하는지 확인합니다.

블루/그린 배포를 수행하여 가동 중지 방지

참고: 블루/그린 배포 또는 CNAME 스왑을 나중에 수행하려면 두 Elastic Beanstalk 환경이 모두 동일한 애플리케이션에 속해야 합니다.

다음 단계에 따라 블루/그린 배포를 수행하세요.

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

중요: DNS 변경 사항이 전파되고 이전 DNS 레코드가 만료된 후에 기존 Elastic Beanstalk 환경을 종료해야 합니다. DNS 레코드가 만료되는 데 최대 48시간이 걸릴 수 있습니다. DNS 서버는 DNS 레코드에 설정한 TTL(Time to Live)을 기반으로 캐시에서 오래된 레코드를 지우지 않습니다.

이전 환경의 데이터베이스 삭제 정책 업데이트

다음 단계에 따라 이전 환경의 데이터베이스 삭제 정책을 업데이트하세요.

  1. 이전 환경의 Elastic Beanstalk 콘솔을 엽니다.
  2. 탐색 창에서 구성을 선택합니다.
  3. 네트워킹 및 데이터베이스에서 편집을 선택합니다.
  4. 데이터베이스 설정에서 데이터베이스 삭제 정책유지로 설정합니다.
  5. 적용을 선택합니다. 구성 변경 사항을 저장하는 데 몇 분 정도 걸릴 수 있습니다.

중요: 데이터베이스 삭제 정책 변경 사항을 이전 환경에 적용한 후에 다음 단계로 진행해야 합니다.

RDS 인스턴스를 이전 환경에서 분리

다음 단계에 따라 RDS 인스턴스를 이전 환경에서 분리하세요.

  1. 이전 환경의 Elastic Beanstalk 콘솔을 엽니다.
  2. 탐색 창에서 구성을 선택합니다.
  3. 네트워킹 및 데이터베이스 구성에서 편집을 선택합니다.
  4. 데이터베이스 설정에서 데이터베이스 삭제 정책유지로 설정되어 있는지 확인합니다.
  5. 데이터베이스 연결 섹션에서 데이터베이스 분리를 선택합니다.
  6. 적용을 선택합니다.

참고: 데이터베이스가 분리되어도 데이터베이스는 계속 작동합니다. 데이터베이스를 분리하는 데 보통 5분 미만이 소요됩니다.

이전 환경 종료

새 환경의 기능을 검증한 후에 이전 Elastic Beanstalk 환경을 종료하세요.

환경을 종료하면 Elastic Beanstalk에서 생성한 DB 인스턴스와 RDS 보안 그룹을 제외한 모든 Elastic Beanstalk 리소스가 삭제됩니다. 로드 밸런싱된 Elastic Beanstalk 환경의 일부로 RDS 인스턴스를 생성하면 Elastic Beanstalk가 Elastic Load Balancing(ELB) 보안 그룹을 생성합니다. Elastic Beanstalk는 해당 환경의 EC2 인스턴스에 연결할 Amazon Elastic Compute Cloud(Amazon EC2) 보안 그룹도 생성합니다. 또한 Elastic Beanstalk는 RDS 인스턴스에 연결할 RDS 보안 그룹을 생성합니다. Elastic Beanstalk는 EC2 보안 그룹의 포트 3306에서 인바운드 트래픽을 허용하기 위해 RDS 보안 그룹에 보안 그룹 인바운드 규칙을 추가합니다.

데이터베이스를 분리할 때 Elastic Beanstalk는 보안 그룹 인바운드 규칙을 제거하지 않습니다. 이 보안 그룹 인바운드 규칙은 Elastic Beanstalk가 생성한 RDS 보안 그룹의 EC2 보안 그룹을 참조합니다. 환경을 종료할 때 Elastic Beanstalk가 환경을 종료할 수 없습니다. 분리 RDS 보안 그룹이 여전히 EC2 보안 그룹을 참조하기 때문입니다.

다음 단계에 따라 Elastic Beanstalk 환경을 종료하세요.

  1. 이전 환경의 Elastic Beanstalk 콘솔을 엽니다.
  2. 탐색 창에서 구성을 선택합니다.
  3. 인스턴스 트래픽 및 조정에서 EC2 보안 그룹에 속한 EC2 보안 그룹 이름을 기록해 둡니다.
  4. Amazon EC2 콘솔을 엽니다.
  5. 탐색 창에서 보안 그룹을 선택합니다.
  6. 보안 그룹 페이지에서 EC2 보안 그룹 이름을 입력합니다.
  7. 보안 그룹 ID를 기록해 둡니다. 형식은 "sg-xxxxxxxx"와 비슷합니다.
  8. Amazon RDS 콘솔을 엽니다.
  9. 탐색 창에서 데이터베이스를 선택한 다음 DB 인스턴스 이름을 선택합니다.
  10. 연결 및 보안에서 서브넷, 보안 그룹, 엔드포인트를 기록해 둡니다. 그런 다음 보안에서 보안 그룹 이름을 선택합니다.
  11. EC2 콘솔에서 보안 그룹 페이지가 열린 후 보안 그룹을 선택합니다.
  12. 인바운드 규칙의 경우 인바운드 규칙 편집을 선택합니다.
  13. 보안 그룹 규칙을 식별합니다.
  14. 삭제를 선택한 다음 규칙 저장을 선택합니다.
  15. 이전 환경의 Elastic Beanstalk 콘솔을 엽니다.
  16. 작업을 선택한 다음 환경 종료를 선택합니다. 데이터베이스를 분리할 때 Elastic Beanstalk는 보안 그룹 인바운드 규칙을 제거하지 않습니다. 보안 그룹 인바운드 규칙은 Elastic Beanstalk가 생성한 RDS 보안 그룹의 EC2 보안 그룹을 참조합니다.
AWS 공식
AWS 공식업데이트됨 5달 전
댓글 없음