CDKでRDSのSnapshotからレストアする際に気をつけたいポイントがあったので、備忘録として🙂
CloudformationからのレストアはDBSnapshotIdentifier
の値にスナップショットのIDを指定するとの事。
CDKではL2で書いていたものをL1でキャストしてaddPropertyOverride
メソッドを使いました。
const cfnInstance = rdsInstance.node.defaultChild as rds.CfnDBInstance;
cfnInstance.addPropertyOverride("DBSnapshotIdentifier", "<SnapShotArn>");
注意点として、以下がしっかり書いてある。
プロパティを使用して DB インスタンスを復元した後、 DB インスタンスに対する今後の更新に対してDBSnapshotIdentifier 同じプロパティを指定する必要があります。DBSnapshotIdentifier更新にこのプロパティを指定すると、DB インスタンスは DB スナップショットから再度復元されず、データベース内のデータは変更されません。ただし、プロパティを指定しない場合はDBSnapshotIdentifier、空の DB インスタンスが作成され、元の DB インスタンスは削除されます。以前のスナップショット復元プロパティとは異なるプロパティを指定した場合、新しい DB インスタンスは指定されたプロパティから復元されます。 DBSnapshotIdentifierプロパティが削除され、元の DB インスタンスが削除されます。
これはしっかり認識しておかないと事故りそう😇
以上~