CloudFormation リソースインポート
比べてわかるIaCの選びかた本を買って積読になっていたので読書(その2)
1.DeletionPolicy
DeletionPolicyのRetain(保持)を使ってみました。Retainの動きとしては、スタックでEC2を作成する時にDeletionPolicyを付けておくと、そのスタックを削除しても、EC2はスキップされて(削除されず)、スタックだけが削除される。
上記の機能を使って以下のことやってみた。EC2にDeletionPolicyを付けてスタックを作成し、その後にスタックを削除。既存リソース(EC2)を使って別のスタックへインポートするとともに Elastic IPアドレスをEC2に割り当てする。
①EC2にDeletionPolicyを付けてスタックを作成
②項番①で作成したスタックを削除
③「既存のリソースを使用(リソースをインポート)」を使用して、別のスタックにインポートするとともに Elastic IPアドレスを割り当て
2.ハマった点
別のスタックにインポートする時に、Elastic IPアドレスを割り当てにハマってしまった。ググっても「Type:AWS :: EC2 :: EIPAssociation」と出てくる。CloudFormation上ではサポートされてないと出てくる。
公式サイトを見ると、インポートをサポートする AWS リソース一覧があったので解決ができた。以下はそのコード。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html
AWSTemplateFormatVersion: '2010-09-09'
Mappings:
RegionMap:
ap-northeast-1:
hvm: "ami-0620ef8a9087d83df"
Resources:
Ec2Instance:
Type: "AWS::EC2::Instance"
DeletionPolicy : Retain
Properties:
ImageId: !FindInMap [RegionMap, !Ref 'AWS::Region', hvm]
InstanceType: t2.micro
IPAssoc:
Type: "AWS::EC2::EIP"
DeletionPolicy : Retain
Properties:
InstanceId: !Ref Ec2Instance
この記事が気に入ったらサポートをしてみませんか?