CloudFormation ヘルパースクリプトリファレンス - AWS CloudFormation

CloudFormation ヘルパースクリプトリファレンス

AWS CloudFormation は、スタックの一部として作成する Amazon EC2 インスタンスでソフトウェアをインストールしたり、サービスを開始したりすることに使用できる次の Python ヘルパースクリプトを提供します。

  • cfn-init: リソースメタデータの取得と解釈、パッケージのインストール、ファイルの作成、およびサービスの開始で使用します。

  • cfn-signal: CreationPolicy または WaitCondition でシグナルを送信するために使用し、前提となるリソースやアプリケーションの準備ができたときに、スタックの他のリソースを同期できるようにします。

  • cfn-get-metadata: 特定のキーへのリソースまたはパスのメタデータを取得するために使用します。

  • cfn-hup: メタデータへの更新を確認し、変更が検出されたときにカスタムフックを実行するために使用します。

テンプレートからスクリプトを直接呼び出します。スクリプトは、同じテンプレートで定義されているリソースメタデータと組み合わされて機能します。スクリプトは Amazon EC2 インスタンスでスタック作成プロセス中に実行されます。

注記

スクリプトはデフォルトでは実行されません。特定のヘルパースクリプトを実行するには、テンプレートに呼び出しを含める必要があります。

Amazon Linux AMI イメージ

CloudFormation ヘルパースクリプトは、ブートストラップスクリプトがインストールされた Amazon Linux AMI イメージにプレインストールされています。

  • Amazon Linux AMI の最新バージョンでは、スクリプトは /opt/aws/bin にプレインストールされています。

  • 以前の Amazon Linux AMI バージョンでは、スクリプトを含む aws-cfn-bootstrap パッケージは、Yum リポジトリにあります。

注記

ヘルパースクリプトは、Amazon Linux AMI の最新バージョンにプリインストールされており、Amazon Linux をベースとして使用する ECS に最適化されたイメージなど、最適化された AMI は対象外です。

その他のプラットフォーム用パッケージのダウンロード

Amazon Linux AMI イメージと Microsoft Windows (2008 以降) を除く Linux/Unix ディストリビューション用に、aws-cfn-bootstrap パッケージをダウンロードできます。

注記

ヘルパースクリプトのバージョン 2.0–1 以上は、Python 3.4 以上をサポートしています。以前のバージョンの Python をサポートするヘルパースクリプトが必要な場合は、「CloudFormation ヘルパースクリプト 1.4 のリリース履歴」を参照してください。

File format (ファイル形式) URL のダウンロード

TAR.GZ

https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz

Python の Pip を使用して tar.gz をインストールします。Ubuntu 用のインストールを完了するには、シンボリックリンクを作成する必要があります。

ln -s /<path-to-extracted-tar>/aws-cfn-bootstrap-2.0/init/ubuntu/cfn-hup /etc/init.d/cfn-hup

ZIP

https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.zip

EXE

32 ビット Windows: https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.exe

64 ビット Windows: https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-win64-latest.exe

ヘルパースクリプトのアクセス許可

デフォルトでは、ヘルパースクリプトは認証情報を必要としないので、--access-key--secret-key--role、または --credential-file オプションを使う必要がありません。ただし、認証情報が指定されていない場合、CloudFormation はスタックのメンバーシップを確認し、そのインスタンスが属するスタックの呼び出し範囲を制限します。

オプションを指定するように選択する場合、次のいずれかのみを指定することをお勧めします。

  • --role

  • --credential-file

  • --access-key と共に --secret-key

オプションを指定する場合は、さまざまなヘルパースクリプトが必要とするアクセス権限に注意してください。

IAM ポリシーで CloudFormation に特定されるアクションと条件コンテキストキーの使用方法の詳細については、「AWS Identity and Access Management で CloudFormation アクセスを制御する」をご参照ください。

最新バージョンの使用

ヘルパースクリプトは定期的に更新されます。ヘルパースクリプトを使用する場合は、必ずスクリプトの最新バージョンを使用してインスタンスを起動してください。

  • スクリプトを呼び出す前に、テンプレートの UserData プロパティに次のコマンドを含めます。このコマンドで、確実に最新バージョンを取得できます。

    yum install -y aws-cfn-bootstrap

  • yum install コマンドを含めずに、cfn-initcfn-signal、または cfn-get-metadata スクリプトを使用する場合、次のコマンドを使用して各 Amazon EC2 Linux インスタンスのスクリプトを手動で更新する必要があります。

    sudo yum install -y aws-cfn-bootstrap

    注記

    sudo yum install -y aws-cfn-bootstrap を実行すると、yum リポジトリからヘルパースクリプトがインストールされます。

  • yum install コマンドを含めずに、cfn-hup スクリプトを使用する場合、次のコマンドを使用して各 Amazon EC2 Linux インスタンスのスクリプトを手動で更新する必要があります。

    sudo yum install -y aws-cfn-bootstrap

    sudo /sbin/service cfn-hup restart

    注記

    sudo yum install -y aws-cfn-bootstrap を実行すると、yum リポジトリからヘルパースクリプトがインストールされます。

  • スクリプトのソースコードを使用して Linux の別バージョンまたは別のプラットフォームで作業する場合、独自の証明書信頼ストアを作成済みであれば、信頼ストアも常に更新しておく必要があります。

aws-cfn-bootstrap パッケージのバージョン履歴については、「AWS CloudFormation ヘルパースクリプトのリリース履歴」を参照してください。