詳細: このウォークスルーで使用されているクックブックの学習 - AWS OpsWorks

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

詳細: このウォークスルーで使用されているクックブックの学習

重要

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

このトピックでは、 AWS OpsWorks スタックがウォークスルーに使用したクックブックについて説明します。

クックブックは Chef の概念です。クックブックは、レシピ、属性値、ファイル、テンプレート、ライブラリ、定義、カスタムリソースなどの設定情報を含むアーカイブファイルです。レシピは、Chef の概念でもあります。レシピは、Ruby 言語の構文で書かれた手順であり、使用するリソースと、それらのリソースを適用する順序を指定します 詳細については、「Learn Chef」(Chef の説明) ウェブサイトで 「About Cookbooks」(クックブックについて) および「About Recipes」(レシピについて)] をご覧ください。

このチュートリアルで使用されているクックブックの内容を確認するには、opsworks-linux-demo-cookbooks-nodejs.tar.gz ファイルの内容を展開して、ローカルワークステーションの空のディレクトリにします。(クックブックをデプロイしたインスタンスにログインし、/var/chef/cookbooks ディレクトリの内容を確認することもできます。)

cookbooks/nodejs_demo/recipes ディレクトリの default.rb ファイルは、クックブックがそのコードを実行する場所です。

app = search(:aws_opsworks_app).first app_path = "/srv/#{app['shortname']}" package "git" do options "--force-yes" if node["platform"] == "ubuntu" && node["platform_version"] == "18.04" end application app_path do javascript "4" environment.update("PORT" => "80") git app_path do repository app["app_source"]["url"] revision app["app_source"]["revision"] end link "#{app_path}/server.js" do to "#{app_path}/index.js" end npm_install npm_start end

ファイルで実行される操作は次のとおりです。

  • search(:aws_opsworks_app).first は Chef 検索を使用して、最終的にインスタンスにデプロイされるアプリケーションについての情報を検索します。この情報には、アプリケーションの短縮名、ソースリポジトリの詳細などの設定が含まれます。このウォークスルーでデプロイされたのは 1 つのアプリケーションのみであるため、Chef 検索ではインスタンスの aws_opsworks_app 検索インデックス内の情報の最初の項目から、これらの設定を取得します。インスタンスが起動されるたびに、 AWS OpsWorks スタックは、この情報およびその他の関連情報をインスタンス自体に一連のデータバッグとして保存し、Chef 検索を通じてデータバッグの内容を取得します。このレシピにこれらの設定をハードコードすることができますが、データバッグと Chef 検索を使用するのが、より堅牢な方法です。データバッグの詳細については、Chef の詳細ウェブサイトで「AWS OpsWorks スタックデータバッグリファレンス」を参照してください。[Learn Chef] (Chef の説明) ウェブサイトで [About Data Bags] (データバッグについて) も参照してください。Chef の検索の詳細については、[Learn Chef] (Chef の説明) ウェブサイトで [About Search] (検索について) を参照してください。

  • package リソースはインスタンスに Git をインストールします。

  • application リソースはウェブアプリケーションを記述し、デプロイします。

    • javascript は、インストールする JavaScript ランタイムのバージョンです。

    • environment は環境変数を設定します。

    • git は指定されたリポジトリとブランチからソースコードを取得します。

    • app_path はリポジトリをクローン化するパスです。パスがインスタンスに存在しない場合、 AWS OpsWorks Stacks によって作成されます。

    • link はシンボリックリンクを作成します。

    • npm_install は、Node.js 用のデフォルトのパッケージマネージャーであるノードパッケージマネージャをインストールします。

    • npm_start は Node.js を実行します。

AWS OpsWorks スタックはこのウォークスルーに使用されるクックブックを作成しましたが、独自のクックブックを作成できます。この方法の詳細は、使用開始: クックブックを参照してください。また、「Learn Chef (Chef の説明) ウェブサイトで「About Cookbooks」(クックブックについて)、「About Recipes」(レシピについて)、および「Learn the Chef Basics on Ubuntu」(Ubuntu でシェフの基礎を学ぶ) を、「Getting started with Chef」(Chef の使用開始)ウェブサイトでは「First steps with Chef」(Chef の最初のステップ) にある「最初のシェフクックブック」セクションもご覧ください。