web-dev-qa-db-ja.com

cloudformationテンプレートとしてのAWSエクスポート構成

AWS CLIとcloudformationを使用していますが、ドキュメントに参照が見つかりませんでした。

現在の構成からcloudformationテンプレートを作成できるかどうかは誰でも知っています。

現在のセキュリティグループ構成からcloudformationテンプレートを取得したいとします。

コマンドラインを使用して、その構成をテンプレートとしてエクスポートできるかどうか考えていますか?

よろしく。

15
paul

私たちの経験に基づいて、手動でデプロイされた既存の(WebコンソールUIから)AWSインフラストラクチャをCloudformation(CF)に変換する2つの可能な方法を見つけました。

  1. スタックを構成する各要素に対してaws cli execute $aws service_name_here describeを使用します(例:RDS Database Stack:)
    • RDSインスタンス-> Type: AWS::RDS::DBInstance
    • RDS(EC2)SG-> Type: AWS::EC2::SecurityGroup
    • RDSサブネットグループ-> Type: AWS::RDS::DBSubnetGroupおよび
    • RDS DBパラメータグループ-> Type: AWS::RDS::DBParameterGroup

各コンポーネントのaws cliから取得した出力に基づいて、手動でCFに変換します。このアプローチは通常、AWSとCFの両方でより多くの経験を必要としますが、作成しているテンプレートは、適切な方法で構造化および設計し、完全にパラメーター化(Sub, Ref, Join, Fn::GetAtt:, Fn::ImportValue)、モジュール化、conditionsを適用して、最初に反復は、結果がおそらくテンプレートの最終状態に近づくでしょう(興味深い参照例: https://github.com/widdix/aws-cf-templates/ )。

  1. AWS CloudFormerを使用:

追加ポイント! :)

  1. Terraforminghttps://github.com/dtan4/terraforming )を使用します。 Terraformの新しいバージョン0.12.0-beta2(すでにterraform-provider-aws 2.7.0による安定版リリースでサポートされています)を考慮し、新機能とそのより使いやすい構文を使用し、オープンソースツールであり、クラウドプロバイダーに依存しないことを無視しません。私は既存のAWSインフラに基づいてTerraformコードを生成する可能性を否定しません。可能であれば、参照として-> https://registry.terraform.io/ としてモジュールとサブモジュールの形式でAWS CFの代替。

  2. 現在デプロイされているAWSインフラをCloudformation/Terraformコードにエクスポートするためのその他の新しい代替手段:

8

AWS CLIを使用することはできませんが、CloudFormer [1]ツールを使用して、既存のリソースからCloudFormationテンプレートを作成できます。私はそれでかなりの成功を収めてきました。テンプレートは手作りのテンプレートほど「きれい」ではありませんが、良い出発点となります。

[1] http://aws.Amazon.com/developertools/646018034480568

14
jzonthemtn

CloudFormerに加えて、Bellerophonを確認することもできます: https://github.com/arminhammer/bellerophon

6
ataylor

CloudFormerは現在ベータ版です。重要な環境や本番環境での使用はお勧めしません-AWSドキュメントから

0