既存リソースの CloudFormation 管理への取り込み
AWS CloudFormation 管理外の AWS リソースを作成した場合は、resource import
を使用してこの既存のリソースを AWS CloudFormation 管理に取り込むことができます。リソースは、削除してスタックの一部として再作成しなくても、作成された場所に関係なく AWS CloudFormation を使用して管理できます。
インポートオペレーションをサポートする AWS リソースの一覧については、「インポートオペレーションをサポートするリソース」を参照してください。
リソースのインポートの概要
インポートオペレーション中に、既存のリソースをスタックにインポートするか、既存のリソースから新しいスタックを作成する変更セットを作成します。インポート時に以下を指定します。
-
元のスタックリソースとインポートするリソースの両方を含む、スタック全体を記述するテンプレート。インポートする各リソースには、DeletionPolicy 属性が必要です。
-
インポートするリソースの識別子。各ターゲットリソースを識別するために、2 つの値を指定します。
-
識別子のプロパティ。これは、各リソースタイプを識別するために使用できるリソースプロパティです。たとえば、
AWS::S3::Bucket
リソースは、そのBucketName
を使用して識別できます。 -
識別子の値。これは、ターゲットリソースの実際のプロパティ値です。たとえば、
BucketName
プロパティの実際の値はMyS3Bucket
です。
-
リソースのインポートの検証
インポートオペレーション中に、CloudFormation は次の検証を実行します。
-
インポートするリソースが存在します。
-
インポートする各リソースのプロパティと設定値は、リソースタイプスキーマに準拠します。リソースタイプスキーマでは、受け入れられるプロパティ、必須プロパティ、およびサポートされるプロパティ値が定義されます。
-
必要なプロパティはテンプレートで指定されています。各リソースタイプに必要なプロパティについては、「リソースおよびプロパティのリファレンス」を参照してください。
-
インポートするリソースは、同じリージョン内の別のスタックに属していません。
CloudFormation は、テンプレート設定がリソースプロパティの実際の設定と一致しているかどうかをチェックしません。
リソースのインポートのステータスコード
この表は、resource
import
で使用されるさまざまなステータスタイプを示しています。
インポートオペレーションステータス | 説明 |
---|---|
|
インポートオペレーションは進行中です。 |
|
スタック内のすべてのリソースのインポートオペレーションが完了しました。 |
|
ロールバックインポートオペレーションは、前のテンプレート設定をロールバックしています。 |
|
インポートロールバックオペレーションが失敗しました。 |
|
インポートは、前のテンプレート設定にロールバックされました。 |
インポートオペレーション中の考慮事項
-
インポートが完了した後、後続のスタックオペレーションを実行する前に、インポートされたリソースでドリフト検出を実行することをお勧めします。ドリフト検出により、テンプレート設定が実際の設定と一致することが保証されます。
-
インポートオペレーションでは、新しいリソース作成、リソースの削除、プロパティ設定の変更は許可されません。
-
インポートオペレーションを成功させるには、インポートする各リソースに
DeletionPolicy
属性が必要です。DeletionPolicy
は任意の使用できる値に設定できます。ターゲットリソースのみにDeletionPolicy
が必要です。スタックにすでに含まれているリソースは、DeletionPolicy
を必要としません。 -
同じリソースを複数のスタックにインポートすることはできません。
-
cloudformation:ImportResourceTypes
IAM ポリシー条件を使用して、インポートオペレーション中に IAM ユーザーが操作できるリソースタイプを制御できます。 -
AWS CloudFormation スタックの制限は、リソースのインポート時に適用されます。制限に関する詳細については、「AWS CloudFormation の制限」を参照してください。