AWS CloudFormation을 사용하여 RDS DB 인스턴스를 생성할 때 발생하는 "DBInstance xxxxxx failed to stabilize(DBInstance xxxxxx 안정화 실패)" 오류는 어떻게 해결합니까?

최종 업데이트 날짜: 2019년 5월 31일

AWS CloudFormation을 사용하여 AWS::RDS::DBInstance 리소스를 생성하려고 하면 "DBInstance xxxxxx failed to stabilize(DBInstance xxxxxx 안정화 실패)" 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS CloudFormation을 사용하여 기존 RDS DB 스냅샷에서 Amazon Relational Database Service(Amazon RDS) DB 인스턴스(AWS::RDS::DBInstance)를 생성하면 다음과 같은 이유로 오류가 발생할 수 있습니다.

  • DB 스냅샷의 스토리지 유형이 DB 인스턴스의 스토리지 유형과 일치하지 않습니다.
  • DB 스냅샷에 유효하지 않은 객체가 포함되어 있습니다.

​해결 방법

DB 스냅샷과 DB 인스턴스의 스토리지 유형이 일치하도록 설정

1.    Amazon RDS 콘솔을 사용하거나 AWS CLI(AWS 명령줄 인터페이스)에서 describe-db-snapshots 명령을 사용하여 DB 스냅샷의 스토리지 유형을 확인합니다.

다음 예제를 참조하십시오.

aws rds describe-db-snapshots --db-snapshot-identifier MyRDSSnapShot --region us-east-1
{
    "DBSnapshots": [
        {
            .......
            "AllocatedStorage": 20, 
            "Status": "available", 
            "PercentProgress": 100, 
            "DBSnapshotArn": "arn:aws:rds:us-east-1:1234567890:snapshot:MyRDSSnapShot", 
            "EngineVersion": "12.1.0.2.v7", 
            "ProcessorFeatures": [], 
            "OptionGroupName": "default:oracle-ee-12-1", 
            "SnapshotCreateTime": "2019-03-16T17:43:41Z", 
            "AvailabilityZone": "us-east-1f", 
            "StorageType": "gp2",
            .......
        }
    ]
}

참고: AWS CLI 명령에서 확인된 StorageTypegp2가 Amazon RDS 콘솔의 General Purpose (SSD)(범용(SSD)) 값에 매핑됩니다.

2.    AWS CloudFormation JSON 또는 YAML 템플릿의 AWS::RDS::DBInstance 리소스 정의에서 StorageType 값을 gp2로 설정합니다. 다음 예제를 참조하십시오.

JSON:

{
    "MySampleDB": {
        "Type": "AWS::RDS::DBInstance",
        "Properties": {
            "DBInstanceClass": "db.t2.small",
            "StorageType": "gp2",
            "Engine": "postgres",
            "EngineVersion": "9.5.12",
            ........
        }
    }
}

YAML:

MySampleDB:
  Type: 'AWS::RDS::DBInstance'
  Properties:
    DBInstanceClass: db.t2.small
    StorageType: gp2
    Engine: postgres
    EngineVersion: 9.5.12
    ......

참고: DB 인스턴스의 스토리지 유형을 범용 SSD(gp2)로 명시적으로 설정하지 않으면 AWS CloudFormation이 StorageType을 기본적으로 standard로 설정합니다. 이 기본 설정으로 인해 Amazon RDS가 gp2standard로 변환할 수 있습니다. 이 변환을 실행하는 데 시간이 오래 걸려 AWS CloudFormation이 시간 초과됩니다. 그러면 AWS CloudFormation이 DB 인스턴스를 생성하는 중에 “DBInstance xxxxxx failed to stabilize(DBInstance xxxxxx 안정화 실패)” 오류를 반환합니다.

3.    AWS CloudFormation 스택을 시작하여 DB 인스턴스를 생성합니다.

DB 스냅샷에 잘못된 객체가 없는지 확인

DB 인스턴스를 생성하는 데 사용되는 DB 스냅샷에 잘못된 객체가 포함되어 있는 경우 다음 단계를 수행합니다.

1.    기존 데이터베이스에서 잘못된 객체를 찾아 수정합니다.

예를 들어 다음 Oracle 데이터베이스 쿼리는 잘못된 객체의 목록을 반환합니다.

select owner,object_name,object_type,status from dba_objects where status='INVALID'

2.    기존 데이터베이스에서 스냅샷을 다시 생성합니다.

중요: DB 스냅샷은 데이터베이스에서 잘못된 객체를 모두 수정하거나 제거한 후에만 다시 생성하십시오.

3.    AWS CloudFormation 스택을 시작하여 기존 DB 스냅샷을 사용해 DB 인스턴스를 생성합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?