CloudFormation 管理外の既存リソースを管理下にする方法を教えてください
困っていた内容
CloudFormation で AWS リソースを管理しています。
CloudFormation を使わず作成したリソースがあり、再作成せず、CloudFormation の管理下にしたいです。
既存の CloudFormation スタックに手動で作成したリソースを追加する方法を教えてください。
どう対応すればいいの?
CloudFormation のリソースインポート機能を使用してください。
スタックへの既存リソースのインポート - AWS CloudFormation
各 AWS サービスのマネジメントコンソールから作成したリソースなど CloudFormation 外で作成したリソースを、CloudFormation で管理したい場合、リソースインポート機能を使用します。
リソースインポート機能では、CloudFormation 外の既存リソースを、新規のスタックとしてインポート、もしくは既存スタックへの追加リソースとしてインポートできます。
なお、インポートするリソースの CloudFormation 記述を含むテンプレートは用意する必要があります。
やってみた
CloudFormation 外で作成した次の SSM パラメータストアを CloudFormation スタックにインポートします。
なお、SSM パラメータストア(AWS::SSM::Parameter
)は、2025年3月時点でインポートには対応していますが、IaC ジェネレーターには非対応です。
また、CloudFormation テンプレートとして次を使用します。
HatoMyParameter
は元々ある記載となり、今回のインポート用としてHatoImportParameter
を追加しています。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
HatoMyParameter:
Type: AWS::SSM::Parameter
Properties:
Name: /cloudformation/hato-create-test
Type: String
Value: hato-test-value
Description: CloudFormation Create Resource
# ここから追加した内容
HatoImportParameter:
Type: AWS::SSM::Parameter
DeletionPolicy: Delete
Properties:
Name: /cloudformation/hato-import-test
Type: String
Value: hato-test-value
Description: CloudFormation Import Test Resource
AWS CloudFormation コンソールを開き、インポートするスタックを選択します。
「スタックアクション」->「スタックへのリソースのインポート」の順に選択します。
「次へ」をクリックします。
インポートするリソースを追加した CloudFormation テンプレートをアップロードして「次へ」をクリックします。
インポートするリソースの識別子を入力して「次へ」をクリックします。
今回はパラメータストアの名前を入力しています。
「次へ」をクリックします。
「リソースをインポート」をクリックします。
インポートが完了するまで、しばらく待ちます。
IMPORT_COMPLETE
となり完了すると、スタックにインポートされたリソースが追加されます。
また、インポートしたリソースに所定のタグも付与されました。