こんにちは!
今回は、 AWS CloudFormation の新機能として追加された、スタックへの既存リソースのインポート方法について紹介します。
既存の AWS 環境のリバースエンジニアリング作業に有用なテクニックですので、ぜひ最後までご覧ください。
2019年11月15日、AWS リソースを自動で構築するサービス「AWS CloudFormation」で、既存リソースをインポートできる新機能が搭載されたとのアナウンスがありました。(参照:新機能 – CloudFormation スタックへの既存リソースのインポート | Amazon Web Services ブログ)
このアップデートにより、CloudFormation 以外で作成したリソース(例えば管理コンソールから手動で構築したリソース)であっても、CloudFormation 管理へのスムーズな移行が可能になります。
本記事では、そんな CloudFormation の新機能を利用し、CloudFormation スタックに既存リソースをインポートするテクニックを紹介します。
CloudFormation とは、YAML や JSON などのフォーマットで、AWS リソースを自動で構築できるサービスです。AWSの代表的な Code As Infla ツールですね。
リソース情報を CloudFormation テンプレートに記述することで、それらをひとつの CloudFormation スタック(タスクのような概念)として一括管理できるのがメリットです。リソースを管理コンソールから構築するなどの作業が不要となり再現性の高いインフラ構築を可能にし、ステージング等のマルチ環境の構築、クロスアカウント運用などで力を発揮します。
先述の通り、CloudFormation では、アップデートにより既存リソースをスタックにインポートできるようになりました。アップデートによってできるようになった事柄について、Amazon は次の内容をあげています。
・既存リソースをインポートしながら新規のスタックを作成する。
新機能 – CloudFormation スタックへの既存リソースのインポート | Amazon Web Services ブログ
・すでに作成済みのスタックに既存リソースをインポートする。
・スタック間でリソースの移行をする。
・検出されたドリフトを修復する。
・親スタックから子スタックを削除した後、別の親からインポートし直すことで、 ネストされたスタックのリファクタリングを行う。
CloudFormation では、緊急の場合などに CloudFormation を使わずに AWS Command Line Interface(CLI)や手動でリソースを作成せざるを得ないことがあります。アップデート前では、AWS CloudFormation 外で作成したリソースを AWS CloudFormation の管理下に置く場合、リソースの再作成が必要でした。
今回のアップデートにより、外部リソースの削除・再作成をしなくても、既存のリソースを AWS CloudFormation 管理に取り込むことができるようになりました。
ここからは、実際に CloudFormation を操作し、既存リソースをスタックにインポートする方法を紹介します。
まずは CloudFormation のコンソール画面にログインします。
左メニューの「スタック」を選択し、スタックの管理画面に移ります。
画面右の「スタックの作成」>「既存のリソースを使用(リソースをインポート)」を選択すると、既存のリソースを新規の CloudFormation スタックへインポートできます。
「既存のリソースを使用(リソースをインポート)」 を選択すると、次の画面に移ります。
下記画面に表示された文に目を通したら、「次へ」ボタンを選択します。
スタックのテンプレートを選択します。テンプレートソースは、以下の2通りの方法で指定できます。
今回は、Amazon S3 URL を記入する方法で指定しました。入力が完了したら、「次へ」を選択します。
次に、インポートするリソースの識別子の値を入力します。入力が終わったら「次へ」ボタンを選択します。
スタックの詳細を指定します。
スタックの名前を指定し、パラメータを確認したら、「次へ」ボタンを選択してください。
最後に「概要をインポート」画面で、スタックのテンプレートやリソースなどを確認します。修正したい箇所があれば、右上の「編集」ボタンから内容を変更してください。
問題がなければ、画面最下部にある「スタックを作成」ボタンを選択します。
正常に処理が完了すれば、既存リソースを含んだスタックが新たに作成されます。
以上、 CloudFormation スタックへの既存リソースのインポート方法について紹介しました。効率的なリソース管理を実現できる上に操作方法も簡単ですので、ぜひ積極的に取り入れてみてください。
AWS の開発引き継ぎ・運用等は、お気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎