내용으로 건너뛰기

Database 인스턴스가 생성된 직후 자동으로 삭제됩니다.

0

Database 인스턴스를 생성하면 생선된 직후 바로 자동으로 삭제가 되고있습니다. CloudTrail을 통해 이벤트 기록을 살펴봤을때는 CreateDBInstance는 정상적으로 조회가 되는데, DeleteDBInstance는 조회가 되지 않고 있습니다.

또한, 아래와 같이, DB instance 생성시 --deletion-protection을 설정하여도 인스턴스가 삭제되고 있습니다. aws rds create-db-instance --deletion-protection 하지만 DB 인스턴스 생성이 완료되었다는 알림을 받았습니다.

마지막으로 아래와 같은 설정값들을 확인하였을때 아무런 설정도 적용되지 않은 것을 확인하였습니다.

  • aws cloudformation list-stacks
  • aws events list-rules

질문됨 9달 전120회 조회

1개 답변
0

이 문제는 CloudFormation을 통해 생성된 RDS 인스턴스가 자동으로 삭제되는 현상으로 보입니다. 가장 가능성 높은 원인은 CloudFormation의 DeletionPolicy 속성과 관련이 있을 수 있습니다.

CloudFormation에서는 기본적으로 스택이 삭제될 때 모든 리소스를 함께 삭제합니다. 그러나 RDS DB 인스턴스의 경우 몇 가지 예외가 있습니다:

  1. AWS::RDS::DBCluster 리소스의 경우 기본 정책은 'Snapshot'입니다.
  2. DBClusterIdentifier 속성을 지정하지 않은 AWS::RDS::DBInstance 리소스의 경우 기본 정책은 'Snapshot'입니다.

또한, RDS 인스턴스를 삭제하기 위해서는 삭제 방지(deletion protection) 기능이 꺼져 있어야 합니다. 콘솔을 통해 생성된 DB 인스턴스는 기본적으로 삭제 방지가 켜져 있습니다. 명령어에 --deletion-protection 플래그를 추가했음에도 인스턴스가 삭제되는 것은 이 설정이 제대로 적용되지 않았거나, 다른 프로세스가 이를 우회하고 있을 가능성이 있습니다.

CloudTrail에서 DeleteDBInstance 이벤트가 보이지 않는다면, 다음과 같은 가능성을 고려해볼 수 있습니다:

  1. CloudFormation을 통해 스택이 롤백되고 있을 수 있습니다. 스택 생성 중 오류가 발생하면 CloudFormation은 자동으로 생성된 리소스를 롤백(삭제)합니다.
  2. 다른 자동화 도구나 스크립트가 DB 인스턴스를 삭제하고 있을 수 있습니다.

해결 방법으로는:

  1. CloudFormation 템플릿을 사용 중이라면, 해당 리소스에 명시적으로 DeletionPolicy: Retain을 추가하여 스택이 삭제되더라도 DB 인스턴스가 유지되도록 설정합니다.
  2. DB 인스턴스 생성 시 삭제 방지 기능이 확실히 활성화되었는지 확인합니다.
  3. CloudFormation 스택의 상태와 이벤트를 확인하여 롤백이 발생하고 있는지 확인합니다.
  4. 더 자세한 로깅을 활성화하여 삭제 이벤트의 원인을 파악합니다.
    Sources
    DeletionPolicy attribute - AWS CloudFormation
    Deleting a DB instance - Amazon Relational Database Service

답변함 9달 전

  • CloudFormation을 사용하지는 않고 있습니다

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.