ステップ 3: カスタムクックブックを作成してデプロイする - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 3: カスタムクックブックを作成してデプロイする

重要

この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post または AWS Premium Support を通じて AWS Support チームにお問い合わせください。

スタックは、まだ完全には準備できていません。

  • アプリケーションが MySQL データベースサーバーと Amazon S3 バケットにアクセスするためには、データベースのホスト名や Amazon S3 バケット名などの情報が必要です。

  • MySQL データベースサーバーにデータベースをセットアップし、写真のメタデータを保持するためのテーブルを作成する必要があります。

これらのタスクは手動で処理できますが、Chef recipe を実装し、 AWS OpsWorks スタックにレシピを適切なインスタンスで自動的に実行させることがより良い方法です。Chef レシピは、 AWS OpsWorks スタックがパッケージのインストールや設定ファイルの作成などのタスクをインスタンスで実行するために使用する特殊な Ruby アプリケーションです。レシピは、クックブックにパッケージ化されます。クックブックには、複数のレシピと関連ファイル (設定ファイルのテンプレートなど) を含めることができます。クックブックは などのリポジトリに配置され GitHub、標準のディレクトリ構造である必要があります。カスタムクックブックリポジトリがまだない場合、これをセットアップする方法の詳細については、「クックブックリポジトリ」を参照してください。

この例では、クックブックは実装されており、パブリック GitHub リポジトリ に保存されます。このクックブックには、appsetup.rbdbsetup.rb という 2 つのレシピと、db-connect.php.erb というテンプレートファイルが含まれています。

appsetup.rb レシピは、アプリケーションがデータベースおよび Amazon S3バケットにアクセスするために必要となる情報を含む設定ファイルを作成します。これは基本的に アプリケーションをデータベースに接続する で説明した appsetup.rb レシピを軽微に修正したものです。主な違いはテンプレートに渡される変数であり、これらはアクセス情報を表します。

最初の 4 つの属性はデータベース接続設定を定義し、MySQL インスタンスの作成時に AWS OpsWorks スタックによって自動的に定義されます。

これらの変数には、元のレシピの変数と異なる点が 2 つあります。

  • 元のレシピと同じように、table 変数は dbsetup.rb によって作成されたデータベーステーブルの名前を表し、クックブックの属性ファイルで定義された属性の値に設定されます。

    ただし、その属性名は [:photoapp][:dbtable] という異なる名前になります。

  • s3bucket 変数はこの例に固有のものであり、Amazon S3 バケット名 [:photobucket] を表す属性の値に設定されます。

    [:photobucket] は、後述するように、カスタム JSON を使用して定義されます。属性の詳細については、「属性」を参照してください。

属性の詳細については、「属性」を参照してください。

dbsetup.rb レシピは、各写真のメタデータを保持するためのデータベーステーブルをセットアップします。これは、基本的には dbsetup.rb レシピに若干の変更を加えたものです。このレシピの詳細については、「データベースのセットアップ」を参照してください。

この例と元のレシピの唯一の相異点はデータベーススキーマでです。このデータベーススキーマには、Amazon S3 バケットに保存される各写真の ID、URL およびキャプションが含まれる 3 つの列があります。

レシピはすでに実装されているため、必要なのは、PhotoApp クックブックを各インスタンスのクックブックキャッシュにデプロイすることです。 AWS OpsWorks スタックは、後述するように、適切なライフサイクルイベントが発生したときにキャッシュされたレシピを実行します。

photoapp クックブックをデプロイするには
  1. AWS OpsWorks スタックスタック ページで、スタック設定 を選択し、編集 を選択します。

  2. [Configuration Management] セクションで、次のように設定します。

    • [Use custom Chef cookbooks] を [Yes] に設定します。

    • [Repository type] を Git に設定します。

    • Repository URLgit://github.com/amazonwebservices/opsworks-example-cookbooks.git に設定します。

  3. [Stack] (スタックスタック) ページで [Run Command] (コマンドの実行) を選択し、[Update Custom Cookbooks] (カスタムクックブックの更新) スタックコマンドを選択します。次に、[Update Custom Cookbooks] (カスタムクックブックの更新) を選択して、インスタンス クックブックキャッシュに新しいクックブックをインストールします。

    Run Command interface showing Update Custom Cookbooks option and instance selection.