

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

# OpsWorks スタックの開始方法
<a name="gettingstarted_intro"></a>

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

OpsWorks スタックには、組み合わせて特定の目的を満たすスタックを作成できるカスタマイズ可能なコンポーネントの豊富なセットが用意されています。新規ユーザーにとっての課題は、これらのコンポーネントをどのように実際のスタックに組み込み、効果的に管理するかを理解することです。ここで最初からご説明します。


| 目的が | このウォークスルーの完了: | 
| --- | --- | 
| サンプルスタックをできるだけ迅速に作成する | [使用開始: サンプル](gettingstarted-intro.md)  | 
| Linux ベースのスタックを試す | [入門ガイド: Linux](gettingstarted-linux.md) | 
| Windows ベースのスタックを試す | [入門ガイド: Windows](gettingstarted-windows.md) | 
| 独自の Chef クックブックを作成する方法を学習する | [使用開始: クックブック](gettingstarted-cookbooks.md) | 

Amazon EC2 インスタンスや、独自のハードウェアで実行されている*オンプレミス*インスタンスなど、既存のコンピューティングリソースがある場合は、スタックで作成したインスタンスとともにスタック[に組み込む](registered-instances.md)ことができます OpsWorks 。その後、 OpsWorks スタックを使用して、作成方法に関係なく、関連するすべてのインスタンスをグループとして管理できます。

## リージョンのサポート
<a name="gettingstarted-intro-region"></a>

 OpsWorks スタックにはグローバルにアクセスできます。また、インスタンスをグローバルに作成および管理することもできます。ユーザーは、 AWS GovCloud (米国西部) および中国 (北京) AWS リージョンを除く任意のリージョンで起動するように OpsWorks スタックインスタンスを設定できます。 OpsWorks スタックを使用するには、インスタンスが次のいずれかの Stacks OpsWorks インスタンスサービス API エンドポイントに接続できる必要があります。

リソースは、そのリソースを作成したリージョンでのみ管理できます。あるリージョンのエンドポイントで作成されたリソースは、他のリージョンのエンドポイントからは使用できず、他のリージョンのエンドポイントにクローニングすることもできません。インスタンスを起動できるリージョンは以下の通りです。
+ 米国東部 (オハイオ) リージョン
+ 米国東部(バージニア州北部) リージョン
+ 米国西部 (オレゴン) リージョン
+ 米国西部 (北カリフォルニア) リージョン
+ カナダ (中部) リージョン (API のみ、 AWS マネジメントコンソールで作成されたスタックは使用できません。)
+ アジアパシフィック (ムンバイ) リージョン
+ アジアパシフィック (シンガポール) リージョン
+ アジアパシフィック (シドニー) リージョン
+ アジアパシフィック (東京) リージョン
+ Asia Pacific (Seoul) Region
+ 欧州 (フランクフルト) リージョン
+ 欧州 (アイルランド) リージョン
+ 欧州 (ロンドン) リージョン
+ 欧州 (パリ) リージョン
+ 南米 (サンパウロ) リージョン

# サンプルスタックの使用開始
<a name="gettingstarted-intro"></a>

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

このチュートリアルでは、 OpsWorks スタックを使用して、マウスを数回クリックするだけで、コードを記述せずにサンプル Node.js アプリケーション環境をすばやく作成する方法を示します。終了すると、Chef 12 を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Node.js HTTP サーバー、および Twitter とやり取りし、ウェブページにコメントを残すために使用できるウェブアプリケーションが作成されます。

**注記**  
このウォークスルーを完了すると c3.large タイプのインスタンスが自動的に作成されるため、このウォークスルー、または ** スタックの **サンプルスタック OpsWorks 作成ツールを [AWS Free Tier](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-limits.html) で使用することはできません。VPC 内で [**Sample Stack**] 作成ツールを使用すると、t2.medium インスタンスが作成されますが、VPC は現在 [AWS 無料利用枠](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-limits.html)では使用できません。

# ステップ 1: 前提条件を完了する
<a name="gettingstarted-intro-prerequisites"></a>

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

ウォークスルーを開始する前に、次のセットアップ手順を完了する必要があります。これらのセットアップ手順には、 AWS アカウントへのサインアップ、管理ユーザーの作成、 OpsWorks スタックへのアクセス許可の割り当てが含まれます。

**Topics**
+ [にサインアップする AWS アカウント](#sign-up-for-aws)
+ [管理アクセスを持つユーザーを作成する](#create-an-admin)
+ [サービスアクセス権限を割り当てます。](#gettingstarted-intro-prerequisites-permissions)

## にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)」を参照してください。

## サービスアクセス権限を割り当てます。
<a name="gettingstarted-intro-prerequisites-permissions"></a>

ロールまたはユーザーに OpsWorks `AWSOpsWorks_FullAccess`および アクセス`AmazonS3FullAccess`許可を追加して、 スタックサービス (および OpsWorks スタックが依存する関連サービス) へのアクセスを有効にします。

アクセス許可の追加に関する詳細については、[IAM ID アクセス許可の追加 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) を参照してください。

これですべてのセットアップステップが完了したので、[このウォークスルーを開始](gettingstarted-intro-create-stack.md)できます。

# ステップ 2: スタックを作成する
<a name="gettingstarted-intro-create-stack"></a>

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

このステップでは、 OpsWorks スタックコンソールを使用してスタックを作成します。*スタック*は、共通の目的を持ち、一緒に管理するインスタンス (Amazon EC2 インスタンスなど) および関連 AWS リソースのコレクションです。(詳細については「[スタック](workingstacks.md)」 を参照してください)。このウォークスルーのインスタンスは 1 つのみです。

このステップを開始する前に、[前提条件](gettingstarted-intro-prerequisites.md)を完了してください。

**スタックを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/) で OpsWorks コンソールを開きます。

1. 該当する場合、次のいずれかを実行します。
   + ** OpsWorks 「スタックへようこそ**」ページが表示されている場合は、**「最初のスタックを追加する**」または**「最初の OpsWorks スタックを追加する**」を選択します (どちらの選択も同じことを行います）。[**Add stack**] ページが表示されます。
   + [**OpsWorks Dashboard**] ページが表示された場合は、[**Add stack**] を選択します。[**Add stack**] ページが表示されます。

1. [**Add stack**] ページが表示されたら、すでに選択されていない場合は [**Sample stack**] を選択します。

1. **[Operating system type]** (オペレーションシステムタイプ) で **[Linux]** が既に選択されている状態で、**[Create stack]** (スタックの作成) を選択します：

     
![\[Add stack interface with options for Sample stack, Chef 12 stack, and Chef 11 stack.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-add-stack-console.png)

   

1. OpsWorks スタックは、**My Sample Stack (Linux) という名前のスタック**を作成します。 OpsWorks スタックは、アプリケーションをスタックにデプロイするために必要なすべてのコンポーネントも追加します。
   + *レイヤー*。これはインスタンスの設計図です。インスタンス設定、リソース、インストールされているパッケージ、セキュリティグループなどを指定します。(詳しくは、[レイヤー](workinglayers.md) を参照してください)。レイヤーの名前は **Node.js App Server** となります。
   + この場合の*インスタンス*は、Amazon Linux 2 EC2 インスタンスです。(インスタンスの詳細については、「[インスタンス](workinginstances.md)」を参照してください)。インスタンスのホスト名は **nodejs-server1** です。
   + *アプリケーション*。これはインスタンスで実行するコードです (アプリケーションの詳細については、「[アプリケーション](workingapps.md)」を参照してください)。アプリケーションの名前は **Node.js Sample App ** です。

1.  OpsWorks スタックがスタックを作成したら、**サンプルスタックを探索**を選択して **My Sample Stack (Linux) **ページを表示します (このウォークスルーを複数回完了すると、**My Sample Stack (Linux)** の後に **2** や **3** などの連番が表示される場合があります）。

     
![\[Checklist showing completed steps for setting up a sample stack with Node.js App Server.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-add-stack-explore-console.png)

   

[次のステップ](gettingstarted-intro-start-instance.md)では、インスタンスを開始し、インスタンスにアプリケーションをデプロイします。

# ステップ 3: インスタンスを起動し、アプリケーションをデプロイする
<a name="gettingstarted-intro-start-instance"></a>

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

これでインスタンスとアプリケーションが用意されたので、インスタンスを開始し、アプリケーションをインスタンスにデプロイします。

**インスタンスを起動し、アプリケーションをデプロイするには**

1. 次のいずれかを行います。
   + サービスのナビゲーションペインで、[**Instances**] を選択します。

       
![\[Menu options including Stack, Layers, and Instances with Instances circled in red.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-nav-pane-console.png)

     
   + [**My Sample Stack (Linux)**] ページで、[**Instances**] を選択します。

       
![\[AWS stack interface showing layers and instances, with one Node.js App Server instance stopped.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instances-console.png)

     

1. [**Instances**] ページで、[**Node.js App Server**]、[**nodejs-server1**] に [**start**] を選択します。

     
![\[Node.js App Server interface showing a stopped instance with start and delete options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-start-instance-console.png)

   

1. [**online**] の円が明るい緑色に成るまで先の手順に進まないでください。(エラーメッセージが表示される場合は、[デバッグとトラブルシューティングのガイド](troubleshoot.md) を参照してください)。

1. インスタンスがセットアップされると、 OpsWorks スタックはアプリケーションをインスタンスにデプロイします。

1. 結果は、続行する前に次のスクリーンショットに類似する必要があります (エラーメッセージが表示される場合は、「[デバッグとトラブルシューティングのガイド](troubleshoot.md)」を参照してください)。

     
![\[OpsWorks instance dashboard showing one online Node.js App Server instance.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-started-console.png)

   

これで、インスタンスと、インスタンスにデプロイされたアプリケーションが用意されました。

[次のステップ](gettingstarted-intro-test-app.md)では、インスタンスでアプリケーションをテストします。

# ステップ 4: インスタンスにデプロイされたアプリケーションをテストする
<a name="gettingstarted-intro-test-app"></a>

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

インスタンスでのアプリケーションのデプロイ結果をテストします。

**インスタンス上のデプロイをテストするには**

1. 前のステップで **[Instances]** (インスタンス) ページを表示した状態で、**[Node.js App Server]** (Node.js アプリケーションサーバー)、**[nodejs-server1]** (nodejs サーバー)、**[Public IP]** (パブリック ID) で IP アドレスを選択します。

     
![\[OpsWorks instance dashboard showing one online Node.js server in us-west-2a.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-ip-console.png)

   

1. おめでとうウェブページの [**Leave a comment**] テキストボックスにコメントを入力し、[**Send**] を選択してアプリケーションをテストします。コメントがウェブページに追加されます。コメントの追加を継続し、何度でも [**Send**] を選択します。

     
![\[Congratulatory message for deploying first app with AWS OpsWorks, featuring stylized landmarks.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-test-app.png)

   

1. Twitter アカウントを持っている場合は、[**Tweet**] または [**@AWSOpsWorks**] を選択し、アプリケーションについてツイートまたは @AWSOpsWorks をフォローする画面の指示に従います。

これで、インスタンス上で正常にアプリケーションをテストおよびデプロイしました。

残りのステップでは、 OpsWorks スタックコンソールを使用して、スタックとそのコンポーネントの設定を確認できます。[次のステップ](gettingstarted-intro-explore-stack.md)では、スタックの設定を調べることで確認を開始できます。

# ステップ 5: スタックの設定を確認する
<a name="gettingstarted-intro-explore-stack"></a>

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

 OpsWorks スタックがスタックをセットアップする方法を確認します。

**スタックの設定を表示するには**

1. サービスのナビゲーションバーで [**Stack**] を選択します。[**My Sample Stack (Linux)**] ページが表示されます。

1. [**Stack Settings**] を選択します。[**Settings My Sample Stack (Linux)**] ページに次のように表示されます。

     
![\[Settings page for My Sample Stack (Linux) showing configuration details like region and OS.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-stack-page-console.png)

   

設定の多くの詳細については、[**Edit**] を選択し、各設定の上にマウスを動かします (すべての設定に画面上の説明があるわけではありません)。これらの設定の詳細については、「[新しいスタックを作成する](workingstacks-creating.md)」をご参照ください。

このウォークスルーで使用されている Chef クックブックを確認するには、GitHub の [opsworks-linux-demo-cookbooks-nodejs](https://github.com/awslabs/opsworks-linux-demo-cookbook-nodejs) リポジトリを開いてください。

[次のステップ](gettingstarted-intro-explore-layer.md)では、レイヤーの設定を確認できます。

# ステップ 6:レイヤーの設定を確認する
<a name="gettingstarted-intro-explore-layer"></a>

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

 OpsWorks スタックがレイヤーを設定する方法を確認します。

**レイヤーの設定を表示するには**

1. サービスナビゲーションペインで、[**Layers**] (レイヤー) を選択します。[**Layers**] (レイヤー) ページが表示されます。

1. [**Node.js App Server**] を選択します。[**Layer Node.js App Server**] ページが表示されます。レイヤーの設定を表示するには、[**General Settings**]、[**Recipes**]、[**Network**]、[**EBS Volumes**]、および [**Security**] を選択します。

     
![\[Node.js App Server layer settings with name, short name, and configuration options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-layers-page-console.png)

   

設定の多くの詳細については、[**Edit**] を選択し、各設定の上にマウスを動かします (すべての設定に画面上の説明があるわけではありません)。これらの設定の詳細については、「[OpsWorks レイヤーの構成を編集する](workinglayers-basics-edit.md)」をご参照ください。

[次のステップ](gettingstarted-intro-explore-instance.md)では、インスタンスの設定とログを確認できます。

# ステップ 7: インスタンスの設定とログを確認する
<a name="gettingstarted-intro-explore-instance"></a>

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

 OpsWorks スタックがインスタンスの起動に使用した設定を確認します。 OpsWorks スタックが作成したインスタンスログを調べることもできます。

**インスタンスの設定とログを表示するには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. [**Node.js App Server**] で、[**nodejs-server1**] を選択します。インスタンスのプロパティページが表示されます。

     
![\[Details of a stopped Node.js server instance on AWS, showing configuration and resource information.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-details-page-console.png)

   

1. インスタンスログを確認するには、[**Logs**] セクションの [**Log**] で [**show**] を選択します。

     
![\[Log entries showing configure and setup commands with timestamps and durations.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-details-logs-console.png)

   

1. OpsWorks スタックは、別のウェブブラウザタブにログを表示します。

     
![\[Log output showing AWS OpsWorks instance startup and chef-client initialization process.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-log-console.png)

   

一部のインスタンス設定が表す内容を確認するには、[**nodejs-server1**] ページに戻り、[**Stop**] を選択して、確認のメッセージが表示されたら、[**Stop**] を選択します。**[Status]** (ステータス) が **[stopping]** (停止中) から **[stopped]** (停止) に変わった後に **[Edit]** (編集) を選択し、続いて各設定の上にカーソルを合わせます。(すべての設定に画面上の説明があるわけではありません)。これらの設定の詳細については、「[レイヤーへのインスタンスの追加](workinginstances-add.md)」をご参照ください。

設定の確認を終了したら、[**Start**] を選択してインスタンスを再起動し、[**Status**] が [**online**] に変わるまで待ちます。それ以外の場合、インスタンスは停止されたままであるため、後でアプリケーションをテストすることはできません。

**注記**  
インスタンスにログインしてさらに詳しく調べる場合は、まずパブリック SSH キー (ssh-keygen や PuTTYgen などのツールを使用して作成できます) に関する情報を OpsWorks スタックに提供し、**次に My Sample Stack (Linux) **スタックでアクセス許可を設定して、ユーザーがインスタンスにログインできるようにする必要があります。手順については、「[ユーザーのパブリック SSH キーの登録](security-settingsshkey.md)」および「[SSH でのログイン](workinginstances-ssh.md)」を参照してください。

[次のステップ](gettingstarted-intro-explore-app.md)では、アプリケーションの設定を確認します。

# ステップ 8: アプリケーションの設定を確認する
<a name="gettingstarted-intro-explore-app"></a>

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

アプリケーションに OpsWorks スタックが使用した設定を確認します。

**アプリケーションの設定を表示するには**

1. サービスナビゲーションペインで、[**Apps**] を選択します。[**Apps**] ページが表示されます。

1. [**Node.js Sample App**] を選択します。[**App Node.js Sample App**] ページが表示されます。

     
![\[Node.js Sample App settings page showing app details, source, and data sources.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-app-details-page-console.png)

   

一部の設定が表す内容の詳細については、[**Edit**] を選択し、各設定の上にマウスを動かします。(すべての設定に画面上の説明があるわけではありません)。これらの設定の詳細については、「[アプリケーションの追加](workingapps-creating.md)」を参照してください。

[次のステップ](gettingstarted-intro-explore-monitoring.md)では、レイヤーのモニタリングレポートを確認します。

# ステップ 9:レイヤーのモニタリングレポートを確認する
<a name="gettingstarted-intro-explore-monitoring"></a>

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

スタックがレイヤーのコンピューティングパフォーマンスについて OpsWorks 生成するレポートを調べます。

**レイヤーのモニタリングのレポートを表示するには**

1. サービスのナビゲーションペインで、[**Monitoring**] を選択します。[**Monitoring Layers**] (レイヤーのモニタリング) ページが表示されます。

1. その他のビューを確認するには、[**CPU**]、[**Memory**]、[**Load**]、および時間の横にある矢印を選択します。  
![\[Monitoring Layers dashboard showing CPU, Memory, Load, and Processes metrics with expandable options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-monitoring-page-console.png)

これらのレポートやその他のレポートの詳細については、「[Amazon CloudWatch を使用する](monitoring-cloudwatch.md)」および「[モニタリング](monitoring.md)」を参照してください。

[次のステップ](gettingstarted-intro-explore-more.md)では、追加のスタック設定を確認できます。

# ステップ 10: 追加のスタック設定を確認する
<a name="gettingstarted-intro-explore-more"></a>

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

このステップでは、追加のスタック設定を確認できます。

OpsWorks スタックは個別のデプロイを実行せず、追加のリソースをプロビジョニングせず、このスタックの一部として追加のアクセス許可を調整しなかったため、**デプロイとコマンド**、**リソース**、アクセス**許可**ページにはあまり関心がありません。これらの設定を表示する場合は、サービスナビゲーションペインで、それぞれ [**Deployments**]、[**Resources**]、および [**Permissions**] を選択します。これらのページが表す内容の詳細については、「[アプリケーションのデプロイ](workingapps-deploying.md)」、「[リソース管理](resources.md)」、および「[ユーザー許可の管理](opsworks-security-users.md)」を参照してください。

[次のステップ](gettingstarted-intro-clean-up.md)では、このウォークスルーに使用した AWS リソースをクリーンアップできます。このステップは任意です。 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。ただし、これらの AWS リソースを周囲に保持すると、 AWS アカウントに継続的な料金が発生する可能性があります。これらの AWS リソースを後で使用するために保持する場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-intro-next-steps.md)。

# ステップ 11 (オプション): クリーンアップする
<a name="gettingstarted-intro-clean-up"></a>

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

 AWS アカウントに追加料金が発生しないように、アプリケーションと、インスタンスや OpsWorks スタックスタックなど、このウォークスルーに使用された AWS リソースを削除できます。(詳細については、[OpsWorks 「 ](https://aws.amazon.com/opsworks/pricing/)料金表」を参照してください）。ただし、 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。これらの AWS リソースを引き続き利用できるようにする場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-intro-next-steps.md)。

このチュートリアルのために作成したリソースに保存されているコンテンツには、個人識別情報が含まれている可能性があります。この情報を AWSが保存しないようにするには、このトピックの手順に従ってください。

**アプリケーションをスタックから削除するには**

1. サービスナビゲーションペインで、[**Apps**] を選択します。[**Apps**] ページが表示されます。

1. [**Node.js Sample App**] で、[**Actions**] の [**delete**] を選択します。確認メッセージが表示されたら、[**Delete**] を選択します。アプリケーションを削除すると、[**No apps**] メッセージが表示されます。

**スタックのインスタンスを削除するには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. [**Node.js App Server**] で、[**nodejs-server1**]、[**Actions**] の [**stop**] を選択します。確認メッセージが表示されたら、[**Stop**] を選択します。

   このプロセスには数分かかることがあります。 OpsWorks スタックが終了すると、次の結果が表示されます。

     
![\[Node.js App Server instance details showing one stopped server in us-west-2a.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-example-instance-stopped-console.png)

   

1. **[Actions]** (アクション) で、[**delete**] (削除) を選択します。確認メッセージが表示されたら、[**Delete**] を選択します。インスタンスは削除され、[**No instances**] メッセージが表示されます。

**スタックを削除するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。[**My Sample Stack (Linux)**] ページが表示されます。

1. [**Delete Stack**] を選択します。確認メッセージが表示されたら、[**Delete**] を選択します。スタックが削除され、[**OpsWorks Dashboard**] ページが表示されます。

必要に応じて、他の AWS サービスや Amazon EC2 インスタンスへのアクセスに再利用しない場合は、このウォークスルーに使用したユーザーと Amazon EC2 キーペアを削除できます。手順については、「[IAM ユーザーの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) と [Amazon EC2 キーペアと Linux インスタンスの削除](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair)」を参照してください。

これで、このウォークスルーが完了しました。詳細については、「[次のステップ](gettingstarted-intro-next-steps.md)」を参照してください。

# 次のステップ
<a name="gettingstarted-intro-next-steps"></a>

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

このチュートリアルを完了したので、 OpsWorks スタックの使用について詳しく学習できます。
+ スタックを使用して、この OpsWorks スタックを手動で再作成する練習をします。「[入門ガイド: Linux](gettingstarted-linux.md)」を参照してください。
+ このウォークスルーで OpsWorks スタックが使用したクックブックとアプリケーションについて説明します。付属の [詳細: このウォークスルーで使用されているクックブックの学習](gettingstarted-linux-explore-cookbook.md) ウォークスルーの「[詳細: このウォークスルーで使用されているアプリケーションの学習](gettingstarted-linux-explore-app-source.md)」および「[入門ガイド: Linux](gettingstarted-linux.md)」を参照してください。
+ Windows OpsWorks インスタンスでの スタックの使用を練習します。「[入門ガイド: Windows](gettingstarted-windows.md)」を参照してください。
+ [新しいスタックを作成する](workingstacks-creating.md) の使用方法を参照してスタックの詳細について学びます。
+ 「[OpsWorks レイヤーの構成を編集する](workinglayers-basics-edit.md)」でレイヤーの詳細について学びます。
+ 「[レイヤーへのインスタンスの追加](workinginstances-add.md)」でインスタンスの詳細について学びます。
+ 「[アプリケーションのデプロイ](workingapps-deploying.md)」でアプリケーションの詳細について学びます。
+ [クックブックとレシピ](workingcookbook.md) の詳細を確認してください。
+ 独自のクックブックを作成します。「[使用開始: クックブック](gettingstarted-cookbooks.md)」を参照してください。
+ 「[セキュリティと権限](workingsecurity.md)」でスタックへのアクセスをコントロールする方法について説明します。

# Linux スタックの使用開始
<a name="gettingstarted-linux"></a>

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

このチュートリアルでは、 OpsWorks スタックを使用して Node.js アプリケーション環境を作成する方法について説明します。終了すると、Chef 12 を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Node.js HTTP サーバー、および Twitter とやり取し、ウェブページにコメントを残すために使用できるウェブアプリケーションが作成されます。

Chef は、EC2 インスタンスなどのサーバーを設定および維持し、それらのサーバーでアプリケーションをデプロイおよび維持するためのサードパーティ製フレームワークです。Chef に慣れていない場合は、このウォークスルーを完了した後、 スタックが提供するすべての機能を最大限に活用できるように、Chef OpsWorks の詳細を学ぶことをお勧めします。(詳細については、[Learn Chef](https://learn.chef.io/) のウェブサイトを参照してください。)

OpsWorks スタックは、Amazon Linux、Ubuntu Server、CentOS、Red Hat Enterprise Linux の 4 つの Linux ディストリビューションをサポートしています。このチュートリアルでは、Ubuntu Server を使用します。 OpsWorks スタックは Windows Server でも動作します。Windows Server スタックには同等のウォークスルーがありますが、このウォークスルーを最初に完了して、スタックと Chef OpsWorks に関する基本的な概念を学習することをお勧めします。このウォークスルーを完了した後で、[入門ガイド: Windows](gettingstarted-windows.md) のウォークスルーを参照してください。



**Topics**
+ [ステップ 1: 前提条件を完了する](gettingstarted-linux-prerequisites.md)
+ [ステップ 2: スタックを作成する](gettingstarted-linux-create-stack.md)
+ [ステップ 3: スタックにレイヤーを追加する](gettingstarted-linux-add-layer.md)
+ [ステップ 4: インスタンスにデプロイするアプリケーションを指定する](gettingstarted-linux-specify-app.md)
+ [ステップ 5: インスタンスを起動する](gettingstarted-linux-launch-instance.md)
+ [ステップ 6: インスタンスにアプリケーションをデプロイする](gettingstarted-linux-deploy-app.md)
+ [ステップ 7: インスタンスにデプロイされたアプリケーションをテストする](gettingstarted-linux-test-app.md)
+ [ステップ 8 (オプション): クリーンアップする](gettingstarted-linux-clean-up.md)
+ [次のステップ](gettingstarted-linux-next-steps.md)
+ [詳細: このウォークスルーで使用されているクックブックの学習](gettingstarted-linux-explore-cookbook.md)
+ [詳細: このウォークスルーで使用されているアプリケーションの学習](gettingstarted-linux-explore-app-source.md)

# ステップ 1: 前提条件を完了する
<a name="gettingstarted-linux-prerequisites"></a>

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

ウォークスルーを開始する前に、次のセットアップ手順を完了します。これらのセットアップ手順には、 AWS アカウントへのサインアップ、管理ユーザーの作成、 OpsWorks スタックへのアクセス許可の割り当てが含まれます。

すでに「[使用開始: サンプル](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-intro.html)」ウォークスルーを完了している場合はこのウォークスルーの前提条件を満たしているため、省略して「[ステップ 2: スタックを作成する](gettingstarted-linux-create-stack.md)」にお進みください。

**Topics**
+ [にサインアップする AWS アカウント](#sign-up-for-aws)
+ [管理アクセスを持つユーザーを作成する](#create-an-admin)
+ [サービスアクセス権限を割り当てます。](#gettingstarted-linux-prerequisites-permissions)

## にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、*AWS IAM アイデンティティセンター 「 ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)」を参照してください。

## サービスアクセス権限を割り当てます。
<a name="gettingstarted-linux-prerequisites-permissions"></a>

ロールまたはユーザーに OpsWorks `AWSOpsWorks_FullAccess`および アクセス`AmazonS3FullAccess`許可を追加して、 スタックサービス (および OpsWorks スタックが依存する関連サービス) へのアクセスを有効にします。

アクセス許可の追加に関する詳細については、[IAM ID アクセス許可の追加 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) を参照してください。

これですべてのセットアップステップが完了したので、[このウォークスルーを開始](gettingstarted-linux-create-stack.md)できます。

# ステップ 2: スタックを作成する
<a name="gettingstarted-linux-create-stack"></a>

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

 OpsWorks スタックコンソールを使用してスタックを作成します。*スタック*は、共通の目的を持ち、一緒に管理するインスタンスおよび関連 AWS リソースのコレクションです。(詳細については「[スタック](workingstacks.md)」 を参照してください)。このウォークスルーでは、インスタンスは 1 つのみです。

開始する前に、まだ行っていない場合は[前提条件](gettingstarted-linux-prerequisites.md)を満たします。

**スタックを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/) で OpsWorks コンソールを開きます。

1. 該当する場合、次のいずれかを実行します。
   + ** OpsWorks 「スタックへようこそ**」ページが表示された場合は、**「最初のスタックを追加する**」または**「最初の OpsWorks スタックを追加する**」を選択します (どちらの選択も同じことを行います）。[**Add stack**] ページが表示されます。
   + [**OpsWorks Dashboard**] ページが表示された場合は、[**Add stack**] を選択します。[**Add stack**] ページが表示されます。

1. [**Add stack**] ページが表示されたら、すでに選択されていない場合は [**Chef 12 stack**] を選択します。

1. [**Stack name**] ボックスに、**MyLinuxDemoStack** のようなスタックの名前を入力します (別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `MyLinuxDemoStack` に置き換えてください)。

1. **[リージョン]** で **[米国西部(オレゴン)]** を選択します。

1. [**VPC**] で、次のいずれかを実行します。
   + VPC が利用できる場合は、これを選択します。(詳しくは、[VPC でのスタックの実行](workingstacks-vpc.md) を参照してください)。
   + それ以外の場合、[**No VPC**] を選択します。

1. [**Default operating system**] で、[**Linux**] および [**Ubuntu 18.04 LTS**] を選択します。

1. [**Use custom Chef cookbooks**] で、[**Yes**] を選択します。

1. [**Repository type**] で、[**Http Archive**] を選択します。

1. [**Repository URL**] に、「**https://s3.amazonaws.com/opsworks-demo-assets/opsworks-linux-demo-cookbooks-nodejs.tar.gz**」と入力します。

1. 以下はデフォルト値のままにします。
   + [**Default Availability Zone**] (**us-west-2a**)
   + [**Default SSH key**] (**Do not use a default SSH key**)
   + [**User name**] (空白)
   + [**Password**] (空白)
   + [**Stack color**] (dark blue)

1. **[Advanced]** (アドバンスト) を選択します。

1. **[IAM ロール]** で、次のいずれかを行います (詳細については、「[OpsWorks スタックがユーザーに代わって動作することを許可する](opsworks-security-servicerole.md)」を参照してください)。
   + [**aws-opsworks-service-role**] が利用できる場合は、これを選択します。
   + [**aws-opsworks-service-role**] が利用できない場合は、[**New IAM role**] を選択します。

1. **[Default IAM instance profile]** (デフォルトのIAM インスタンスプロファイル) で、次のいずれかを行います (詳細については、「[EC2 インスタンスで実行するアプリケーションに対するアクセス許可の指定](opsworks-security-appsrole.md)」を参照してください)。
   + [**aws-opsworks-ec2-role**] が利用できる場合は、これを選択します。
   + **[aws-opsworks-ec2-role]** を利用できない場合は、**[New IAM instance profile]** (新しい IAM インスタンスプロファイル) を選択します。

1. [**API endpoint region**] の場合、スタックを関連付けるリージョンの API エンドポイントを選択します。スタックを米国東部 (バージニア北部) リージョンのエンドポイント内の米国西部 (オレゴン) リージョンに配置する場合は、**[us-east-1]** を選択します。スタックを米国西部 (オレゴン) リージョンに配置するとともに米国西部 (オレゴン) リージョンのエンドポイントに関連付ける場合は、**[us-west-2]** を選択します。
**注記**  
米国東部 (バージニア北部) リージョンエンドポイントには下位互換性 AWS リージョン のために古い が含まれていますが、管理する場所に最も近いリージョンエンドポイントを選択するのがベストプラクティスです AWS。詳細については、「[リージョンのサポート](gettingstarted_intro.md#gettingstarted-intro-region)」を参照してください。

1. 以下はデフォルト値のままにします。
   + [**Default root device type**] (**EBS backed**)
   + [**Hostname theme**] (**Layer Dependent**)
   + [**OpsWorks Agent version**] (最新バージョン)
   + [**Custom JSON**] (空白)
   + [**Use OpsWorks security groups**] (**Yes**)

1. 結果は、おそらく **[VPC]**、**[IAM role]** (IAM ロール)、および **[Default IAM instance profile]** (デフォルト IAM インスタンスプロファイル) を除き、次のスクリーンショットに一致します。

     
![\[AWS OpsWorks Stacks interface for creating a Chef 12 stack with configuration options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-stack-top-console.png)

     
![\[AWS OpsWorks stack configuration form with repository, IAM, and security options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-stack-bottom-console.png)

   

1. **スタックの追加** を選択します。 OpsWorks スタックはスタックを作成し、**MyLinuxDemoStack** ページを表示します。

このウォークスルー用の正しい設定のスタックが作成されました。

[次のステップ](gettingstarted-linux-add-layer.md)では、スタックにレイヤーを追加します。

# ステップ 3: スタックにレイヤーを追加する
<a name="gettingstarted-linux-add-layer"></a>

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

 *[レイヤー]* は、Amazon EC2 インスタンスなど、一連のインスタンス用の設計図です。インスタンス設定、リソース、インストールされているパッケージ、セキュリティグループなどの情報を指定します。次に、スタックにレイヤーを追加します (レイヤーの詳細については、「[レイヤー](workinglayers.md)」を参照してください)。

**レイヤーをスタックに追加するには**

1. 前のステップで表示される [**MyLinuxDemoStack**] ページで、[**Layers**] (レイヤー) の [**Add a layer**] (レイヤーの追加) を選択します。

     
![\[Layers section with icon and description, highlighting "Add a layer" option.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-layer-console.png)

   

1. [**Add Layer**] (レイヤーを追加) ページが表示されます。[**OpsWorks**] タブで、[**Name**] に「**MyLinuxDemoLayer**」と入力します。(別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `MyLinuxDemoLayer` に置き換えてください)。

1. [**Short name**] に「**demo**」と入力します (別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `demo` に置き換えてください)。

     
![\[Form to add a layer with fields for name and short name, and options for OpsWorks, ECS, and RDS.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-layer-page-console.png)

   

1. **レイヤーの追加**を選択します。 OpsWorks スタックはレイヤーを作成し、**レイヤー**ページを表示します。

1. [**Layers**] (レイヤー) ページの [**MyLinuxDemoLayer**] で、[**Network**] (ネットワーク) を選択します。

1. [**Network**] タブの、[**Automatically Assign IP Addresses**] で、[**Public IP addresses**] が [**yes**] に設定されていることを確認します。変更した場合、[**Save**] を選択します。  
![\[Network settings showing Public IP addresses set to yes and Elastic IP addresses set to No.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/add_layer_publicip.png)

1. [**Layers**] (レイヤー) ページで、[**Security**] (セキュリティ) を選択します。

     
![\[AWS Layers interface showing MyLinuxDemoLayer with Security tab highlighted.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-layer-page-console.png)

   

1. [**Layer MyLinuxDemoLayer**] ページが、[**Security**] タブが開かれた状態で表示されます。[**Security groups**] で、[**AWS-OpsWorks-WebApp**] を選択し、[**Save**] を選択します。

     
![\[Security settings interface showing security group selection and EC2 instance profile options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-layer-security-console.png)

   

1. `AWS-OpsWorks-WebApp` セキュリティグループがレイヤーに追加されます (このセキュリティグループがあると、このウォークスルーで後述するインスタンス上のアプリにユーザーが接続できるようになります。このセキュリティグループがないと、ユーザーはウェブブラウザーでインスタンスに接続できないというメッセージを受け取ります)。

このウォークスルー用の正しい設定のレイヤーが作成されました。

[次のステップ](gettingstarted-linux-specify-app.md)では、インスタンスにデプロイするアプリケーションを指定します。

# ステップ 4: インスタンスにデプロイするアプリケーションを指定する
<a name="gettingstarted-linux-specify-app"></a>

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

このウォークスルーの後半でインスタンスにデプロイするアプリについて OpsWorks スタックに伝えます。このコンテキストでは、 OpsWorks Stacks はインスタンスで実行するコードとして*アプリケーション*を定義します。(詳細については「[アプリケーション](workingapps.md)」 を参照してください)。

このセクションの手順は、Chef 12 以降のスタックに適用されます。Chef 11 スタックのレイヤーにアプリを追加する方法については、「[ステップ 2.4: アプリケーション - Chef 11 を作成してデプロイする](gettingstarted-simple-app.md)」を参照してください。

**デプロイするアプリケーションを指定するには**

1. サービスナビゲーションペインで、[**Apps**] を選択します。

     
![\[Navigation menu with options including Stack, Layers, Instances, and Apps highlighted.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-nav-pane-console.png)

   

1. [**Apps**] ページが表示されます。[**Add an app**] を選択します。[**Add App]** ページが表示されます。

1. [**Settings**] で、[**Name**] に「**MyLinuxDemoApp**」と入力します (別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `MyLinuxDemoApp` に置き換えてください)。

1. [**Application Source**]、[**Repository URL**] に、「**https://github.com/awslabs/opsworks-windows-demo-nodejs.git**」と入力します。

1. 以下はデフォルト値のままにします。
   + [**Settings**]、[**Document root**] (空白)
   + [**Data Sources**]、[**Data source type**] (**None**)
   + [**Repository type**] (**Git**)
   + [**Repository SSH key**] (空白)
   + [**Branch/Revision**] (空白)
   + [**Environment Variables**] (空白の [**KEY**]、空白の [**VALUE**]、[**Protected Value**] はオフ)
   + [**Add Domains**]、[**Domain Name**] (空白)
   + [**SSL Settings**]、[**Enable SSL**] (**No**)

     
![\[Add App form with settings for name, document root, data sources, and application source.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-app-top-console.png)

     
![\[Application configuration form with environment variables, domain settings, and SSL options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-app-bottom-console.png)

   

1. **「アプリの追加**」を選択します。 OpsWorks スタックはアプリを追加し、**アプリ**ページを表示します。

このウォークスルー用の正しい設定のアプリケーションが作成されました。

[次のステップ](gettingstarted-linux-launch-instance.md)では、インスタンスを起動します。

# ステップ 5: インスタンスを起動する
<a name="gettingstarted-linux-launch-instance"></a>

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

 OpsWorks スタックを使用して Ubuntu Server Amazon EC2 インスタンスを起動します。このインスタンスでは、このウォークスルーで前に作成したレイヤーで定義した設定が使用されます (詳しくは、[インスタンス](workinginstances.md) を参照してください)。

**インスタンスを起動するには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. [**MyLinuxDemoLayer**] で、[**Add an instance**] を選択します。

1. [**New**] タブで、次のデフォルト値をそのままにします。
   + [**Hostname**] (**demo1**)
   + [**Size**] (**c3.large**)
   + [**Subnet**] (*IP アドレス* **us-west-2a**)

1. **[Advanced]** (アドバンスト) を選択します。

1. 以下はデフォルト値のままにします。
   + **Scaling type** (**24/7**)
   + [**SSH key**] (**Do not use a default SSH key**)
   + [**オペレーティングシステム**] (**Ubuntu 18.04 LTS**)
   + [**OpsWorks Agent version**] (**Inherit from stack**)
   + [**Tenancy**] (**Default - Rely on VPC settings**)
   + [**Root device type**] (**EBS backed**)
   + [**Volume type**] (**General Purpose (SSD)**)
   + [**Volume size**] (**8**)

1. 結果は以下のスクリーンショットのようになります。

     
![\[Form for configuring a new EC2 instance with options for hostname, size, subnet, and other settings.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-add-instance-console.png)

   

1. **「インスタンスの追加**」を選択します。 OpsWorks スタックはインスタンスをレイヤーに追加し、インスタンスページを表示します。 ****

1. **[MyLinuxDemoLayer]**、**[demo1]**、**[アクション]** で、**[開始]** を選択します。

     
![\[Instance management interface showing a stopped demo1 instance with start and delete options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-start-instance-console.png)

   

1. 数分の間に、以下が発生します。
   + [**setting up**] の円が [**0**] から [**1**] に変わります。
   + [**Status**] が [**stopped**] から [**requested**]、[**pending**]、[**booting**]、[**running\$1setup**] に変わり、最終的に [**online**] になります。この処理には数分かかることもありますのでご注意ください。
   + **[(ステータス]** が **[オンライン]** に変わった後、**[設定]** 円形インジケーターが **[1]** から **[0]** に変わり、**[オンライン** (オンライン)] の円が **[0]** から **[1]** に変わって明るい緑色になります。[**online**] の円が明るい緑色になり、[**1**] つのインスタンスがオンラインであることが表示されるまで、先の手順に進まないでください。

1. 結果は、続行する前に次のスクリーンショットに一致する必要があります (エラーメッセージが表示される場合は、「[デバッグとトラブルシューティングのガイド](troubleshoot.md)」を参照してください)。

     
![\[EC2 instance details showing one online c3.large instance in us-west-2a with stop and ssh options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-instance-started-console.png)

   

これで、アプリケーションをデプロイできるインスタンスが作成されました。

**注記**  
インスタンスにログインしてさらに詳しく見る場合は、最初にパブリック SSH キーに関する情報 (ssh-keygen や PuTTYgen などのツールで作成可能) を OpsWorks スタックに提供し、`MyLinuxDemoStack`スタックでアクセス権限を設定して ユーザーがインスタンスにログインできるようにする必要があります。手順については、「[ユーザーのパブリック SSH キーの登録](security-settingsshkey.md)」および「[SSH でのログイン](workinginstances-ssh.md)」を参照してください。SSH を使用して PuTTY 経由でインスタンスに接続する場合は、 AWS ドキュメントの[PuTTY を使用して Windows から Linux インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)」を参照してください。

[次のステップ](gettingstarted-linux-deploy-app.md)では、アプリケーションをインスタンスにデプロイします。

# ステップ 6: インスタンスにアプリケーションをデプロイする
<a name="gettingstarted-linux-deploy-app"></a>

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

このステップでは、GitHub から実行中のインスタンスにアプリケーションをデプロイします (詳しくは、[アプリケーションのデプロイ](workingapps-deploying.md) を参照してください)。アプリケーションをデプロイする前に、デプロイを調整するために使用する*レシピ*を指定する必要があります。レシピは Chef の概念です。レシピは、Ruby 言語の構文で書かれた手順であり、使用するリソースと、それらのリソースを適用する順序を指定します (詳細については、[「Learn Chef」](https://learn.chef.io/)(Chef の説明) ウェブサイトで[「About Recipes」](https://docs.chef.io/recipes.html)(レシピについて) をご覧ください。) 

**アプリケーションをインスタンスにデプロイするために使用するレシピを指定するには**

1. サービスナビゲーションペインで、[**Layers**] (レイヤー) を選択します。[**Layers**] (レイヤー) ページが表示されます。

1. [**MyLinuxDemoLayer**] で、[**Recipes**] を選択します。

     
![\[Layer interface showing MyLinuxDemoLayer with tabs for Settings, Recipes, Network, EBS Volumes, and Security.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-layers-page-console.png)

   

   [**Layer MyLinuxDemoLayer**] ページが、[**Recipes**] タブが開かれた状態で表示されます。

1. **[Custom Chef Recipes]**、**[Deploy]** で、タイプ「**nodejs\$1demo::default**」と**入力**し、Enter キーを押します。`nodejs_demo` はクックブックの名前で、`default` はクックブック内の対象レシピの名前です (レシピのコードについて調べるには、「[詳細: このウォークスルーで使用されているクックブックの学習](gettingstarted-linux-explore-cookbook.md)」を参照してください)。結果は、次のスクリーンショットに一致する必要があります。

     
![\[Custom Chef Recipes configuration panel with Repository URL and lifecycle stages for a Linux demo layer.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-recipes-page-console.png)

   

1. **Save**. OpsWorks Stacks を選択すると、Layer の Deploy ライフサイクルイベントにレシピが追加されます。

**アプリケーションをインスタンスにデプロイするには**

1. サービスナビゲーションペインで、[**Apps**] を選択します。[**Apps**] ページが表示されます。

1. [**MyLinuxDemoApp**]、[**Actions**] で、次の画面に表示されているように [**deploy**] を選択します。

     
![\[Apps table showing MyLinuxDemoApp with deploy, edit, and delete options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-apps-page-console.png)

   

1. [**Deploy App**] ページで、次のデフォルト値をそのままにします。
   + [**Command**] (**Deploy**)
   + [**Comment**] (空白)
   + [**Settings**]、[**Advanced**]、[**Custom Chef JSON**] (空白)
   + [**Instances**]、[**Advanced**] ([**Select all**] をオン、[**MyLinuxDemoLayer**] をオン、[**demo1**] をオン)

1. 結果は、次のスクリーンショットに一致する必要があります。

     
![\[Deploy App interface with settings for MyLinuxDemoApp, including command and instance selection.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-deploy-app-console.png)

   

1. **[デプロイ]** をクリックします。[**Deployment MyLinuxDemoApp – deploy**] ページが表示されます。[**Status**] が [**running**] から [**successful**] に変わります。[**demo1**] の横に回転する円が表示され、その後緑のチェックマークに変わります。この処理には数分かかることもありますのでご注意ください。[**Status**] が [**successful**] となるとともに、緑のチェックマークアイコンが表示されるまで続行しないでください。

1. 結果は、当然ながら [**Created at**]、[**Completed at**]、[**Duration**]、および [**User**] を除いて次のスクリーンショットと一致する必要があります。**[ステータス]** が **[失敗]** の場合、トラブルシューティングするには、**[ログ]** で **[表示]** を選択してエラーの詳細を確認します。

     
![\[Deployment details for MyLinuxDemoApp showing successful status and duration of 1 minute 13 seconds.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-app-deployed-console.png)

   

これで、インスタンスに正常にアプリケーションをデプロイしました。

[次のステップ](gettingstarted-linux-test-app.md)では、インスタンスでデプロイ済みのアプリケーションをテストします。

# ステップ 7: インスタンスにデプロイされたアプリケーションをテストする
<a name="gettingstarted-linux-test-app"></a>

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

ここで、インスタンス上のアプリケーションのデプロイをテストします。

**インスタンス上のデプロイをテストするには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. [**MyLinuxDemoLayer**] で、[**demo1**]、[**Public IP**] の IP アドレスを選択します。

     
![\[EC2 instance details showing one online c3.large instance in us-west-2a with stop and ssh options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-instance-ip-console.png)

   

   新しいウェブブラウザタブがアプリケーションに表示されます。

1. おめでとうウェブページの [**Leave a comment**] テキストボックスにコメントを入力し、[**Send**] を選択してアプリケーションをテストします。コメントがウェブページに追加されます。コメントの追加を継続し、何度でも [**Send**] を選択します。

     
![\[Congratulatory message for deploying first app with AWS OpsWorks, featuring stylized tree and buildings.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-test-app.png)

   

1. Twitter アカウントを持っている場合は、[**Tweet**] または [**@AWSOpsWorks**] を選択し、アプリケーションについてツイートまたは @AWSOpsWorks をフォローする画面の指示に従います。

これで、インスタンス上で正常にアプリケーションをテストおよびデプロイしました。

[次のステップ](gettingstarted-linux-clean-up.md)では、このウォークスルーに使用した AWS リソースをクリーンアップできます。このステップは任意です。 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。ただし、これらの AWS リソースを周囲に保持すると、 AWS アカウントに継続的な料金が発生する可能性があります。これらの AWS リソースを後で使用するために保持する場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-linux-next-steps.md)。

# ステップ 8 (オプション): クリーンアップする
<a name="gettingstarted-linux-clean-up"></a>

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

 AWS アカウントに追加料金が発生しないように、このチュートリアルで使用したリソースを削除 AWS できます。これらの AWS リソースには、 OpsWorks スタックスタックとスタックのコンポーネントが含まれます。(詳細については、[OpsWorks 「 ](https://aws.amazon.com/opsworks/pricing/)料金表」を参照してください）。ただし、 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。これらの AWS リソースを引き続き利用できるようにする場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-linux-next-steps.md)。

このチュートリアルのために作成したリソースに保存されているコンテンツには、個人識別情報が含まれている可能性があります。この情報を AWSが保存しないようにするには、このトピックの手順に従ってください。

**アプリケーションをスタックから削除するには**

1.  OpsWorks スタックコンソールのサービスナビゲーションペインで、**アプリ**を選択します。[**Apps**] ページが表示されます。

1. [**MyLinuxDemoAppに**] で、[**Actions**] の [**delete**] を選択します。確認メッセージが表示されたら、**Delete**. OpsWorks Stacks を選択するとアプリが削除されます。

**スタックのインスタンスを削除するには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. [**MyLinuxDemoLayer**] で、[**demo1**]、[**Actions**] の [**stop**] を選択します。確認メッセージが表示されたら、[**Stop**] を選択します。以下のことが起こります。
   + [**Status**] が [**online**] から [**stopping**] に変わり、最終的に [**stopped**] になります。
   + [**online**] は [**1**] から [**0**] に変わります。
   + [**shutting down**] は [**0**] から [**1**] に変わり、最終的に [**0**] になります。
   + [**stopped**] は最終的に [**0**] から [**1**] に変わります。

   このプロセスには数分かかることがあります。 OpsWorks スタックが終了すると、次の結果が表示されます。

     
![\[Instances dashboard showing one stopped Linux instance in the us-west-2a availability zone.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/gs-linux-instance-stopped-console.png)

   

1. **[Actions]** (アクション) で、[**delete**] (削除) を選択します。確認メッセージが表示されたら、**Delete**. OpsWorks Stacks を選択するとインスタンスが削除され、**インスタンスなし**メッセージが表示されます。

**スタックを削除するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。[**MyLinuxDemoStack**] ページが表示されます。

1. [**Delete Stack**] を選択します。確認メッセージが表示されたら、**Delete**. OpsWorks Stacks を選択するとスタックが削除され、**OpsWorks Dashboard **ページが表示されます。

必要に応じて、他の AWS サービスや Amazon EC2 インスタンスへのアクセスに再利用しない場合は、このウォークスルーに使用したユーザーと Amazon EC2 キーペアを削除できます。手順については、「[IAM ユーザーの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) と [Amazon EC2 キーペアと Linux インスタンスの削除](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair)」を参照してください。

これで、このウォークスルーが完了しました。詳細については、「[次のステップ](gettingstarted-linux-next-steps.md)」を参照してください。

# 次のステップ
<a name="gettingstarted-linux-next-steps"></a>

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

このチュートリアルを完了したので、 OpsWorks スタックの使用について詳しく学習できます。
+ このウォークスルーに使用したクックブックとアプリケーションについて調べます。「[詳細: このウォークスルーで使用されているクックブックの学習](gettingstarted-linux-explore-cookbook.md)」および「[詳細: このウォークスルーで使用されているアプリケーションの学習](gettingstarted-linux-explore-app-source.md)」を参照してください。
+ Windows OpsWorks インスタンスでの スタックの使用を練習します。「[入門ガイド: Windows](gettingstarted-windows.md)」を参照してください。
+ [新しいスタックを作成する](workingstacks-creating.md) の使用方法を参照してスタックの詳細について学びます。
+ 「[OpsWorks レイヤーの構成を編集する](workinglayers-basics-edit.md)」でレイヤーの詳細について学びます。
+ 「[レイヤーへのインスタンスの追加](workinginstances-add.md)」でインスタンスの詳細について学びます。
+ 「[アプリケーションのデプロイ](workingapps-deploying.md)」でアプリケーションの詳細について学びます。
+ [クックブックとレシピ](workingcookbook.md) の詳細を確認してください。
+ 独自のクックブックを作成します。「[使用開始: クックブック](gettingstarted-cookbooks.md)」を参照してください。
+ 「[セキュリティと権限](workingsecurity.md)」でスタックへのアクセスをコントロールする方法について説明します。

# 詳細: このウォークスルーで使用されているクックブックの学習
<a name="gettingstarted-linux-explore-cookbook"></a>

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

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

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

このウォークスルーで使用されているクックブックの内容を表示するには、[のopsworks-linux-demo-cookbooks-nodejs.tar.gz](https://s3.amazonaws.com/opsworks-demo-assets/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` 検索インデックス内の情報の最初の項目から、これらの設定を取得します。インスタンスが起動されるたびに、 OpsWorks Stacks はこの情報およびその他の関連情報をインスタンス自体のデータバッグのセットとして保存し、Chef 検索を通じてデータバッグの内容を取得します。このレシピにこれらの設定をハードコードすることができますが、データバッグと Chef 検索を使用するのが、より堅牢な方法です。データバッグの詳細については、Chef の詳細ウェブサイトで「[OpsWorks スタックデータバッグリファレンス](data-bags.md)」を参照してください。[[Learn Chef]](https://learn.chef.io/) (Chef の説明) ウェブサイトで [[About Data Bags]](https://docs.chef.io/data_bags.html) (データバッグについて) も参照してください。Chef の検索の詳細については、[[Learn Chef]](https://learn.chef.io/) (Chef の説明) ウェブサイトで [[About Search]](https://docs.chef.io/chef_search.html) (検索について) を参照してください。
+ `package` リソースはインスタンスに Git をインストールします。
+ `application` リソースはウェブアプリケーションを記述し、デプロイします。
  + `javascript` は、インストールする JavaScript ランタイムのバージョンです。
  + `environment` は環境変数を設定します。
  + `git` は指定されたリポジトリとブランチからソースコードを取得します。
  + `app_path` はリポジトリをクローン化するパスです。パスがインスタンスに存在しない場合、 OpsWorks スタックによって作成されます。
  + `link` はシンボリックリンクを作成します。
  + `npm_install` は、Node.js 用のデフォルトのパッケージマネージャーであるノードパッケージマネージャをインストールします。
  + `npm_start` は Node.js を実行します。

 OpsWorks スタックはこのウォークスルーに使用されるクックブックを作成しましたが、独自のクックブックを作成できます。この方法の詳細は、「[使用開始: クックブック](gettingstarted-cookbooks.md)」を参照してください。また、[「Learn Chef](https://docs.chef.io/cookbooks.html) (Chef の説明) ウェブサイトで[「About Cookbooks」](https://docs.chef.io/recipes.html)(クックブックについて)、[「About Recipes」](https://learn.chef.io/modules/learn-the-basics/ubuntu#/)(レシピについて)、および[「Learn the Chef Basics on Ubuntu」](https://learn.chef.io/)(Ubuntu でシェフの基礎を学ぶ) を、[「Getting started with Chef」](http://gettingstartedwithchef.com/first-steps-with-chef.html)(Chef の使用開始)ウェブサイトでは[「First steps with Chef」](http://gettingstartedwithchef.com/)(Chef の最初のステップ) にある「最初のシェフクックブック」セクションもご覧ください。

# 詳細: このウォークスルーで使用されているアプリケーションの学習
<a name="gettingstarted-linux-explore-app-source"></a>

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

このトピックでは、このウォークスルーのために OpsWorks スタックがインスタンスにデプロイするアプリケーションについて説明します。

アプリケーションのソースコードを表示するには、[opsworks-windows-demo-nodejs](https://github.com/awslabs/opsworks-windows-demo-nodejs) GitHub リポジトリの内容を、ローカルワークステーション上の空のディレクトリに展開します。クックブックをデプロイしたインスタンスにログインし、`/srv/mylinuxdemoapp` ディレクトリの内容を確認することもできます。

`index.js` ファイルには、アプリケーションで最も重要なコードが含まれています。

```
var express = require('express');
var app = express();
var path = require('path');
var os = require('os');
var bodyParser = require('body-parser');
var fs = require('fs');

var add_comment = function(comment) {
  var comments = get_comments();
  comments.push({"date": new Date(), "text": comment});
  fs.writeFileSync('./comments.json', JSON.stringify(comments));
};

var get_comments = function() {
  var comments;
  if (fs.existsSync('./comments.json')) {
    comments = fs.readFileSync('./comments.json');
    comments = JSON.parse(comments);
  } else {
    comments = [];
  }
  return comments;
};

app.use(function log (req, res, next) {
  console.log([req.method, req.url].join(' '));
  next();
});
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }))

app.set('view engine', 'jade');
app.get('/', function(req, res) {
  var comments = get_comments();
  res.render("index",
    { agent: req.headers['user-agent'],
      hostname: os.hostname(),
      nodeversion: process.version,
      time: new Date(),
      admin: (process.env.APP_ADMIN_EMAIL || "admin@unconfigured-value.com" ),
      comments: get_comments()
    });
});

app.post('/', function(req, res) {
  var comment = req.body.comment;
  if (comment) {
    add_comment(comment);
    console.log("Got comment: " + comment);
  }
  res.redirect("/#form-section");
});

var server = app.listen(process.env.PORT || 3000, function() {
  console.log('Listening on %s', process.env.PORT);
});
```

ファイルで実行される操作は次のとおりです。
+ `require` は、このウェブアプリケーションを予期どおりに実行するために必要な一部の依存コードを含むモジュールをロードします。
+ `add_comment` 関数と `get_comments` 関数は、`comments.json` ファイルに対して情報の書き込みと読み取りを行います。
+ `app.get`、`app.listen`、`app.post`、`app.set`、および `app.use` の詳細については、「[Express API Reference](http://expressjs.com/4x/api.html)」を参照してください。

 デプロイ用のアプリケーションの作成とパッケージ化の方法については、「[Application Source](workingapps-creating.md#workingapps-creating-source)」を参照してください。

# Windows スタックの使用開始
<a name="gettingstarted-windows"></a>

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

通常、クラウドベースのアプリケーションでは、アプリケーションサーバー、データベースサーバーなどの関連リソースのグループが必要で、一括して作成および管理する必要があります。この一連のインスタンスは *スタック*と呼ばれます。シンプルなアプリケーションスタックの例を以下に示します。

![\[Diagram showing users connecting to app servers through internet, elastic IP, and load balancer.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/windows_walkthrough_arch.png)


基本的なアーキテクチャは以下の要素で構成されます。
+ ユーザーリクエストを受信する Elastic IP アドレス。
+ リクエストをアプリケーションサーバーに均等に分散させるロードバランサー。
+ トラフィックを処理するために必要な数の一連のアプリケーションサーバーインスタンス。

また、通常、アプリケーションサーバーにアプリケーションを配布する方法や、ユーザー アクセス権限を管理する方法も必要です。

OpsWorks スタックは、スタックおよび関連するアプリケーションとリソースを作成および管理するためのシンプルで簡単な方法を提供します。この章では、 OpsWorks スタックの基本とさらに高度な機能を紹介し、図表でアプリケーションサーバースタックを作成するプロセスを順を追って説明します。 OpsWorks スタックが簡単に従える増分開発モデルを使用します。基本的なスタックを設定し、正しく動作したら、フル機能の実装に到達するまでコンポーネントを追加します。
+ 「[ステップ 1: 前提条件を完了する](gettingstarted-windows-prerequisites.md)」に、ウォークスルーを開始するためのセットアップ方法を示します。
+ 「[ステップ 2: 基本的なアプリケーションサーバースタックを作成する](gettingstarted-windows-basic.md)」では、基本スタックを作成して Internet Information Services (IIS) をサポートし、アプリケーションをサーバーにデプロイする方法を示します。
+ 「[ステップ 3: IISExample の拡張](gettingstarted-windows-scale.md)」では、さらに多くのアプリケーションサーバー、着信トラフィックを分散させるためのロードバランサー、着信リクエストを受信する Elastic IP アドレスを追加することによって、増大した負荷を処理するためにスタックをスケールアウトする方法を示します。

**Topics**
+ [ステップ 1: 前提条件を完了する](gettingstarted-windows-prerequisites.md)
+ [ステップ 2: 基本的なアプリケーションサーバースタックを作成する](gettingstarted-windows-basic.md)
+ [ステップ 3: IISExample の拡張](gettingstarted-windows-scale.md)
+ [次のステップ](gettingstarted-windows-what-next.md)

# ステップ 1: 前提条件を完了する
<a name="gettingstarted-windows-prerequisites"></a>

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

ウォークスルーを開始する前に、次のセットアップ手順を完了します。これらのセットアップ手順には、 AWS アカウントへのサインアップ、管理ユーザーの作成、 OpsWorks スタックへのアクセス許可の割り当てが含まれます。

すでに「[使用開始: サンプル](gettingstarted-intro.md)」または「[入門ガイド: Linux](gettingstarted-linux.md)」ウォークスルーを完了している場合、このウォークスルーの前提条件を満たしており、省略して「[ステップ 2: 基本的なアプリケーションサーバースタックを作成する](gettingstarted-windows-basic.md)」に進むことができます。

**Topics**
+ [にサインアップする AWS アカウント](#sign-up-for-aws)
+ [管理アクセスを持つユーザーを作成する](#create-an-admin)
+ [サービスアクセス権限を割り当てます。](#gettingstarted-windows-prerequisites-permissions)
+ [OpsWorks スタックユーザーがドメインに追加されていることを確認する](#gettingstarted-windows-prerequisites-adusers)

## にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)」を参照してください。

## サービスアクセス権限を割り当てます。
<a name="gettingstarted-windows-prerequisites-permissions"></a>

ロールまたはユーザーに OpsWorks `AWSOpsWorks_FullAccess`および アクセス`AmazonS3FullAccess`許可を追加して、 スタックサービス (および OpsWorks スタックが依存する関連サービス) へのアクセスを有効にします。

アクセス許可の追加に関する詳細については、[IAM ID アクセス許可の追加 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) を参照してください。

## OpsWorks スタックユーザーがドメインに追加されていることを確認する
<a name="gettingstarted-windows-prerequisites-adusers"></a>

Chef 12.2 スタックに含まれている `aws_opsworks_users` クックブックは Windows ベースのインスタンスに対して SSH と RDP (リモートデスクトッププロトコル) アクセスを持つユーザーを作成します。スタック内の Windows インスタンスを Active Directory ドメインに結合すると、スタックユーザーが Active Directory OpsWorks に存在しない場合、このクックブックの実行が失敗する可能性があります。ドメインとの結合後に再起動すると、Active Directory でユーザーが認識されない場合はインスタンスの状態が `setup failed` になります。ドメイン結合された Windows インスタンスは [user permission] ページで OpsWorks スタックユーザーに SSH/RDP アクセス権限を付与することはできません。

Chef 12.2 スタックの Windows インスタンスを Active Directory ドメインに結合する前に、Windows OpsWorks ベースのスタックのすべての スタックユーザーがドメインのメンバーであることを確認します。これを行う最善の方法は、Windows ベースのスタックを作成する前に IAM でフェデレーティッド ID を設定し、 OpsWorks スタック内のインスタンスをドメインに結合する前にフェデレーティッドユーザーを スタックにインポートすることです。詳細については AWS セキュリティブログの[「Enabling Federation to AWS Using Windows Active Directory, ADFS, and SAML 2.0」](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/)(Windows Active Directory、ADFS、SAML 2.0 を使用した AWS へのフェデレーションの有効化) と[「Federating Existing Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-federation) (既存のユーザーのフェデレーション)」を*「IAM User Guide* (IAM ユーザーガイド)」でご覧ください。

# ステップ 2: 基本的なアプリケーションサーバースタックを作成する
<a name="gettingstarted-windows-basic"></a>

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

基本的なアプリケーションサーバースタックは、ユーザーのリクエストを受信するためのパブリック IP アドレスを持つ、単一のアプリケーションサーバーインスタンスで構成されます。アプリケーションコードと関連ファイルは別々のリポジトリに保存されており、そこからサーバーにデプロイされます。そのようなスタックを次の図に示します。

![\[Diagram showing application server stack with Windows instance, IIS layer, and AWS cloud integration.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/php_walkthrough_arch_2_windows.png)


スタックには次のようなコンポーネントがあります。
+ *レイヤー*。インスタンスのグループを表し、それらの設定方法を指定します。

  この例のレイヤーは、IIS インスタンスのグループを表します。
+ Amazon EC2 インスタンスを表す*[instance]* (インスタンス) です。

  この場合、レイヤーは IIS を実行する単一のインスタンスを設定しますが、レイヤーが持てるインスタンスの数に制限はありません。
+ *アプリケーション*: インスタンスにアプリケーションをインストールするために必要な情報が含まれます。
+ *クックブック*: IISレイヤーをサポートするカスタム Chef レシピが含まれます。クックブックとアプリケーションコードは、Amazon S3 バケットまたは Git リポジトリ内のアーカイブファイルなど、リモートリポジトリに保管されます。

以下のセクションでは、 OpsWorks スタックコンソールを使用してスタックを作成し、アプリケーションをデプロイする方法について説明します。

**Topics**
+ [ステップ 2.1: スタックの作成](gettingstarted-windows-stack.md)
+ [ステップ 2.2: RDP アクセスを許可する](gettingstarted-windows-rdp.md)
+ [ステップ 2.3: カスタムクックブックの実装](gettingstarted-windows-cookbook.md)
+ [ステップ 2.4: IISレイヤーを追加する](gettingstarted-windows-iis-layer.md)
+ [ステップ 2.5: アプリケーションをデプロイする](gettingstarted-windows-deploy.md)

# ステップ 2.1: スタックの作成
<a name="gettingstarted-windows-stack"></a>

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

 OpsWorks スタックプロジェクトを開始するには、インスタンスやその他のリソースのコンテナとして機能するスタックを作成します。スタック設定では、AWS リージョンやデフォルトのオペレーティングシステムなど、スタックのすべてのインスタンスで共有されるいくつかの基本的な設定を指定します。

**新しいスタックを作成するには**

1. 

**スタックの追加**

   まだサインインしていない場合は、[OpsWorks スタックコンソール](https://console.aws.amazon.com/opsworks/)にサインインします。
   + アカウントに既存のスタックがない場合は、[**Welcome to AWS OpsWorks**] ページが表示されます。[**Add your first stack**] を選択します。
   + それ以外の場合は、 OpsWorks スタックダッシュボードが表示され、アカウントのスタックが一覧表示されます。**スタックの追加**を選択します。

1. 

**スタックの設定**

   [**Add Stack**] ページで、[**Chef 12 stack**] を選択し、次の設定を指定します。  
**スタック名**  
スタックの名前を入力します。英数字 (a～z、A～Z および 0～9) とハイフン (-) を含めることができます。このウォークスルーで使用する例のスタック名は、**IISWalkthrough** です。  
**リージョン**  
スタックのリージョンとして米国西部 (オレゴン) を選択します。  
スタックはどのリージョンでもスタックを作成できますが、チュートリアルでは 米国西部 (オレゴン) をお勧めします。  
**Default operating system**  
[**Windows**] を選択し、デフォルト設定である [**Microsoft Windows Server 2022 Base**] を指定します。  
**Use custom Chef cookbooks**  
このウォークスルーでは、このオプションに [**No**] を指定します。

1. [**Advanced**] を選択して、IAM ロールがあり、デフォルトの IAM インスタンスプロファイルが選択されていることを確認します。  
IAM ロール  
スタックの IAM (AWS Identity and Access Management) ロールを指定します。 OpsWorks スタックは、Amazon EC2 インスタンスの作成や管理などのタスクを実行するために、他の AWS のサービスにアクセスする必要があります。**IAM ロール**は、ユーザーに代わって OpsWorks スタックが他の AWS のサービスを操作するために引き受けるロールを指定します。詳細については、「[OpsWorks スタックがユーザーに代わって動作することを許可する](opsworks-security-servicerole.md)」を参照してください。  
   + アカウントに既存の OpsWorks スタック IAM ロールがある場合は、リストから選択できます。

     ロールが OpsWorks スタックによって作成された場合は、 という名前になります`aws-opsworks-service-role`。
   + それ以外の場合は、**新しい IAM ロール**を選択して、適切なアクセス許可を持つ新しいロールを作成するように OpsWorks スタックに指示します。

     **注意**: OpsWorks スタックの Full Access 権限を持っている場合、新しいロールを作成するためには、いくつかの追加の IAM アクセス許可が必要になります。詳細については、「[ポリシーの例](opsworks-security-users-examples.md)」を参照してください。

1. その他の設定についてはデフォルト値を受け入れて、[**Add Stack**] を選択します。さまざまなスタック設定の詳細については、「[新しいスタックを作成する](workingstacks-creating.md)」を参照してください。

# ステップ 2.2: RDP アクセスを許可する
<a name="gettingstarted-windows-rdp"></a>

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

これでスタックを作成したので、レイヤーを作成し、Windows インスタンスをレイヤーに追加します。ただし、それを行う前に、RDP を使用してカスタムレイヤーのインスタンスに接続できるようにスタックを設定する必要があります。そのためには、以下を実行する必要があります。
+ セキュリティグループに RDP アクセスを制御するインバウンドルールを追加します。
+ このスタックの OpsWorks スタックアクセス許可を設定して、RDP アクセスを許可します。

リージョンで最初のスタックを作成すると、 OpsWorks スタックは一連のセキュリティグループを作成します。これには`AWS-OpsWorks-RDP-Server`、 スタックがすべての Windows OpsWorks インスタンスにアタッチして RDP アクセスを許可する のような名前のものが含まれます。ただし、デフォルトでは、このセキュリティグループにはルールが存在しないため、インスタンスへの RDP アクセスを許可するインバウンドルールを追加する必要があります。

**RDP アクセスを許可するには**

1. [Amazon EC2 console](https://console.aws.amazon.com/ec2/v2/) (Amazon EC2 コンソール) を開き、スタックのリージョンに設定して、ナビゲーションペインから **[Security Groups]** (セキュリティーグループ) を選択します。

1. [**AWS-OpsWorks-RDP-Server**]、[**Inbound**]、[**Edit**] の順に選択します。

1. [**Add Rule**] を選択し、次の設定を指定します。
   + **[Type]** (タイプ) – **[RDP]**。
   + **[Source]** (送信元) - 許可される送信元 IP アドレス。

     通常は、自身の IP アドレスまたは指定した IP アドレス範囲（社内の IP アドレス範囲が一般的）へのインバウンド RDP リクエストを許可します。学習のためには、多くの場合 0.0.0.0/0 を指定するだけで十分です。任意の IP アドレスからの RDP アクセスが許可されます。

セキュリティグループを使用すると、インスタンスが RDP 接続リクエストを受信できるようになりますが、これだけではありません。通常のユーザーは、 OpsWorks スタックが提供するパスワードを使用してインスタンスにログインします。 OpsWorks スタックでそのパスワードを生成するには、ユーザーの RDP アクセスを明示的に許可する必要があります。

**ユーザーに RDP を許可する**

1. スタックダッシュボードで、**IISWalkthrough** OpsWorks スタックを選択します。

1. スタックのナビゲーションペインで、[**Permissions**] を選択します。

1. [Permissions] ページの [**Edit**] を選択します。

1. ユーザーのリストで、必要なアクセス権限を付与するユーザー用 **[SSH/RDP]** のチェックボックスを選択します。ユーザーに管理者アクセス権限を設定する場合、[**sudo/admin**] も選択します。  
![\[ユーザーの SSH および sudo アクセス許可\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/permissions.png)

1. **[保存]** を選択します。

その後、ユーザーはパスワードを取得し、後で説明するようにインスタンスへのログインに使用します。

**注記**  
管理者としてログインすることもできます。詳細については、「[管理者としてログイン](workinginstances-rdp.md#workinginstances-rdp-admin)」を参照してください。

# ステップ 2.3: カスタムクックブックの実装
<a name="gettingstarted-windows-cookbook"></a>

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

スタックは、基本的にはインスタンスのコンテナですが、インスタンスを直接スタックに追加することはありません。それぞれ関連するインスタンスのグループを表すレイヤーを 1 つ以上追加し、そのレイヤーにインスタンスを追加します。

レイヤーは基本的に、同じ設定の Amazon EC2 インスタンスのセットを作成するために OpsWorks スタックが使用する設計図です。インスタンスは、オペレーティングシステムの基本バージョンから開始し、インスタンスのレイヤーはさまざまなタスクをインスタンスで実行して、次のような設計図を実装します。
+ ディレクトリとファイルの作成
+ ユーザーの管理
+ ソフトウェアのインストールと設定
+ サーバーの起動または停止
+ アプリケーションコードおよび関連ファイルのデプロイ

レイヤーは、[[Chef recipes]](https://docs.chef.io/recipes.html) (シェフのレシピ) (略してレシピ)を実行してインスタンスに対してタスクを実行します。レシピは、インスタンスの最終的な状態を記述する Chef のドメイン固有言語 (DSL) を使用する Ruby アプリケーションです。 OpsWorks スタックでは、各レシピは通常、レイヤーの[ライフサイクルイベント](workingcookbook-events.md)、セットアップ、設定、デプロイ、デプロイ解除、シャットダウンのいずれかに割り当てられます。インスタンスでライフサイクルイベントが発生すると、 OpsWorks Stacks はイベントのレシピを実行して適切なタスクを実行します。例えば、Setup イベントは、インスタンスの起動が完了した後に発生します。 OpsWorks スタックは Setup レシピを実行します。このレシピは通常、サーバーソフトウェアのインストールと設定、関連サービスの開始などのタスクを実行します。

OpsWorks スタックは、標準タスクを実行する一連の組み込みレシピを各レイヤーに提供します。カスタムレシピを実装して追加タスクを実行し、レイヤーのライフサイクルイベントに割り当てることで、レイヤーの機能を拡張できます。Windows スタックは、いくつかの基本タスクのみ実行する最小限のレシピセットを持つ[カスタムレイヤー](workinglayers-custom.md)をサポートします。Windows インスタンスに機能を追加するには、ソフトウェアのインストール、アプリケーションのデプロイなどを行うカスタムレシピを実装する必要があります。このトピックでは、IIS インスタンスをサポートするシンプルなカスタムレイヤーを作成する方法を説明します。

**Topics**
+ [クックブックとレシピの簡単な説明](#gettingstarted-windows-layer-recipes)
+ [IIS のインストールと起動を行うレシピの実装](#gettingstarted-windows-layer-recipe-iis)
+ [カスタムクックブックの有効化](#gettingstarted-windows-layer-enable-cookbook)

## クックブックとレシピの簡単な説明
<a name="gettingstarted-windows-layer-recipes"></a>

レシピは、インスタンスの予想される状態の 1 つ以上の側面を定義します (存在するディレクトリ、インストールが必要なソフトウェアパッケージ、デプロイが必要なアプリケーションなど)。レシピは、*クックブック*にパッケージ化されており、通常は 1 つ以上の関連レシピと、設定ファイルを作成するためのテンプレートなどの関連するファイルが含まれています。

このトピックは、レシピのかなり基本的な説明であり、クックブックを実装してシンプルなカスタム IISレイヤーをサポートする方法のみ示しているにすぎません。クックブックのより全般的な説明については、「[クックブックとレシピ](workingcookbook.md)」を参照してください。Windows 固有のトピックを含む、クックブックの実装方法の詳細なチュートリアルについては、「[クックブック 101](cookbooks-101.md)」を参照してください。

Chef レシピは、技術的には Ruby アプリケーションですが、コードの大部分 (すべてではありません) は Chef DSL で記述されています。DSL の大部分は、インスタンスの状態の側面を宣言により指定するために使用できる一連の*リソース*で構成されています。例えば、[`directory` リソース](https://docs.chef.io/chef/resources.html#directory)は、システムに追加するディレクトリを定義します。次の例は、指定されたユーザーに属する、フルコントロール権限を持つ `C:\data` ディレクトリを定義しており、親ディレクトリの権限を継承しません。

```
directory 'C:\data' do
  rights :full_control, 'WORKGROUP\username'
  inherits false
  action :create
end
```

Chef は、レシピを実行するとき、関連付けられた*プロバイダ* (インスタンスの状態の変更の詳細を処理する Ruby オブジェクト) にデータを渡すことにより各リソースを実行します。この場合、プロバイダは指定された設定を使用して新しいディレクトリを作成します。

カスタム IISレイヤー用のカスタムクックブックは、次のタスクを実行する必要があります。
+ IIS 機能をインストールし、サービスを起動します。

  通常は、インスタンスの起動が終了した直後のセットアップ中にこのタスクを実行します。
+ アプリケーションをインスタンスにデプロイします (この例ではシンプルな HTML ページ)。

  通常は、セットアップ時にこのタスクを実行します。ただし、アプリケーションは通常定期的に更新する必要があるため、インスタンスがオンラインのときに更新をデプロイする必要もあります。

1 つのレシピでこれらのすべてのタスクを実行する必要があります。ただし、セットアップタスクとデプロイタスクに別個のレシピを使用することをお勧めします。このようにして、セットアップコードを実行しなくても、いつでもアプリケーションの更新をデプロイすることができます。以下では、クックブックをセットアップしてカスタム IISレイヤーをサポートする方法について説明します。以降のトピックでは、レシピを実装する方法を示します。

**開始するには、以下の手順を実行します。**

1. ワークステーション上の適切な場所に、`iis-cookbook` というディレクトリを作成します。

1. `iis-cookbook` に、次のコンテンツを含む `metadata.rb` ファイルを追加します。

   ```
   name "iis-cookbook"
   version "0.1.0"
   ```

   この例では、最小限の `metadata.rb` を使用します。このファイルを使用する方法の詳細については、「[metadata.rb](https://docs.chef.io/config_rb_metadata.html)」を参照してください。

1. `iis-cookbook` に `recipes` ディレクトリを追加します。

   このディレクトリ (名前を `recipes` にする必要があります) には、クックブックのレシピが含まれています。

通常、クックブックには他のさまざまディレクトリを含めることができます。たとえば、レシピがテンプレートを使用して設定ファイルを作成する場合、テンプレートは通常 `templates\default` ディレクトリに配置されます。この例のクックブックは完全にレシピで構成されているため、他のディレクトリは必要ありません。また、この例では、1 つのクックブックを使用しますが、必要な数のクックブックを使用できます。複雑なプロジェクトでは、多くの場合、複数のクックブックを使用することが推奨されます。たとえば、セットアップタスクとデプロイタスクに別個のクックブックを使用することができます。クックブックのその他の例については、「[クックブックとレシピ](workingcookbook.md)」を参照してください。

## IIS のインストールと起動を行うレシピの実装
<a name="gettingstarted-windows-layer-recipe-iis"></a>

 IIS は Windows の*機能*の 1 つであり、Windows Server に必要に応じてインストールできる一連のシステムコンポーネントに含まれます。レシピには、次のいずれかの方法で IIS をインストールさせることができます。
+ [https://docs.chef.io/chef/resources.html#powershell-script](https://docs.chef.io/chef/resources.html#powershell-script) リソースお使用して [https://docs.microsoft.com/en-us/powershell/module/servermanager/install-windowsfeature?view=winserver2012-ps](https://docs.microsoft.com/en-us/powershell/module/servermanager/install-windowsfeature?view=winserver2012-ps) コマンドレットを実行する。
+ Chef [Windows クックブック](https://github.com/opscode-cookbooks/windows)の `windows_feature` リソースを使用する。

  `windows` クックブックには一連のリソースが含まれており、これらのリソースのプロバイダは、[Deployment Image Servicing and Management](https://technet.microsoft.com/en-us/library/dd744256%28v=ws.10%29.aspx) (DISM) を使用して Windows インスタンスでさまざまなタスク (機能のインストールなど) を実行します。

**注記**  
`powershell_script` は、特に Windows レシピに役立ちます。これを使うと、PowerShell スクリプトまたはコマンドレットを実行する方法によりインスタンスでさまざまなタスクを実行することができます。特に、Chef リソースによってサポートされていないタスクに役立ちます。

この例は、PowerShell スクリプトを実行して Web Server (IIS) をインストールおよび起動する例です。`windows` クックブックについては後で説明します。`windows_feature` を使用して IIS をインストールする方法の例については、「[Windows の機能のインストール: IIS](cookbooks-101-opsworks-install-software-feature.md)」を参照してください。

以下の内容で `install.rb` という名前のレシピをクックブックの `recipes` ディレクトリに追加します。

```
powershell_script 'Install IIS' do
  code 'Install-WindowsFeature Web-Server'
  not_if "(Get-WindowsFeature -Name Web-Server).Installed"
end

service 'w3svc' do
  action [:start, :enable]
end
```

レシピには、2 つのリソースが含まれています。

**powershell\$1script**  
`powershell_script` は、指定された PowerShell スクリプトまたはコマンドレットを実行します。例では、以下の属性設定を使用します。  
+ `code` - 実行するための PowerShell コマンドレット。

  この例は、Web Server (IIS) をインストールする `Install-WindowsFeature` コマンドレットを実行する例です。通常、`code` 属性の行数に制限はないため、必要な数のコマンドレットを実行できます。
+ `not-if` - IIS がまだインストールされていない場合にのみレシピが IIS をインストールするようにする [[*guard attribute* (ガード属性)](https://docs.chef.io/chef/resources.html#guards)]。

  通常は、レシピを [*idempotent*] (べき等) にするため、同じタスクを複数回実行して時間を無駄にすることがありません。
各リソースには、プロバイダが実行するアクションを指定するアクションがあります。この例には明示的なアクションがないため、プロバイダはデフォルトの `:run` アクションを実行します、これにより指定された PowerShell スクリプトが実行されます。詳細については、「[Windows PowerShell スクリプトを実行する](cookbooks-101-opsworks-opsworks-powershell.md)」を参照してください。

**service**  
[https://docs.chef.io/chef/resources.html#service](https://docs.chef.io/chef/resources.html#service) はサービス (この場合、Web Server IIS サービス (W3SVC)) を管理します。この例では、デフォルト属性を使用し、IIS を起動および有効化する 2 つのアクション (`:start` と `:enable`) を指定します。

**注記**  
パッケージインストーラを使用するソフトウェアをインストールする場合 (MSI など)、`windows_package` リソースを使用できます。詳細については、「[パッケージのインストール](cookbooks-101-opsworks-install-software-package.md)」を参照してください。

## カスタムクックブックの有効化
<a name="gettingstarted-windows-layer-enable-cookbook"></a>

OpsWorks スタックは、各インスタンスのローカルキャッシュからレシピを実行します。カスタムレシピを実行するには、以下を実行する必要があります。
+ リモートリポジトリにクックブックを保存します。

  OpsWorks スタックは、このリポジトリから各インスタンスのローカルキャッシュにクックブックをダウンロードします。
+ カスタムクックブックが有効になるようにスタックを編集します。

  カスタムクックブックはデフォルトで無効なため、スタックのカスタムクックブックを有効にし、リポジトリ URL および関連情報を指定する必要があります。

OpsWorks スタックはカスタムクックブックの S3 アーカイブと Git リポジトリをサポートします。この例では S3 アーカイブを使用します。詳細については、「[クックブックリポジトリ](workingcookbook-installingcustom-repo.md)」を参照してください。

**S3 アーカイブを使用するには**

1. `.zip` ディレクトリの `iis-cookbook` アーカイブを作成します。

   OpsWorks スタックは、Windows スタックの `.tgz` (gzip 圧縮 tar) アーカイブもサポートしています。

1. アーカイブを米国西部 (カルフォルニア北部) リージョンの S3 バケットにアップロードし、ファイルを公開します。プライベート S3 アーカイブを使用することもできますが、この例ではパブリックアーカイブで十分であり、作業がいくらかシンプルになります。

   1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

   1. `us-west-1` 内にバケットがまだ存在しない場合は、[**Create Bucket**] (バケットを作成する) を選択して、バケットを米国西部 (カリフォルニア北部)リージョン内に作成します。

   1. バケットリストの中からファイルをアップロードしたいバケットの名前を選択し、[**Upload**] を選択します。

   1. [**Add Files**] を選択します。

   1. アップロードするアーカイブを選択し、[**Open**] を選択します。

   1. [**Upload - Select Files and Folders**] ダイアログの下部で、[**Set Details**] を選択します。

   1. [**Set Details**] ダイアログの下部で、[**Set Permissions**] を選択します。

   1. [**Set Permissions**] ダイアログで、[**Make everything public**] を選択します。

   1. [**Set Permissions**] ダイアログの下部で、[**Start Upload**] を選択します。アップロードが終了すると、`iis-cookbook.zip` ファイルがバケット内に表示されます。

   1. バケットを選択し、選択したバケットの [**Properties**] タブを選択します。[**Link**] の横で、後で使用できるように、アーカイブファイルの URL を記録します。

   Amazon S3 バケットへのファイルのアップロードの詳細については、*「Amazon S3 Console User Guide」*(Amazon S3 コンソールユーザーガイド) で[「How Do I Upload Files and Folders to an S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html) (S3 バケットにファイルとフォルダをアップロードする方法) を参照してください。

**重要**  
この時点までで、ウォークスルーにかかるコストはほんのわずかです。 OpsWorks スタックサービス自体は無料です。ただし、Amazon S3 ストレージなど、使用する AWS リソースには料金がかかります。アーカイブをアップロードするとすぐに料金が発生し始めます。詳細については、「[AWS の料金](https://aws.amazon.com/pricing/)」を参照してください。

**スタックのカスタムクックブックを有効にするには**

1.  OpsWorks スタックコンソールで、ナビゲーションペインで**スタック**を選択し、右上の**スタック設定**を選択します。

1. [**Settings**] ページの右上にある [**Edit**] を選択します。

1. [**Settings**] ページで、[**Use custom Chef cookbooks**] を [**Yes**] に設定し、次の情報を入力します。
   + [リポジトリタイプ] - **[S3 Archive]** (S3 アーカイブ)
   + [リポジトリ URL] - 以前に記録したクックブックアーカイブファイルの S3 URL。

1. [**Save**] を選択してスタック設定を更新します。

OpsWorks スタックは、すべての新しいインスタンスにカスタムクックブックをインストールします。 OpsWorks スタックは、オンラインインスタンスにはカスタムクックブックを自動的にインストールまたは更新しない点に注意してください。これは、後で説明するように、手動で行うことができます。

# ステップ 2.4: IISレイヤーを追加する
<a name="gettingstarted-windows-iis-layer"></a>

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

クックブックには、IIS のインストールと起動のみ行うレシピが 1 つあります。これは、レイヤーを作成し、動作している IIS インスタンスがあることを確認するのに十分です。後で、レイヤーにアプリケーションデプロイ機能を追加します。

## レイヤーの作成
<a name="w2ab1c14c47c17c23c23b7"></a>

まず、スタックにレイヤーを追加します。次に、適切なライフサイクルイベントにカスタムレシピを割り当てることによって、そのレイヤーに機能を追加します。

**IISレイヤーをスタックに追加するには**

1. ナビゲーションペインで [**Layers**] (レイヤー) を選択し、[**Add a layer**] (レイヤーの追加) を選択します。

1. レイヤーを次のように設定します。
   + [**Name**] (名前) - **IISExample** 
   + [**Short name**] (短縮名) - **iisexample** 

     OpsWorks スタックは短縮名を使用して内部的にレイヤーを識別します。短縮名を使用してレシピ内のレイヤーを識別することもできますが、この例はそうしていません。短縮名を指定できますが、小文字の英数字と少数の句読点のみ使用できます。詳細については、「[カスタムレイヤー](workinglayers-custom.md)」を参照してください。

1. [**Add Layer**] を選択します。

この時点でインスタンスを IISWalkthrough に追加して起動した場合、 OpsWorks スタックによりクックブックが自動的にインストールされますが、`install.rb` は実行されません。インスタンスがオンラインになった後、[Execute Recipes スタックコマンド](workingstacks-commands.md)を使用してレシピを手動で実行できます。ただし、より良い方法は、レイヤーの[ライフサイクルイベント](workingcookbook-events.md)のいずれかにレシピを割り当てることです。 OpsWorks スタックは、インスタンスのライフサイクルの適切な時点でレシピを自動的に実行します。

インスタンスの起動が完了したら、すぐに IIS をインストールして起動します。これを行うには、`install.rb` をレイヤーの `Setup` イベントに割り当てます。

**ライフサイクルイベントにレシピを割り当てるには**

1. ナビゲーションペインで [**Layers**] (レイヤー) を選択します。

1. [**IISExample**]レイヤーのボックスで、[**Recipes**] を選択します。

1. 右上の [**Edit**] を選択します。

1. [**Custom Chef Recipes**] の [**Setup**] レシピボックスに「**iis-cookbook::install**」と入力します。
**注記**  
`cookbook-name::recipe-name` を使用してレシピを識別します。このとき、レシピ名の `.rb` サフィックスは省略します。

1. [**\$1**] を選択してレシピをレイヤーに追加します。後で簡単に削除できるように、赤色の x がレシピの横に表示されます。

1. [**Save**] を選択して新しい設定を保存します。カスタム Setup レシピに `iis-cookbook::install` が含まれるようになります。

## インスタンスをレイヤーに追加して起動
<a name="w2ab1c14c47c17c23c23b9"></a>

レイヤーにインスタンスを追加してインスタンスを起動することで、レシピを試すことができます。 OpsWorks スタックは、インスタンスの起動が完了するとすぐに、クックブックを自動的にインストールし、セットアップ`install.rb`中に実行します。

**インスタンスをレイヤーに追加して起動するには**

1.  OpsWorks スタックナビゲーションペインで、**インスタンス**を選択します。

1. **[IISExample Layer]**レイヤーで、**[Add an instance]** を選択します。

1. 適切なサイズを選択します。この例では、**t2.micro** (または利用可能な最小サイズ) で十分です。

1. [**Add Instance**] を選択します。デフォルトでは、 OpsWorks スタックはレイヤーの短縮名に整数を追加してインスタンス名を生成するため、インスタンスには **iisexample1** という名前を付ける必要があります。

1. インスタンスの**アクション**列で**開始**を選択してインスタンスを起動します。 OpsWorks スタックは EC2 インスタンスを起動し、Setup レシピを実行して設定します。この時点で Layer に Deploy レシピがある場合、 OpsWorks Stacks は Setup レシピの完了後にそれらを実行します。

   プロセスには数分かかる場合があり、その間 [**Status**] 列には一連のステータスが表示されます。ステータスが [**online**] になると、設定プロセスが完了し、インスタンスが使用可能になります。

## IIS がインストールおよび実行されたことの確認
<a name="w2ab1c14c47c17c23c23c11"></a>

RDP を使用してインスタンスに接続し、Setup レシピが正常に機能していることを確認できます。

**IIS がインストールおよび実行されたことを確認するには**

1. ナビゲーションペインでインスタンスを選択し**、iisexample1 **インスタンスの **Actions** 列で **rdp** を選択します。 OpsWorks スタックは、指定した期間後に期限切れになる RDP パスワードを自動的に生成します。 ****

1. [**Session valid for**] を 2 時間に設定し、[**Generate Password**] を選択します。

1. OpsWorks スタックにはパスワードと、インスタンスのパブリック DNS 名とユーザー名が表示されます。3 つすべてをコピーして、[**Acknowledge and close**] をクリックします。

1. RDP クライアントを開き、ステップ 3 のデータを使用してインスタンスに接続します。

1. インスタンスで、Windows エクスプローラを開いて `C:` ドライブを調べます。IIS のインストールにより作成された `C:\inetpub` ディレクトリがあります。

1. [コントロール パネル] の [**管理ツール**] アプリケーションを開き、[**サービス**] を開きます。リストの一番下近くに IIS サービスが表示されています。「World Wide Web Publishing サービス」という名前で、ステータスは [**実行中**] になっています。

1.  OpsWorks スタックコンソールに戻り、**iisexample1** インスタンスのパブリック IP アドレスを選択します。これは、Amazon EC2 OpsWorks コンソールではなく スタックで実行してください。これにより、自動的に HTTP リクエストがそのアドレスに送信され、デフォルトの IIS ようこそページが開きます。

次のトピックでは、アプリケーションをインスタンス (この例では、シンプルな静的 HTML ページ) にデプロイする方法について説明します。ただし、休憩したい場合は、の **[iisexample1]** インスタンスの **[Actions]** (アクション) 列で **[stop]** (停止) を選択すると、インスタンスが停止し、不要な料金が発生するのを防ぐことができます。続行する準備が整ったら、インスタンスを再起動します。

# ステップ 2.5: アプリケーションをデプロイする
<a name="gettingstarted-windows-deploy"></a>

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

IIS のインストールにより、アプリケーションのコードと関連ファイルに使用される `C:\inetpub\wwwroot` ディレクトリが作成されます。次のステップとして、そのディレクトリにアプリケーションをインストールします。この例では、静的 HTML ホーム ページ `default.html` を `C:\inetpub\wwwroot` にインストールします。一般的なアプローチを簡単に拡張して、ASP.NET アプリケーションなど、より複雑なシナリオを扱うことができます。

アプリケーションのファイルをクックブックに含めて、`install.rb` がそれらのファイルを `C:\inetpub\wwwroot` にコピーするようにすることができます。これを行う方法の例については、「[例 6: ファイルの作成](cookbooks-101-basics-files.md)」を参照してください。ただし、このアプローチは柔軟性や効率性があまり高くないため、通常はクックブック開発をアプリケーション開発と分割することをお勧めします。

推奨される解決策は、リポジトリ (クックブックのリポジトリだけでなく、任意のリポジトリ) からアプリケーションのコードと関連ファイルを取得し、各 IIS サーバーインスタンスにインストールする個別のデプロイレシピを実装することです。このアプローチにより、アプリケーション開発からクックブック開発が分割されるため、アプリケーションを更新する必要があるときは、クックブックを更新しなくてもデプロイレシピだけを再度実行することができます。

このトピックでは、IIS Server に `default.htm` をデプロイするシンプルなデプロイレシピを実装する方法を説明します。この例は、より複雑なアプリケーションに簡単に拡張できます。

**Topics**
+ [アプリケーションの作成とリポジトリへの保存](#w2ab1c14c47c17c23c25c15)
+ [レシピの実装によるアプリケーションのデプロイ](#w2ab1c14c47c17c23c25c17)
+ [インスタンスのクックブックの更新](#w2ab1c14c47c17c23c25c19)
+ [カスタム IISレイヤーへのレシピの追加](#w2ab1c14c47c17c23c25c21)
+ [アプリケーションの追加](#w2ab1c14c47c17c23c25c23)
+ [アプリケーションのデプロイとアプリケーションの実行](#w2ab1c14c47c17c23c25c25)

## アプリケーションの作成とリポジトリへの保存
<a name="w2ab1c14c47c17c23c25c15"></a>

アプリケーションにはどのリポジトリでも使用できます。わかりやすいように、この例では `default.htm` をパブリック S3 バケットに保存します。

**アプリケーションを作成するには**

1. ワークステーション上の適切な場所に、`iis-application` というディレクトリを作成します。

1. `iis-application` に、次のコンテンツを含む `default.htm` ファイルを追加します。

   ```
   <!DOCTYPE html>
   <html>
     <head>
       <title>IIS Example</title>
     </head>
     <body>
       <h1>Hello World!</h1>
     </body>
   </html>
   ```

1. [S3 バケットを作成](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html)し、[`default.htm`をバケットにアップロード](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html)して、後で使用できるよう URL を記録しておきます。わかりやすいよう、[ファイルを公開](https://docs.aws.amazon.com/AmazonS3/latest/gsg/OpeningAnObject.html)します。
**注記**  
これは、とてもシンプルなアプリケーションですが、基本的な原則を拡張して本稼働レベルのアプリケーションを扱うことができます。  
複数のファイルを含むより複雑なアプリケーションの場合、通常は `iis-application` の .zip アーカイブを作成し、S3 バケットにアップロードした方がシンプルです。  
アップロード後には .zip ファイルをダウンロードし、内容を適切なディレクトリに展開できます。複数のファイルをダウンロードしたり、ディレクトリ構造を作成したりする必要はありません。
本稼働アプリケーションの場合、ファイルを秘密にすることができます。レシピがプライベート S3 バケットからファイルをダウンロードできるようにする方法の例は、「[スタック Windows インスタンスでの SDK for Ruby OpsWorks の使用](cookbooks-101-opsworks-s3-windows.md)」を参照してください。
アプリケーションは、任意の適切なリポジトリに保存できます。  
通常は、リポジトリのパブリック API を使用してアプリケーションをダウンロードします。この例では、Amazon S3 API を使用します。たとえば、アプリケーションを GitHub に保存した場合、[GitHub API](https://developer.github.com/guides/getting-started/) を使用できます。

## レシピの実装によるアプリケーションのデプロイ
<a name="w2ab1c14c47c17c23c25c17"></a>

以下のコンテンツを含む `deploy.rb` という名前のレシピを `iis-cookbook` `recipes` ディレクトリに追加します。

```
chef_gem "aws-sdk-s3" do
  compile_time false
  action :install
end

ruby_block "download-object" do
  block do
    require 'aws-sdk-s3'

    #1  
    # Aws.config[:ssl_ca_bundle] = 'C:\ProgramData\Git\bin\curl-ca-bundle.crt'
    Aws.use_bundled_cert!

    #2  
    query = Chef::Search::Query.new
    app = query.search(:aws_opsworks_app, "type:other").first
    s3region = app[0][:environment][:S3REGION]
    s3bucket = app[0][:environment][:BUCKET]
    s3filename = app[0][:environment][:FILENAME]

    #3  
    s3_client = Aws::S3::Client.new(region: s3region)
    s3_client.get_object(bucket: s3bucket,
                         key: s3filename,
                         response_target: 'C:\inetpub\wwwroot\default.htm')
  end 
  action :run
end
```

この例では [[SDK for Ruby v2]](https://docs.aws.amazon.com/sdkforruby/api/index.html) を使用してファイルをダウンロードします。ただし、 OpsWorks スタックはこの SDK を Windows インスタンスにインストールしないため、レシピはそのタスクを処理する [https://docs.chef.io/chef/resources.html#chef-gem](https://docs.chef.io/chef/resources.html#chef-gem)リソースで始まります。

**注記**  
`chef_gem` リソースは、gem を Chef の専用 Ruby バージョン (そのレシピが使用するバージョン) にインストールします。システム全体の Ruby バージョンに gem をインストールする場合、[gem\$1package](https://docs.chef.io/chef/resources.html#gem-package) リソースを使用します。

レシピの大部分は [https://docs.chef.io/chef/resources.html#ruby-block](https://docs.chef.io/chef/resources.html#ruby-block) リソースで、SDK for Ruby を使用して `default.htm` をダウンロードする Ruby コードのブロックを実行します。`ruby_block` 内のコードは以下のセクションに分割できます。それぞれ、コード例の番号付きコメントに対応します。

**1: 証明書バンドルの指定**  
Amazon S3 は SSL を使用するため、S3 バケットからオブジェクトをダウンロードするために適切な証明書が必要です。SDK for Ruby v2 には証明書バンドルが含まれていないため、証明書バンドルを指定して SDK for Ruby で使用するように設定する必要があります。 OpsWorks スタックは証明書バンドルを直接インストールしませんが、証明書バンドル () を含む Git をインストールします`curl-ca-bundle.crt`。便宜上、この例では Git の証明書バンドルを SSL に使用するように SDK for Ruby を設定します。独自のバンドルをインストールして、それに応じて SDK を設定することもできます。

**2: リポジトリデータの取得**  
Amazon S3 からオブジェクトをダウンロードするには、AWS のリージョン、バケット名、キー名が必要です。後で説明するように、この例では、一連の環境変数をアプリと関連付けることでこの情報を提供します。アプリケーションをデプロイすると、 OpsWorks スタックはインスタンスのノードオブジェクトに一連の属性を追加します。これらの属性は本質的に、アプリケーションの設定 (環境変数など) を含むハッシュテーブルです。このアプリケーションのアプリケーション属性は、次のようになります (JSON 形式)。  

```
{
  "app_id": "8f71a9b5-de7f-451c-8505-3f35086e5bb3",
  "app_source": {
      "password": null,
      "revision": null,
      "ssh_key": null,
      "type": "other",
      "url": null,
      "user": null
  },
  "attributes": {
      "auto_bundle_on_deploy": true,
      "aws_flow_ruby_settings": {},
      "document_root": null,
      "rails_env": null
  },
  "data_sources": [{"type": "None"}],
  "domains": ["iis_example_app"],
  "enable_ssl": false,
  "environment": {
      "S3REGION": "us-west-2",
      "BUCKET": "windows-example-app",
      "FILENAME": "default.htm"
  },
  "name": "IIS-Example-App",
  "shortname": "iis_example_app",
  "ssl_configuration": {
      "certificate": null,
      "private_key": null,
      "chain": null
  },
  "type": "other",
  "deploy": true
}
```
アプリケーションの環境変数は、`[:environment]` 属性に保存されます。環境変数を取得するには、Chef 検索クエリを使用してアプリケーションのハッシュテーブルを取得します。このテーブルは、`aws_opsworks_app` ノード配下にあります。このアプリは、`other` タイプとして定義されるため、クエリはそのタイプのアプリケーションを検索します。レシピは、このインスタンスにはアプリケーションが 1 つしかないという事実を利用しているため、対象となるハッシュテーブルは `app[0]` だけです。便宜上の理由で、レシピはその後リージョン、バケット、ファイル名を変数に割り当てます。  
Chef 検索の使用方法の詳細については、「[Chef の検索での属性値の取得](cookbooks-101-opsworks-opsworks-stack-config-search.md)」を参照してください。

**3: ファイルのダウンロード**  
レシピの 3 番目の部分では、[S3 クライアントオブジェクト](https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html)が作成され、その `[get\$1object](https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html#get_object-instance_method)` メソッドを使用して `default.htm` がインスタンスの `C:\inetpub\wwwroot` ディレクトリにダウンロードされます。

**注記**  
レシピは Ruby アプリケーションであるため、Ruby コードは必ずしも `ruby_block` に存在する必要はありません。ただし、レシピの本文のコードが最初に実行され、その後リソースが順番に実行されます。この例では、レシピ本文にダウンロードコードを配置しようとすると、`chef_gem` リソースによりまだ SDK for Ruby がインストールされていないため失敗します。`chef_gem` リソースが SDK for Ruby をインストールした後、そのリソースが実行される際に `ruby_block` リソース内のそのコードが実行されます。

## インスタンスのクックブックの更新
<a name="w2ab1c14c47c17c23c25c19"></a>

OpsWorks スタックは、新しいインスタンスにカスタムクックブックを自動的にインストールします。ただし、既存のインスタンスを使用しているため、クックブックを手動で更新する必要があります。

**インスタンスのクックブックを更新するには**

1. `iis-cookbook` の `.zip` アーカイブを作成し、S3 バケットにアップロードします。

   これにより既存のクックブックが上書きされますが、URL は変更されないため、スタック設定の更新は不要です。

1. インスタンスがオンラインでない場合は再起動してください。

1. インスタンスがオンラインになったら、ナビゲーションペインで **[Stack]** を選択し、**[Run Command]** を選択します。

1. **[Command]** で、[[Update Custom Cookbooks]](workingstacks-commands.md) を選択します。このコマンドを実行すると、更新されたクックブックがインスタンスにインストールされます。

1. [**Update Custom Cookbooks**] を選択します。コマンドの実行完了までには数分かかることがあります。

## カスタム IISレイヤーへのレシピの追加
<a name="w2ab1c14c47c17c23c25c21"></a>

`install.rb` と同様、デプロイを処理するには、`deploy.rb` を適切なライフサイクルイベントに割り当てることをお勧めします。通常は、Deploy イベントにデプロイレシピを割り当てます。それらは、まとめて Deploy レシピと呼ばれます。レシピを Deploy イベントに割り当ててもイベントはトリガーされません。代わりに、次のようになります。
+ 新しいインスタンスの場合、 OpsWorks スタックは Setup レシピの完了後に Deploy レシピを自動的に実行するため、新しいインスタンスは自動的に現在のアプリケーションバージョンになります。
+ オンラインインスタンスでは、[デプロイコマンド](workingapps-deploying.md)を使用して新しいアプリケーションまたは更新されたアプリケーションを手動でインストールします。

  このコマンドはスタックのインスタンスで Deploy イベントをトリガーし、これによって Deploy レシピが実行されます。

**レイヤーの Deploy イベントに deploy.rb を割り当てるには**

1. ナビゲーションペインで**［レイヤー］**を選択し、続いて**［レイヤーのIISExample］**の**［レシピ］**を選択します。

1. **[Custom Chef Recipes]** で、[ **iis-cookbook::deploy**] を **[デプロイ]** レシピボックスに追加し、[**\$1**] を選択してレシピをレイヤーに追加します。

1. [**Save**] を選択して新しい設定を保存します。カスタム Deploy レシピに `iis-cookbook::deploy` が含まれるようになります。

## アプリケーションの追加
<a name="w2ab1c14c47c17c23c25c23"></a>

最後のタスクでは、スタックにアプリケーションを追加して、 OpsWorks スタック環境でアプリケーションを表します。アプリケーションには、アプリケーションの表示名などのメタデータと、リポジトリからアプリケーションをダウンロードするのに必要なデータが含まれます。

**アプリケーションをスタックに追加するには**

1. ナビゲーションペインで **[Apps]** を選択し、**[Add an app]** を選択します。

1. 以下の設定を使用してアプリケーションを設定します。
   + **[Name]** (名前) - I **IIS-Example-App**
   + **[Repository Type]** (リポジトリタイプ) - **[Other]** (その他)
   + **[Environment Variables]** (環境変数) 以下の３つの環境変数を追加します。
     + **S3REGION** - バケットのリージョン (この場合は `us-west-1`)。
     + **BUCKET** - バケット名 (`windows-example-app` など)。
     + **FILENAME** - ファイル名 (**default.htm**)。

1. 残りの設定はデフォルト値をそのまま使い、[**Add App**] を選択してアプリケーションをスタックに追加します。

**注記**  
この例では、ダウンロードデータを提供するために環境変数を使用します。別の方法は、S3 Archive リポジトリタイプを使用してファイルの URL を提供することです。 OpsWorks スタックは、AWS 認証情報などのオプションデータとともに情報をアプリケーションの `app_source` 属性に追加します。デプロイしたレシピは、URL をアプリケーション属性から取得して解析し、リージョン、バケット名およびファイル名を抽出できなければなりません。

## アプリケーションのデプロイとアプリケーションの実行
<a name="w2ab1c14c47c17c23c25c25"></a>

OpsWorks スタックは、アプリケーションを自動的に新しいインスタンスにデプロイしますが、オンラインインスタンスにはデプロイしません。インスタンスは既に実行されているため、アプリケーションを手動でデプロイする必要があります。

**アプリケーションをデプロイするには**

1. ナビゲーションペインで**「アプリケーション」**を選択し、続いてアプリの**「アクション」**列で**「デプロイ」**を選択します。

1. **[Command]** は **[Deploy]** に設されていなければなりません。**[Deploy App]** (デプロイアプリケーション) ページの右下で **[Deploy]** (デプロイ) を選択します。コマンドの実行完了までには数分かかることがあります。

   デプロイメントが完了したら、[**Apps**] ページに戻ります。[**Status**] インジケータには緑で [**successful**] と表示され、アプリケーション名の横には、デプロイメントの正常終了を示す緑のチェックマークが表示されます。

**注記**  
Windows アプリケーションは常に [**Other**] アプリケーションタイプのため、アプリケーションをデプロイすると次の処理が実行されます。  
前述のとおり、アプリケーションのデータが、[スタック設定とデプロイ属性](workingcookbook-json.md)に追加されます。
カスタム Deploy レシピを実行する Deploy イベントがスタックのインスタンスでトリガーされます。

**注記**  
失敗したデプロイまたはアプリケーションをトラブルシューティングする方法についての詳細は、[レシピのデバッグ](troubleshoot-debug.md) を参照してください。

アプリケーションがインストールされます。**[Navigation]** (ナビゲーション) ペインで **[Instances]** (インスタンス) を選択し、続いてインスタンスのパブリック IP アドレスを選択することで開くことができます。これにより、HTTP リクエストがインスタンスに送信され、ブラウザに次のように表示されます。

![\[Text displaying "Hello World!" in large, bold font against a white background.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/windows-iis-app.png)


# ステップ 3: IISExample の拡張
<a name="gettingstarted-windows-scale"></a>

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

受信ユーザーリクエストが単一の t2.micro インスタンスで処理可能な制限に近づいている場合、サーバー容量を増やす必要があります。大きいインスタンスに移行できますが、制限があります。インスタンスをスタックに追加し、ロードバランサーの背後に配置すると、柔軟性が向上します。基本的なアーキテクチャは次のようになります。

![\[OpsWorks stack architecture with load balancer, Windows instances, and external repositories.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/php_walkthrough_arch_4_windows.png)


とりわけ、このアプローチには、単一の大きいインスタンスより堅牢性がかなり高いというメリットがあります。
+ いずれかのインスタンスが失敗した場合、ロードバランサーは受信リクエストを残りのインスタンスに分散し、アプリケーションは動作し続けます。
+ インスタンスを異なるアベイラビリティーゾーンに置いた場合 (推奨される方法)、アベイラビリティーゾーンで問題が発生してもアプリケーションが動作し続けます。

OpsWorks スタックを使用すると、スタックを簡単にスケールアウトできます。このセクションでは、2 番目の 24/7 PHP App Server インスタンスを IISExample に追加し、両方のインスタンスを Elastic Load Balancing ロードバランサーの後ろに配置することにより、スタックをスケールアウトする方法の基本について説明します。プロシージャを簡単に拡張して任意の数の 24/7 インスタンスを追加したり、時間ベースのインスタンスを使用して OpsWorks スタックでスタックを自動的にスケーリングしたりできます。詳細については、「[時間ベースおよび負荷ベースのインスタンスによる負荷の管理](workinginstances-autoscaling.md)」を参照してください。

# ロードバランサーの追加
<a name="gettingstarted-windows-scale-elb"></a>

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

Elastic Load Balancing は、受信したアプリケーショントラフィックを複数の Amazon EC2 インスタンスに自動的に分散する AWS のサービスです。ロードバランサーで 2 つの目的を達成できます。明らかな目的は、アプリケーションサーバーで負荷を均等化することです。多くのサイトでは、ユーザーがアプリケーションサーバーおよびデータベースに直接アクセスできないようにすることが求められます。Elastic Load Balancing は、トラフィックの分散の他に、以下も行実行します。
+ 健全でない Amazon EC2 インスタンスを検出します。

  問題のあるインスタンスが復旧するまで、トラフィックのルートを残りの正常なインスタンスに変更します。
+ 受信トラフィックに応じて、自動的にそのリクエスト処理能力を拡張します。

**注記**  
OpsWorks スタックは Application Load Balancer をサポートしていません。Classic Load Balancer は、 OpsWorks スタックでのみ使用できます

Elastic Load Balancing はよくレイヤーと呼ばれますが、他のビルトインレイヤーとは動作が多少異なります。レイヤーを作成してインスタンスを追加する代わりに、Amazon EC2 コンソールを使用して Elastic Load Balancing ロードバランサーを作成し、それを既存のレイヤーの 1 つ、通常はアプリケーションサーバーレイヤーにアタッチします。 OpsWorks スタックはレイヤーの既存のインスタンスをサービスに登録し、新しいインスタンスを自動的に追加します。次の手順では、ロードバランサーを追加する方法について説明します。

**ロードバランサーをカスタム IISレイヤーにアタッチするには**

1. Amazon EC2 コンソールを使用して、IISExample の新しいロードバランサーを作成します。詳細については、「[Elastic Load Balancing の開始方法](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html)」を参照してください。[**Create Load Balancer**] ウィザードを実行するときに、ロードバランサーを次のように設定します。  
**1: ロードバランサーの定義**  
ロードバランサーに IIS-LB OpsWorks などのわかりやすい名前を割り当てて、 スタックコンソールで見つけやすくします。残りの設定のデフォルト値を受け入れ、[**Next: Assign Security Groups**] を選択します。  
**2: セキュリティグループの割り当て**  
アカウントでデフォルト VPC がサポートされている場合は、このページがウィザードに表示され、ロードバランサーのセキュリティグループを決定できます。EC2 Classic の場合、このページは表示されません。  
このウォークスルーでは、[**default VPC security group**] を指定し、[**Next: Configure Security Settings**] を選択します。  
**3: セキュリティ設定の構成**  
このウォークスルーでは、ロードバランサーでセキュアリスナー (フロントエンド接続の HTTPS または SSL) を使用する必要があるため、続行するには [**Next: Configure Health Check**] を選択します。  
**4: ヘルスチェックの設定**  
ping のパスを **/** に設定します。残りの設定のデフォルト値を受け入れ、[**Next: Add EC2 Instances**] を選択します。  
**5: EC2 インスタンスの追加**  
OpsWorks スタックは、ロードバランサーへのインスタンスの登録を自動的に処理します。[**Next Add Tags**] を選択して続行します。  
**6: タグの追加**  
この例ではタグを使用しません。[**Review and Create**] を選択します。  
**7: 確認**  
選択を確認して [**Create**] を選択し、[**Close**] を選択すると、ロードバランサーが起動します。

1. アカウントでデフォルト VPC がサポートされている場合は、ロードバランサーを起動した後で、セキュリティグループに適切なインバウンドルールがあることを確認する必要があります。デフォルトルールでは、着信トラフィックは受け入れられません。

   1. Amazon EC2 のナビゲーションペインで、**[Security Groups]** (セキュリティグループ)を選択します。

   1. [**default VPC security group**] を選択します。

   1. [**インバウンド**] タブで、[**編集**] を選択します。

   1. このウォークスルーでは、**[Source]** を **[Anywhere]** に設定します。これにより、ロードバランサーでは任意の IP アドレスからの着信トラフィックを受け入れます。

   1. **[保存]** をクリックします。

1.  OpsWorks スタックコンソールに戻ります。[**Layers**] (レイヤー) ページで、[**Network**] (ネットワーク) を選択します。

1. [**Elastic Load Balancing**] で、ステップ 1 で作成した IIS-LB ロードバランサーを選択し、[**Save**] をクリックします。

   ロードバランサーをレイヤーにアタッチすると、 OpsWorks スタックはレイヤーの現在のインスタンスを自動的に登録し、オンラインになると新しいインスタンスを追加します。

1. [**Layers**] (レイヤー) ページで、ロードバランサーの名前をクリックして詳細ページを開きます。ロードバランサーページのインスタンスの横のチェックマークは、インスタンスがヘルスチェックに合格したことを示します。

これで、ロードバランサーにリクエストを送信することによって IIS-Example-App を実行できます。

**ロードバランサーを通じて IIS-Example-App を実行するには**

1. [**Layers**] (レイヤー) を選択します。IIS-ELB ロードバランサーがレイヤーとして一覧表示され、[Health] 列には正常なインスタンスを示す緑色のインスタンスが 1 つ表示されます。

1. ロードバランサーの DNS 名を選択して IIS-Example-App を実行します。これは、ロードバランサーの名前の下に一覧表示され、`IIS-LB-1802910859.us-west-2.elb.amazonaws.com` のように表示されます。ロードバランサーがインスタンスにリクエストを転送すると、レスポンスが返されます。これは、インスタンスのパブリック IP アドレスをクリックした場合と同じレスポンスになります。

この時点ではインスタンスが 1 個しかないため、ロードバランサーがあっても実際にはそれほど変わりません。ただし、レイヤーにインスタンスを追加できます。

**インスタンスをレイヤーに追加するには**

1. [**Instances**] を選択し、[**\$1 instance**] を選択して別のインスタンスをレイヤーに追加します。

1. インスタンスを起動します。

新しいインスタンスであるため、 OpsWorks スタックは現在のカスタムクックブックを自動的にインストールし、セットアップ中に現在のアプリケーションバージョンをデプロイします。インスタンスがオンラインになると、 OpsWorks スタックによってロードバランサーに自動的に追加されるため、インスタンスはすぐにリクエストの処理を開始します。アプリケーションがまだ動作していることを確認するには、ロードバランサーの DNS 名を再度選択できます。

# 次のステップ
<a name="gettingstarted-windows-what-next"></a>

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

このウォークスルーでは、シンプルな Windows アプリケーションサーバースタックのセットアップの基本について説明しました。ここでは、次のステップに関する推奨事項をいくつか示します。
+ 詳細については、 [使用開始: クックブック](gettingstarted-cookbooks.md)でクックブックの実装に関するチュートリアルを紹介し、 OpsWorks スタック固有の例をいくつか紹介します。
+ [[Amazon Relational Database Service (Amazon RDS) layer]](workinglayers-db-rds.md) をスタックに追加して、バックエンドデータベースサーバーとして使用することができます。アプリケーションをデータベースに接続する方法については、「[カスタムレシピの使用](workingapps-connectdb.md#workingapps-connectdb-custom)」を参照してください。

# OpsWorks スタックでのクックブックの開始方法
<a name="gettingstarted-cookbooks"></a>

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

通常、本番稼働レベルの OpsWorks スタックスタックにはカスタマイズが必要です。これは多くの場合、カスタム Chef クックブックを実装することを意味します。*クックブック*は、*レシピ*と呼ばれる手順を含む設定情報が含まれているパッケージファイルです。*レシピ*は、Ruby 言語構文で書かれ、使用するリソースとそれらのリソースを適用する順序を指定する、1 つ以上の指示のセットです。Chef で使用される*リソース*は、設定ポリシーのステートメントです。このチュートリアルでは、 スタック用の Chef OpsWorks クックブックを実装するための基本的な概要を説明します。Chef、クックブック、レシピ、およびリソースの詳細については、「[次のステップ](gettingstarted-cookbooks-next-steps.md)」のリンクを参照してください。

このウォークスルーでは、主にユーザー独自のクックブックを作成する方法について説明します。[Chef Supermarket](https://supermarket.chef.io) のようなウェブサイトで入手できるコミュニティ提供のクックブックを使用することもできます。コミュニティクックブックの使用を開始できるようにするため、このウォークスルーでは Chef Supermarket からのコミュニティクックブックを使用する手順が後述されています。

このウォークスルーを開始する前にいくつかの設定ステップを完了します。すでにこの章の他のウォークスルー (「[使用開始: サンプル](gettingstarted-intro.md)」など)を完了している場合、このウォークスルーの前提条件を満たしており、省略して「[このウォークスルーの開始](gettingstarted-cookbooks-create-cookbook.md)」に進むことができます。それ以外の場合、必ず[前提条件](gettingstarted-intro-prerequisites.md)を満たしてからこのウォークスルーに戻ってください。

**Topics**
+ [ステップ 1: クックブックを作成する](gettingstarted-cookbooks-create-cookbook.md)
+ [ステップ 2: スタックとそのコンポーネントを作成する](gettingstarted-cookbooks-create-stack.md)
+ [ステップ 3: レシピを実行し、テストする](gettingstarted-cookbooks-test-recipe.md)
+ [ステップ 4: クックブックを更新してパッケージをインストールする](gettingstarted-cookbooks-install-package.md)
+ [ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)
+ [ステップ 6: クックブックを更新してユーザーを追加する](gettingstarted-cookbooks-add-user.md)
+ [ステップ 7: クックブックを更新してディレクトリを作成する](gettingstarted-cookbooks-create-directory.md)
+ [ステップ 8: クックブックを更新してファイルを作成し、コピーする](gettingstarted-cookbooks-create-file.md)
+ [ステップ 9: クックブックを更新してコマンドを実行する](gettingstarted-cookbooks-run-command.md)
+ [ステップ 10: クックブックを更新してスクリプトを実行する](gettingstarted-cookbooks-run-script.md)
+ [ステップ 11: クックブックを更新してサービスを管理する](gettingstarted-cookbooks-manage-service.md)
+ [ステップ 12: カスタム JSON を使用するようにクックブックを更新する](gettingstarted-cookbooks-custom-json.md)
+ [ステップ 13: クックブックを更新してデータバッグを使用する](gettingstarted-cookbooks-data-bags.md)
+ [ステップ 14: クックブックを更新して繰り返しを使用する](gettingstarted-cookbooks-iteration.md)
+ [ステップ 15: クックブックを更新して条件付きロジックを使用する](gettingstarted-cookbooks-conditional-logic.md)
+ [ステップ 16: クックブックを更新してコミュニティクックブックを使用する](gettingstarted-cookbooks-community-cookbooks.md)
+ [ステップ 17: (オプション) クリーンアップする](gettingstarted-cookbooks-clean-up.md)
+ [次のステップ](gettingstarted-cookbooks-next-steps.md)

# ステップ 1: クックブックを作成する
<a name="gettingstarted-cookbooks-create-cookbook"></a>

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

クックブックの作成から開始します。ここで作成するクックブックは、実務で使い始めるのに十分なものではなく、このウォークスルーにおける残りの作業の基礎となるものです。

**注記**  
このステップでは、クックブックを手動で作成する方法を示します。ローカルのワークステーションでコマンド [https://docs.chef.io/ctl_chef.html#chef-generate-cookbook](https://docs.chef.io/ctl_chef.html#chef-generate-cookbook) を実行することにより、Chef開発キット [(Chef DK)](https://docs.chef.io/#chef-dk-title) を使用して、より短時間でクックブックを作成することができます。ただし、このコマンドでは、このウォークスルーで必要ではないフォルダとファイルがいくつか作成されます。

**クックブックを作成するには**

1. ローカルワークステーションで、`opsworks_cookbook_demo` という名前のディレクトリを作成します (別の名前を使用することはできますが、必ずこのウォークスルー全体でこれを `opsworks_cookbook_demo` に置き換えてください)。

1. `opsworks_cookbook_demo` ディレクトリで、テキストエディタを使い `metadata.rb` という名前のファイルを作成します。クックブックの名前を指定するには下記のコードを追加します。`metadata.rb` の詳細については、Chef ウェブサイトの [metadata.rb](https://docs.chef.io/config_rb_metadata.html) を参照してください。

   ```
   name "opsworks_cookbook_demo"
   ```

1. `opsworks_cookbook_demo` ディレクトリに `recipes` という名前のファイルを作成します。このサブディレクトリには、このウォークスルーのクックブック用に作成するすべてのレシピが含まれます。

1. `recipes` ディレクトリに `default.rb` という名前のファイルを作成します。このファイルにはファイルと同じ名前のレシピが含まれますが、ファイル拡張子がなく、`default` となります。次の 1 行のコードを、`default.rb` ファイルに追加します。このコードは、レシピの実行時にログにシンプルなメッセージを表示する 1 行のレシピです。

   ```
   Chef::Log.info("********** Hello, World! **********")
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルを作成します。これには、`opsworks_cookbook_demo` ディレクトリとそのコンテンツが含まれます。例えば: 

   ```
   tar -czvf opsworks_cookbook_demo.tar.gz opsworks_cookbook_demo/
   ```

   別のファイル名を使用することはできますが、必ずこのウォークスルー全体でこれを `opsworks_cookbook_demo.tar.gz` に置き換えてください。
**注記**  
Windows で `tar` ファイルを作成する場合、最上位ディレクトリはクックブックの親ディレクトリでなければなりません。このウォークスルーは、`tar` パッケージによって提供される **tar** コマンドを使用して Linux で、[[Git Bash]](https://git-for-windows.github.io/) で提供される **tar** コマンドを使って Windows でそれぞれテスト済みです。他のコマンドやプログラムを使用した、圧縮された TAR (.gz .tar) ファイルの作成は、予期どおりにならない可能性があります。

1. S3 バケットを作成するか、既存のバケットを使用します。詳細については、「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)」を参照してください。

1. `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。詳細については、「[バケットへのオブジェクトの追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html)」を参照してください。

これで、このウォークスルー全体で使用するクックブックが作成されました。

[次のステップ](gettingstarted-cookbooks-create-stack.md)では、後でクックブックをアップロードし、クックブックのレシピを実行するために使用する OpsWorks スタックスタックを作成します。

# ステップ 2: スタックとそのコンポーネントを作成する
<a name="gettingstarted-cookbooks-create-stack"></a>

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

 OpsWorks スタックスタックとそのコンポーネントを作成します。これにはレイヤーとインスタンスが含まれます。後のステップでは、インスタンスにクックブックをアップロードし、そのインスタンスでクックブックのレシピを実行します。

**スタックを作成するには**

1. [https://console.aws.amazon.com/opsworks](https://console.aws.amazon.com/opsworks) OpsWorks の スタックコンソールにサインインします。

1. 該当する場合、次のいずれかを実行します。
   + ** OpsWorks 「スタックへようこそ**」ページが表示されている場合は、**「最初のスタックを追加する**」または**「最初の OpsWorks スタックを追加する**」を選択します (どちらの選択も同じことを行います）。[**Add stack**] ページが表示されます。
   + [**OpsWorks Dashboard**] ページが表示された場合は、[**Add stack**] を選択します。[**Add Stack**] ページが表示されます。

1. [**Chef 12 stack**] を選択します。

1. [**Stack name**] ボックスに、スタック名 (たとえば **MyCookbooksDemoStack**) を入力します。別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `MyCookbooksDemoStack` に置き換えてください。

1. [**リージョン**] で [**米国西部 (オレゴン)]** を選択します。

1. [**VPC**] で、次のいずれかを実行します。
   + VPC が利用できる場合は、これを選択します。詳細については、「[VPC でのスタックの実行](workingstacks-vpc.md)」を参照してください。
   + それ以外の場合、[**No VPC**] を選択します。

1. [**Use custom Chef cookbooks**] で、[**Yes**] を選択します。

1. [**Repository type**] で、[**S3 Archive**] を選択します。
**注記**  
[入門ガイド: Linux](gettingstarted-linux.md) のウォークスルーでは、[**Http Archive**] を選択しました。ここでは、必ず代わりに [**S3 Archive**] を選択します。

1. [**リポジトリの URL**] で、S3 の `opsworks_cookbook_demo.tar.gz` ファイルへのパスを入力します。パスを取得するには、S3 コンソールで、`opsworks_cookbook_demo.tar.gz` ファイルを選択します。[**Properties**] ペインで、[**Link**] フィールドの値をコピーします (これに似たものになるはずです。`https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz`)

1. S3 バケットがデフォルトであるプライベートである場合、**[Access key ID]** (アクセスキー ID) とおよび **[Secret access key]**(シークレットアクセスキー) で、このウォークスルーに使用している IAM ユーザーのアクセスキー ID およびシークレットアクセスキーを入力します。詳細については、「[オブジェクトに対するアクセス許可を編集する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EditingPermissionsonanObject.html)」および「[他ユーザーとのオブジェクトの共有](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html)」を参照してください。

1. 以下はデフォルト値のままにします。
   + [**Default Availability Zone**] (**us-west-2a**)
   + **Default operating system** (デフォルトオペレーティングシステム) **(Linux** および **Amazon Linux 2016.09)**
   + [**Default SSH key**] (**Do not use a default SSH key**)
   + [**Stack color**] (dark blue)

1. **[Advanced]** (アドバンスト) を選択します。

1. **[IAM role]** (IAM ロール) で、次のいずれかを実行します。
   + [**aws-opsworks-service-role**] が利用できる場合は、これを選択します。
   + [**aws-opsworks-service-role**] が利用できない場合は、[**New IAM role**] を選択します。

1. **Default IAM instance profile** (デフォルト IAM インスタンスプロファイル) で、次のいずれかを実行します。
   + [**aws-opsworks-ec2-role**] が利用できる場合は、これを選択します。
   + **[aws-opsworks-ec2-role]** を利用できない場合は、**[New IAM instance profile]** (新しい IAM インスタンスプロファイル) を選択します。

1. 以下はデフォルト値のままにします。
   + [**Default root device type**] (**EBS backed**)
   + [**Hostname theme**] (**Layer Dependent**)
   + [**OpsWorks Agent version**] (最新バージョン)
   + [**Custom Chef JSON**] (空白)
   + [**Security**]、[**Use OpsWorks security groups**] (**Yes**)

1. **スタックの追加**を選択します。 OpsWorks スタックはスタックを作成し、**MyCookbooksDemoStack** ページを表示します。

**レイヤーを作成するには**

1. サービスナビゲーションペインで、[**Layers**] (レイヤー) を選択します。[**Layers**] (レイヤー) ページが表示されます。

1. [**Add a layer**] (レイヤーを追加) を選択します。

1. [**OpsWorks**] タブで、[**Name**] に「**MyCookbooksDemoLayer**」と入力します。別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `MyCookbooksDemoLayer` に置き換えてください。

1. [**Short name**] に、「**cookbooks-demo**」と入力します。別の名前を入力することはできますが、必ずこのウォークスルー全体でこれを `cookbooks-demo` に置き換えてください。

1. **レイヤーの追加**を選択します。 OpsWorks スタックはレイヤーを追加し、**レイヤー**ページを表示します。

**インスタンスを作成して起動するには**

1. サービスのナビゲーションペインで、[**Instances**] を選択します。[**Instances**] ページが表示されます。

1. **[インスタンスを追加する]** を選択します。

1. [**New**] タブの [**Advanced**] を選択します。

1. 以下はデフォルト値のままにします。
   + [**Hostname**] (**cookbooks-demo1**)
   + [**Size**] (**c3.large**)
   + [**Subnet**] (*IP アドレス* **us-west-2a**)
   + **Scaling type** (**24/7**)
   + [**SSH key**] (**Do not use a default SSH key**)
   + **オペレーティングシステム**: **(Amazon Linux 2016.09)**
   + [**OpsWorks Agent version**] (**Inherit from stack**)
   + [**Tenancy**] (**Default - Rely on VPC settings**)
   + [**Root device type**] (**EBS backed**)
   + [**Volume type**] (**General Purpose (SSD)**)
   + [**Volume size**] (**8**)

1. [**Add instance**] を選択します。

1. [**MyCookbooksDemoLayer**] で、[**cookbooks-demo1**] および [**Actions**] の [**start**] を選択します。[**Status**] が [**online**] に変わるまで進まないでください。このプロセスは完了までに数分かかることがあるため、しばらくお待ちください。

これで、スタック、レイヤー、およびクックブックが S3 バケットから自動的にコピーされたインスタンスが用意できました。[次のステップ](gettingstarted-cookbooks-test-recipe.md)では、インスタンスのクックブック内からデフォルトのレシピを実行し、テストします。

# ステップ 3: レシピを実行し、テストする
<a name="gettingstarted-cookbooks-test-recipe"></a>

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

 OpsWorks スタックがインスタンスにコピーしたクックブック内から`default`レシピを実行してテストします。すでに説明したように、これはレシピの実行時にログにシンプルなメッセージを表示する 1 行のレシピです。

**レシピを実行するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。**[MyCookbooksDemoStack]** ページが表示されます。

1. **[Run Command]** を選択します。[**Run Command**] ページが表示されます。

1. [**Command**] の [**Execute Recipes**] を選択します。

1. [**Recipes to execute**] に「**opsworks\$1cookbook\$1demo::default**」と入力します。

   **opsworks\$1cookbook\$1demo** は、`metadata.rb` ファイルで宣言されているクックブックの名前です。**default** は実行するレシピの名前です。つまり、クックブックの `default.rb` サブディレクトリの `recipes` ファイルの、ファイル拡張子がない名前です。

1. 次のデフォルト設定はそのままにしておきます。
   + [**Comment**] (空白)
   + [**Advanced**]、[**Custom Chef JSON**] (空白)
   + [**Instances**] ([**Select all**] をオン、[**MyCookbooksDemoLayer**] をオン、[**cookbooks-demo1**] をオン)

1. [**Execute Recipes**] を選択します。[**Running command execute\$1recipes**] ページが表示されます。[**Status**] が [**successful**] に変わるまで進まないでください。このプロセスは数分かかることがあるため、しばらくお待ちください。

**レシピの結果を確認するには**

1. [**Running command execute\$1recipes**] ページを表示し、[**cookbooks-demo1**] と [**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下へスクロールして、次のようなエントリを見つけます。

   ```
   [2015-11-13T19:14:39+00:00] INFO: ********** Hello, World! **********
   ```

最初のレシピを正常に実行しました。[次のステップ](gettingstarted-cookbooks-install-package.md)では、インスタンスにパッケージをインストールするレシピを追加してクックブックを更新します。

# ステップ 4: クックブックを更新してパッケージをインストールする
<a name="gettingstarted-cookbooks-install-package"></a>

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

人気の高いテキストエディター GNU Emacs を含むパッケージをインスタンスにインストールするレシピを追加してクックブックを更新します。

インスタンスに簡単にログインしてパッケージを 1 回インストールできますが、レシピを作成すると、 スタックからレシピを 1 OpsWorks 回実行して、スタック内の複数のインスタンスに複数のパッケージを同時にインストールできます。

**クックブックを更新してパッケージをインストールするには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `install_package.rb` という名前のファイルを作成します。

   ```
   package "Install Emacs" do
     package_name "emacs"
   end
   ```

   このレシピは `emacs` パッケージをインスタンスにインストールします (詳細については、「[package](https://docs.chef.io/resource_package.html)」を参照してください)。
**注記**  
レシピには任意のファイル名を付けることができます。 OpsWorks スタックでレシピを実行するときは、必ず正しいレシピ名を指定してください。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

この新しいレシピは、インスタンスのクックブックを更新し、更新されたクックブック内から新しいレシピを実行するときに実行されます。次の手順は、これを行う方法を示しています。

[次の手順](gettingstarted-cookbooks-copy-cookbook.md)が完了すると、インスタンスにログインし、コマンドプロンプトから「**emacs**」と入力して GNU Emacs を起動できます (詳細については、「[Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)」を参照してください)。GNU Emacs を終了するには、**Ctrl\$1X** キーを押してから **Ctrl\$1C** キーを押します。

**重要**  
インスタンスにログインするには、まずパブリック SSH キー (ssh-keygen や PuTTYgen などのツールを使用して作成できます) に関する情報を OpsWorks スタックに提供し、次にユーザーがインスタンスにログインできるように`MyCookbooksDemoStack`スタックに対するアクセス許可を設定する必要があります。手順については、「[ユーザーのパブリック SSH キーの登録](security-settingsshkey.md)」および「[SSH でのログイン](workinginstances-ssh.md)」を参照してください。

# ステップ 5: インスタンスのクックブックを更新し、レシピを実行する
<a name="gettingstarted-cookbooks-copy-cookbook"></a>

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

インスタンスのクックブックを変更し、インスタンスの更新されたクックブック内からレシピを実行します。このウォークスルーの残りの部分では、新しいレシピを追加してクックブックを更新するたびに、この手順を繰り返します。

**インスタンスのクックブックを更新するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。**[MyCookbooksDemoStack]** ページが表示されます。

1. **[Run Command]** を選択します。[**Run Command**] ページが表示されます。

1. **[Command]** で、**[Update Custom Cookbooks]** を選択します。

1. 次のデフォルト設定はそのままにしておきます。
   + [**Comment**] (空白)
   + [**Advanced**]、[**Custom Chef JSON**] (空白)
   + [**Advanced**]、[**Instances**] ([**Select all**] をオン、[**MyCookbooksDemoLayer**] をオン、[**cookbooks-demo1**] をオン)

1. [**Update Custom Cookbooks**] を選択します。[**Running command update\$1custom\$1cookbooks**] ページが表示されます。[**Status**] が [**successful**] に変わるまで進まないでください。このプロセスは完了までに数分かかることがあるため、しばらくお待ちください。

**レシピを実行するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。**[MyCookbooksDemoStack]** ページが表示されます。

1. **[Run Command]** を選択します。[**Run Command**] ページが表示されます。

1. [**Command**] の [**Execute Recipes**] を選択します。

1. [**Recipes to execute**] で、実行するレシピの名前を入力します。これを最初に行うときに、レシピは **opsworks\$1cookbook\$1demo::install\$1package** という名前になります。
**注記**  
後でこの手順を繰り返すときに、クックブックの名前 (**opsworks\$1cookbook\$1demo**) を入力し、その後に 2 つのコロン (**::**)、レシピの名前 (`.rb` ファイル拡張子を除くレシピのファイル名) を付けます。

1. 次のデフォルト設定はそのままにしておきます。
   + [**Comment**] (空白)
   + [**Advanced**]、[**Custom Chef JSON**] (空白)
   + [**Instances**] ([**Select all**] をオン、[**MyCookbooksDemoLayer**] をオン、[**cookbooks-demo1**] をオン)

1. [**Execute Recipes**] を選択します。[**Running command execute\$1recipes**] ページが表示されます。[**Status**] が [**successful**] に変わるまで進まないでください。このプロセスは数分かかることがあるため、しばらくお待ちください。

**注記**  
レシピを手動で実行する必要はありません。セットアップイベントや設定イベントなど、レイヤーのライフサイクルイベントにレシピを割り当てることができます。イベントが発生すると、 OpsWorks スタックはそれらのレシピを自動的に実行します。詳細については、「[OpsWorks スタックライフサイクルイベント](workingcookbook-events.md)」を参照してください。

[次のステップ](gettingstarted-cookbooks-add-user.md)では、クックブックを更新してユーザーをインスタンスに追加します。

# ステップ 6: クックブックを更新してユーザーを追加する
<a name="gettingstarted-cookbooks-add-user"></a>

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

インスタンスにローカルユーザーを追加するレシピを追加してクックブックを更新し、ユーザーのホームディレクトリとシェルを設定します。これは、Linux の **adduser** または **useradd** コマンドまたは Windows の **net user** コマンドの実行に似ています。インスタンスのファイルとディレクトリへのアクセスを制御する場合などに、インスタンスにローカルユーザーを追加します。

クックブックを使用せずにユーザーを管理することもできます。詳細については、「[ユーザーの管理](opsworks-security-users-manage.md)」を参照してください。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `add_user.rb` という名前のファイルを作成します (詳細については、[user](https://docs.chef.io/resource_user.html) を参照してください)。

   ```
   user "Add a user" do
     home "/home/jdoe"
     shell "/bin/bash"
     username "jdoe"  
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::add\$1user**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで次のコマンドを実行して、新しいユーザーが追加されたことを確認します。

   ```
   grep jdoe /etc/passwd
   ```

   ユーザー名、ID 番号、グループ ID 番号、ホームディレクトリ、シェルなど詳細を含めて、ユーザーに関する次のような情報が表示されます。

   ```
   jdoe:x:501:502::/home/jdoe:/bin/bash
   ```

[次のステップ](gettingstarted-cookbooks-create-directory.md)では、クックブックを更新してインスタンスにディレクトリを作成します。

# ステップ 7: クックブックを更新してディレクトリを作成する
<a name="gettingstarted-cookbooks-create-directory"></a>

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

インスタンスにディレクトリを追加するレシピを追加してクックブックを更新します。これは、Linux の **mkdir** コマンドまたは Windows の **md** または **mkdir** コマンドの実行に似ています。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `create_directory.rb` という名前のファイルを作成します。詳細については、「[directory](https://docs.chef.io/resource_directory.html)」を参照してください。

   ```
   directory "Create a directory" do
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo"  
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::create\$1directory**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで次のコマンドを実行して、新しいディレクトリが追加されたことを確認します。

   ```
   ls -la /tmp/create-directory-demo
   ```

   新しく追加されたディレクトリに関する情報が、アクセス権限、所有者名、グループ名などの情報を含めて表示されます。

   ```
   drwxr-xr-x 2 ec2-user root 4096 Nov 18 00:35 .
   drwxrwxrwt 6 root     root 4096 Nov 24 18:17 ..
   ```

[次のステップ](gettingstarted-cookbooks-create-file.md)では、クックブックを更新してインスタンスにファイルを作成します。

# ステップ 8: クックブックを更新してファイルを作成し、コピーする
<a name="gettingstarted-cookbooks-create-file"></a>

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

インスタンスに 2 つのファイルを追加するレシピを追加してクックブックを更新します。レシピの最初のリソースは、レシピコードを使用して完全にファイルを作成します。これは、Linux の **cat**、**echo**、または **touch** コマンド、または Windows の **echo** または **fsutil** コマンドに似ています。この手法は、少数のファイル、小さいファイル、またはシンプルなファイルに対して有効です。レシピの 2 番目のリソースはクックブックのファイルをインスタンスの別のディレクトリにコピーします。これは、Linux の **cp** コマンドまたは Windows の **copy** コマンドの実行と似ています。この手法は、多数のファイル、大きいファイル、または複雑なファイルに対して有効です。

このステップを開始する前に、「[ステップ 7: クックブックを更新してディレクトリを作成する](gettingstarted-cookbooks-create-directory.md)」を完了して、ファイルの親ディレクトリがすでに存在すること確認します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリで、`files` という名前のサブディレクトリを作成します 

1. `files` サブディレクトリで、`hello.txt`というテキストを含む **Hello, World\$1** という名前のファイルを作成します。

1. `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `create_files.rb` という名前のファイルを作成します。詳細については、[file](https://docs.chef.io/resource_file.html) と [cookbook\$1file](https://docs.chef.io/resource_cookbook_file.html) を参照してください。

   ```
   file "Create a file" do
     content "<html>This is a placeholder for the home page.</html>"
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/index.html"
   end
   
   cookbook_file "Copy a file" do  
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/hello.txt"
     source "hello.txt"  
   end
   ```

   `file` リソースは、指定されたパスでファイルを作成します。`cookbook_file` リソースは、クックブックで作成した `files` ディレクトリから、インスタンスの別のディレクトリにファイルをコピーします (Chef では、ファイルのコピー元として `files` という名前のサブディレクトリがあることが想定されます)。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::create\$1files**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで、新しいファイルが追加されたことを確認するため、次のコマンドを 1 つずつ実行します。

   ```
   sudo cat /tmp/create-directory-demo/index.html
   
   sudo cat /tmp/create-directory-demo/hello.txt
   ```

   ファイルの内容が表示されます。

   ```
   <html>This is a placeholder for the home page.</html>
   
   Hello, World!
   ```

[次のステップ](gettingstarted-cookbooks-run-command.md)では、クックブックを更新してインスタンスでコマンドを実行します。

# ステップ 9: クックブックを更新してコマンドを実行する
<a name="gettingstarted-cookbooks-run-command"></a>

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

インスタンスで SSH キーを作成するコマンドを実行するレシピを追加してクックブックを更新します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `run_command.rb` という名前のファイルを作成します。詳細については、「[execute](https://docs.chef.io/resource_execute.html)」を参照してください。

   ```
   execute "Create an SSH key" do
     command "ssh-keygen -f /tmp/my-key -N fLyC3jbY"
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::run\$1command**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで、SSH キーが作成されたことを確認するため、次のコマンドを 1 つずつ実行します。

   ```
   sudo cat /tmp/my-key
   
   sudo cat /tmp/my-key.pub
   ```

   SSH プライベートキーおよびパブリックキーのコンテンツが表示されます。

   ```
   -----BEGIN RSA PRIVATE KEY-----
   Proc-Type: 4,ENCRYPTED
   DEK-Info: AES-128-CBC,DEF7A09C...541583FA
   A5p9dCuo...wp0YYH1c
   -----END RSA PRIVATE KEY-----
   
   ssh-rsa AAAAB3N...KaNogZkT root@cookbooks-demo1
   ```

[次のステップ](gettingstarted-cookbooks-run-script.md)では、クックブックを更新してインスタンスでスクリプトを実行します。

# ステップ 10: クックブックを更新してスクリプトを実行する
<a name="gettingstarted-cookbooks-run-script"></a>

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

インスタンスでスクリプトを実行するレシピを追加してクックブックを更新します。このレシピではディレクトリを作成し、そのディレクトリでファイルを作成します。複数のコマンドを含むスクリプトを実行するレシピの作成は、それらのコマンドを 1 つずつ実行するよりも簡単です。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `run_script.rb` という名前のファイルを作成します。詳細については、「[script](https://docs.chef.io/resource_script.html)」を参照してください。

   ```
   script "Run a script" do
     interpreter "bash"
     code <<-EOH
       mkdir -m 777 /tmp/run-script-demo
       touch /tmp/run-script-demo/helloworld.txt
       echo "Hello, World!" > /tmp/run-script-demo/helloworld.txt
     EOH
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::run\$1script**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで次のコマンドを実行して、新しいファイルが追加されたことを確認します。

   ```
   sudo cat /tmp/run-script-demo/helloworld.txt
   ```

   ファイルの内容が表示されます。

   ```
   Hello, World!
   ```

[次のステップ](gettingstarted-cookbooks-manage-service.md)では、クックブックを更新してインスタンスでサービスを管理します。

# ステップ 11: クックブックを更新してサービスを管理する
<a name="gettingstarted-cookbooks-manage-service"></a>

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

インスタンスのサービスを管理するレシピを追加してクックブックを更新します。これは、Linux の **service** コマンドまたは Windows の、**net stop**、**net start** などのコマンドの実行に似ています。このレシピはインスタンスの **crond** サービスを停止します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `manage_service.rb` という名前のファイルを作成します。詳細については、「[service](https://docs.chef.io/resource_service.html)」を参照してください。

   ```
   service "Manage a service" do
     action :stop
     service_name "crond"  
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::manage\$1service**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで次のコマンドを実行し、**crond** サービスが停止したことを確認します。

   ```
   service crond status
   ```

   以下が表示されます。

   ```
   crond is stopped
   ```

1. **crond** サービスを再起動するには、次のコマンドを実行します。

   ```
   sudo service crond start
   ```

   以下が表示されます。

   ```
   Starting crond:  [  OK  ]
   ```

1.  **crond** サービスが開始されたことを確認するには、次のコマンドを再度実行します。

   ```
   service crond status
   ```

   以下のような情報が表示されます。

   ```
   crond (pid  3917) is running...
   ```

[次のステップ](gettingstarted-cookbooks-custom-json.md)では、クックブックを更新して、インスタンスのカスタム JSON として保存された情報を参照します。

# ステップ 12: カスタム JSON を使用するようにクックブックを更新する
<a name="gettingstarted-cookbooks-custom-json"></a>

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

インスタンスに保存されているカスタム JSON を参照するレシピを追加してクックブックを更新します。

スタックを作成、更新、またはクローン化するたび、あるいはデプロイまたはスタックコマンドを実行するたびに、カスタム JSON 形式で情報を指定できます。これは、データベースからこのデータを取得する代わりに、インスタンスのレシピでデータのごく一部を固定するときに役立ちます。詳細については、「[カスタム JSON の使用](workingstacks-json.md)」を参照してください。

このウォークスルーでは、カスタム JSON を使用して顧客の請求書に関する架空の情報を提供します。カスタム JSON については、このステップの後半で説明します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のレシピコードを含む `custom_json.rb` という名前のファイルを作成します。

   ```
   Chef::Log.info("********** For customer '#{node['customer-id']}' invoice '#{node['invoice-number']}' **********")
   Chef::Log.info("********** Invoice line number 1 is a '#{node['line-items']['line-1']}' **********")
   Chef::Log.info("********** Invoice line number 2 is a '#{node['line-items']['line-2']}' **********")
   Chef::Log.info("********** Invoice line number 3 is a '#{node['line-items']['line-3']}' **********")
   ```

   このレシピは、カスタム JSON の値についてログにメッセージを表示します。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::custom\$1json**」と入力します。[**Advanced**]、[**Custom Chef JSON**] に、次のカスタム JSON を入力します。

   ```
   {
     "customer-id": "0123",
     "invoice-number": "9876",
     "line-items": {
       "line-1": "tractor",
       "line-2": "passenger car",
       "line-3": "trailer"
     }
   }
   ```

**レシピをテストするには**

1. 前の手順の [**Running command execute\$1recipes**] ページを表示した状態で、[**cookbooks-demo1**]、[**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下にスクロールして、次のようなエントリを見つけます。

   ```
   [2015-11-14T14:18:30+00:00] INFO: ********** For customer '0123' invoice '9876' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 1 is a 'tractor' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 2 is a 'passenger car' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 3 is a 'trailer' **********
   ```

   これらのエントリには、[**Advanced**]、[**Custom Chef JSON**] ボックスに入力したカスタム JSON からの情報が表示されます。

[次のステップ](gettingstarted-cookbooks-data-bags.md)では、クックブックを更新してデータバッグから情報を取得します。データバッグは、 OpsWorks スタックが各インスタンスに保存するスタック設定のコレクションです。

# ステップ 13: クックブックを更新してデータバッグを使用する
<a name="gettingstarted-cookbooks-data-bags"></a>

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

一連のデータバッグ内のインスタンスに OpsWorks スタックが保存するスタック設定を参照するレシピを追加して、クックブックを更新します。このレシピは、インスタンスに保存された特定のスタック設定についてログにメッセージを表示します。詳細については、「[OpsWorks スタックデータバッグリファレンス](data-bags.md)」を参照してください。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のコードを含む `data_bags.rb` という名前のファイルを作成します。

   ```
   instance = search("aws_opsworks_instance").first
   layer = search("aws_opsworks_layer").first
   stack = search("aws_opsworks_stack").first
   
   Chef::Log.info("********** This instance's instance ID is '#{instance['instance_id']}' **********")
   Chef::Log.info("********** This instance's public IP address is '#{instance['public_ip']}' **********")
   Chef::Log.info("********** This instance belongs to the layer '#{layer['name']}' **********")
   Chef::Log.info("********** This instance belongs to the stack '#{stack['name']}' **********")
   Chef::Log.info("********** This stack gets its cookbooks from '#{stack['custom_cookbooks_source']['url']}' **********")
   ```

   このレシピは、インスタンスに保存された特定のスタック設定についてログにメッセージを表示します。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::data\$1bags**」と入力します。

**レシピをテストするには**

1. 前の手順の [**Running command execute\$1recipes**] ページを表示した状態で、[**cookbooks-demo1**]、[**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下にスクロールして、次のようなエントリを見つけます。

   ```
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance's instance ID is 'f80fa119-81ab-4c3c-883d-6028e52c89EX' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance's public IP address is '192.0.2.0' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance belongs to the layer 'MyCookbooksDemoLayer' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This instance belongs to the stack 'MyCookbooksDemoStack' **********
   [2015-11-14T14:39:06+00:00] INFO: ********** This stack gets its cookbooks from 'https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz' **********
   ```

   このレシピは、インスタンスに保存された特定のスタック設定についてメッセージを表示します。

[次のステップ](gettingstarted-cookbooks-iteration.md)では、クックブックを更新してレシピコードを複数回実行します。

# ステップ 14: クックブックを更新して繰り返しを使用する
<a name="gettingstarted-cookbooks-iteration"></a>

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

レシピコードを複数回繰り返す、*繰り返し*の手法を使用するレシピを追加してクックブックを更新します。このレシピは、複数のコンテンツを含むデータバッグ項目についてログにメッセージを表示します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のコードを含む `iteration_demo.rb` という名前のファイルを作成します。

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   stack["custom_cookbooks_source"].each do |content|
     Chef::Log.info("********** '#{content}' **********")
   end
   ```
**注記**  
前述のレシピコードの作成は、繰り返しを使わない次のレシピコードを記述するよりも短く、より柔軟になり、エラーが起きにくくなります。  

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********")
   Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********")
   Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********")
   Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********")
   Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********")
   Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::iteration\$1demo**」と入力します。

**レシピをテストするには**

1. 前の手順の [**Running command execute\$1recipes**] ページを表示した状態で、[**cookbooks-demo1**]、[**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下にスクロールして、次のようなエントリを見つけます。

   ```
   [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********
   ```

   このレシピは、複数のコンテンツを含むデータバッグ項目についてログにメッセージを表示します。データバッグ項目は `aws_opsworks_stack` データバッグにあります。データバッグ項目には、`custom_cookbooks_source` という名前のコンテンツがあります。このコンテンツの内部には、`type`、`url`、`username`、`password`、`ssh_key`、および `revision` という名前の 6 つのコンテンツがあり、それらの値も表示されます。

[次のステップ](gettingstarted-cookbooks-conditional-logic.md)では、クックブックを更新して、特定の条件が満たされた場合のみレシピコードを実行します。

# ステップ 15: クックブックを更新して条件付きロジックを使用する
<a name="gettingstarted-cookbooks-conditional-logic"></a>

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

ここで、*条件付きロジック*を使用するレシピを追加してクックブックを作成します。これは、特定の条件が満たされた場合のみコードを実行する手法です。詳細については、「[if Statements](https://docs.chef.io/dsl_recipe.html#if-statements)」および「[case Statements](https://docs.chef.io/dsl_recipe.html#case-statements)」を参照してください。

このレシピでは、データバッグのコンテンツに基づいて 2 つの処理を実行します。インスタンスが実行されているオペレーティングシステムを識別するメッセージをログに表示し、オペレーティングシステムが Linux である場合のみ、特定の Linux ディストリビューションに対して適切なパッケージマネージャーを使用してパッケージをインストールします。このパッケージは tree という名前であり、ディレクトリリストを視覚化するためのシンプルなアプリケーションです。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo directory` にある `recipes` サブディレクトリで、以下のコードを含む `conditional_logic.rb` という名前のファイルを作成します。

   ```
   instance = search("aws_opsworks_instance").first
   os = instance["os"]
   
   if os == "Red Hat Enterprise Linux 7"
     Chef::Log.info("********** Operating system is Red Hat Enterprise Linux. **********")
   elsif os == "Ubuntu 14.04 LTS" || os == "Ubuntu 16.04 LTS" || os == "Ubuntu 18.04 LTS"
     Chef::Log.info("********** Operating system is Ubuntu. **********") 
   elsif os == "Microsoft Windows Server 2012 R2 Base"
     Chef::Log.info("********** Operating system is Windows. **********")
   elsif os == "Amazon Linux 2015.03" || os == "Amazon Linux 2015.09" || os == "Amazon Linux 2016.03" || os == "Amazon Linux 2016.09" || os == "Amazon Linux 2017.03" || os == "Amazon Linux 2017.09" || os == "Amazon Linux 2018.03" || os == "Amazon Linux 2"
     Chef::Log.info("********** Operating system is Amazon Linux. **********")
   elsif os == "CentOS Linux 7"
     Chef::Log.info("********** Operating system is CentOS 7. **********")
   else
     Chef::Log.info("********** Cannot determine operating system. **********")
   end
   
   case os
   when "Ubuntu 14.04 LTS", "Ubuntu 16.04 LTS", "Ubuntu 18.04 LTS"
     apt_package "Install a package with apt-get" do
       package_name "tree"
     end
   when "Amazon Linux 2015.03", "Amazon Linux 2015.09", "Amazon Linux 2016.03", "Amazon Linux 2016.09", "Amazon Linux 2017.03", "Amazon Linux 2017.09", "Amazon Linux 2018.03", "Amazon Linux 2", "Red Hat Enterprise Linux 7", "CentOS Linux 7"
     yum_package "Install a package with yum" do
       package_name "tree"
     end
   else
     Chef::Log.info("********** Cannot determine operating system type, or operating system is not Linux. Package not installed. **********")
   end
   ```

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::conditional\$1logic**」と入力します。

**レシピをテストするには**

1. 前の手順の [**Running command execute\$1recipes**] ページを表示した状態で、[**cookbooks-demo1**]、[**Log**] の [**show**] を選択します。[**execute\$1recipes**] ログページが表示されます。

1. ログを下へスクロールして、次のようなエントリを見つけます。

   ```
   [2015-11-16T19:59:05+00:00] INFO: ********** Operating system is Amazon Linux. **********
   ```

   インスタンスのオペレーティングシステムは Amazon Linux 2016.09 であるため、(レシピのコードの 5 つの可能なエントリのうち)先行するエントリのみがログに表示されます。

1. オペレーティングシステムが Linux の場合、レシピは tree パッケージをインストールします。ディレクトリのコンテンツを視覚的に表示するには、希望するディレクトリまたはそのディレクトリのパス (`tree /var/chef/runs` など) からコマンドプロンプトで「**tree**」と入力します。

[次のステップ](gettingstarted-cookbooks-community-cookbooks.md)では、クックブックを更新して、Chef コミュニティで提供される外部クックブックの機能を使用します。

# ステップ 16: クックブックを更新してコミュニティクックブックを使用する
<a name="gettingstarted-cookbooks-community-cookbooks"></a>

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

最後に、クックブックを更新して、Chef コミュニティで提供された外部のクックブックの機能を使用します。このウォークスルーに使用する外部のクックブックは、外部の Chef クックブックにアクセスするための一般的な場所である [Chef Supermarket](https://supermarket.chef.io/) を通じて利用できます。この外部クックブックでは、「[ステップ 4: クックブックを更新してパッケージをインストールする](gettingstarted-cookbooks-install-package.md)」で行ったようにアプリケーションをダウンロードしてインストールできるカスタムリソースが提供されます。ただし、このリソースはパッケージに加えてウェブアプリケーションや他の種類のアプリケーションをインストールできます。

クックブックが別のクックブックに依存している場合、他のクックブックへの依存関係を指定する必要があります。クックブックの依存関係を宣言し、管理するには、Berkshelf と呼ばれるツールを使用することをお勧めします。Berkshelf をお客様のローカルワークステーションにインストールする方法の詳細については、Chef ウェブサイトの [About Berkshelf](https://docs.chef.io/berkshelf.html) を参照してください。

Berkshelf をインストールしたら、以下の手順に従ってクックブックの依存関係を宣言し、外部のクックブックでリソースを呼び出すレシピを作成します。

**クックブックの依存関係を宣言するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリで、次の行を `metadata.rb` ファイルの末尾に追加します。

   ```
   depends "application", "5.0.0"
   ```

   これにより、`application` version 5.0.0 という名前のクックブックで依存関係が宣言されます。

1. `opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。コマンドの最後のピリオドは意図的なものです。

   ```
   berks init .
   ```

   Berkshelf により、より高度なシナリオで後から使用できる多くのフォルダとファイルが作成されます。このウォークスルーで必要なファイルは、`Berksfile` という名前のファイルのみです。

1. `Berksfile` ファイルの末尾に次の行を追加します。

   ```
   cookbook "application", "5.0.0"
   ```

   これにより、ユーザーが [application cookbook version 5.0.0](https://supermarket.chef.io/cookbooks/application/versions/5.0.0) の使用を希望している事実が Berkshelf に伝えられ、Berkshelf は、Chef Supermarket から該当バージョンをダウンロードします。

1. 端末またはコマンドプロンプトで、`opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。

   ```
   berks install
   ```

   Berkshelf が、クックブックとアプリケーションクックブック両方について、依存関係のリストを作成します。Berkshelf は、次の手順でこの依存関係リストを使用します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のコードを含む `dependencies_demo.rb` という名前のファイルを作成します。

   ```
   application "Install NetHack" do
     package "nethack.x86_64"
   end
   ```

   このレシピは、アプリケーションクックブックのアプリケーションリソースに基づいて、人気のあるテキストベースの冒険ゲーム NetHack をインスタンスにインストールします (もちろん、パッケージがインスタンスでパッケージマネージャーに対して容易に利用できる限り、他のパッケージ名に置き換えることができます)。

1. `opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。

   ```
   berks package
   ```

   Berkshelf は前の手順の依存関係のリストを使用して、`cookbooks-timestamp.tar.gz` という名前のファイルを作成します。これには、クックブックの依存関係クックブックを含めて、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。このファイル `opsworks_cookbook_demo.tar.gz` の名前を変更します。

1. 更新済みで名前を変更した `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::dependencies\$1demo**」と入力します。

1. レシピを実行した後は、インスタンスにログインし、コマンドプロンプトで「**nethack**」と入力してプレイを開始できます (ゲームに関する詳細については、「[NetHack](https://en.wikipedia.org/wiki/NetHack)」および [NetHack Guidebook](http://www.nethack.org/v343/Guidebook.html) を参照してください)。

[次のステップ](gettingstarted-cookbooks-clean-up.md)では、このウォークスルーに使用した AWS リソースをクリーンアップできます。このステップは任意です。 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。ただし、これらの AWS リソースを周囲に保持すると、 AWS アカウントに継続的な料金が発生する可能性があります。これらの AWS リソースを後で使用するために保持する場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-cookbooks-next-steps.md)。

# ステップ 17: (オプション) クリーンアップする
<a name="gettingstarted-cookbooks-clean-up"></a>

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

 AWS アカウントに追加料金が発生しないように、このチュートリアルで使用したリソースを削除 AWS できます。これらの AWS リソースには、S3 OpsWorks バケット、スタックスタック、スタックのコンポーネントが含まれます。(詳細については、「[AWS OpsWorks の料金](https://aws.amazon.com/opsworks/pricing/)」を参照してください)。ただし、 スタックの詳細については OpsWorks 、これらの AWS リソースを引き続き使用することをお勧めします。これらの AWS リソースを引き続き利用できるようにする場合は、このチュートリアルを完了し、「」に進むことができます[次のステップ](gettingstarted-cookbooks-next-steps.md)。

このチュートリアルのために作成したリソースに保存されているコンテンツには、個人識別情報が含まれている可能性があります。この情報を AWSが保存しないようにするには、このトピックの手順に従ってください。

**S3 バケットを削除するには**
+ 「[Amazon S3 バケットの削除](https://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-cleanup-s3.html)」を参照してください。

**スタックのインスタンスを削除するには**

1.  OpsWorks スタックコンソールのサービスナビゲーションペインで、**インスタンス**を選択します。[**Instances**] ページが表示されます。

1. [**MyCookbooksDemoLayer**] で、[**cookbooks-demo1**]、[**Actions**] の [**stop**] を選択します。確認メッセージが表示されたら、[**Stop**] を選択します。

1. 以下の変更が行われるには数分間かかるため、しばらくお待ちください。すべてが終了するまで先に進まないでください。
   + [**Status**] が [**online**] から [**stopping**] に変わり、最終的に [**stopped**] になります。
   + [**online**] は [**1**] から [**0**] に変わります。
   + [**shutting down**] は [**0**] から [**1**] に変わり、最終的に [**0**] になります。
   + [**stopped**] は最終的に [**0**] から [**1**] に変わります。

1. **[Actions]** (アクション) で、[**delete**] (削除) を選択します。確認メッセージが表示されたら、**Delete**. OpsWorks Stacks を選択するとインスタンスが削除され、**インスタンスなし**が表示されます。

**スタックを削除するには**

1. サービスナビゲーションペインで、**[Stack]** を選択します。**[MyCookbooksDemoStack]** ページが表示されます。

1. [**Delete Stack**] を選択します。確認メッセージが表示されたら、**Delete**. OpsWorks Stacks を選択するとスタックが削除され、**ダッシュボード**ページが表示されます。

必要に応じて、このウォークスルーに使用した IAM ユーザーと Amazon EC2 キーペアを、他の AWS サービスや EC2 インスタンスへのアクセスに再利用しない場合は削除できます。手順については、「[IAM ユーザーの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) と [Amazon EC2 キーペアと Linux インスタンスの削除](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair)」を参照してください。

これで、このウォークスルーが完了しました。詳細については、「[次のステップ](gettingstarted-cookbooks-next-steps.md)」を参照してください。

# 次のステップ
<a name="gettingstarted-cookbooks-next-steps"></a>

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

このウォークスルーを完了したので、次のリソースを確認することで、Chef OpsWorks クックブックの スタックサポートの詳細を確認できます。
+ [クックブックとレシピ](workingcookbook.md) – スタックが現在サポートしている Chef および Ruby OpsWorks のバージョンについて説明します。また、インスタンスで、カスタムクックブックをインストールおよび更新する方法と、インスタンスでレシピを実行する方法を示しています。
+ [Learn Chef](https://learn.chef.io/) – Chef のチュートリアル、Chef のスキルライブラリ、Chef の完全なドキュメント、および Chef のトレーニングクラスへのリンクを提供しています。
+ [[All about Chef]](https://docs.chef.io/) (Chefのすべて) - Chef に関する完全なドキュメントを提供しています。特に興味深いトピックは次のとおりです。
  + [[About Cookbooks]](https://docs.chef.io/cookbooks.html)(クックブックについて) - 属性、レシピ、ファイル、メタデータ、テンプレートなど、クックブックの主要コンポーネントについて説明しています。
  + [[About Recipes]](https://docs.chef.io/recipes.html) (レシピについて) - データバッグの使用方法、他のレシピの追加方法、レシピで Ruby コードの使用方法など、レシピの基本事項について説明しています。
  + [[Resources]](https://docs.chef.io/resources.html#resources) (リソース) - `apt_package`、`cookbook_file`、`directory`、`execute`、`file` および `package` など、全組み込みの Chef リソースの使用方法について説明しています。
  + [[About the Recipe DSL]](https://docs.chef.io/dsl_recipe.html) (レシピDSLについて) - `if`、`case`、`data_bag`、`data_bag_item`、および `search` などのステートメントで Chef レシピ用のコードを書く方法について説明しています。
+ [[About Templates]](https://docs.chef.io/templates.html) (テンプレートについて) - Embedded Ruby (ERB) テンプレートを使用して、設定ファイルなどの静的なテキストファイルを動的に生成する方法について説明しています。
+ [[Learning Tracks]](https://learn.chef.io/tracks) (ラーニングトラック) - インスタンスや基本的なウェブアプリケーションの管理、インフラストラクチャコードの開発およびテスト、Chef 分析の使用など、Chef を使用方法を説明しています。
+ [http://shop.oreilly.com/product/0636920032397.do](http://shop.oreilly.com/product/0636920032397.do) (ラーニングシェフ) – Chef の概要です。発行元は O'Reilly Media です。
+ [[Learning Chef code examples]](https://github.com/learningchef/learningchef-code) (Chefコードの例を学ぶ) - O'Reilly Media によって出版された書籍 *[Learning Chef]* (ラーニングシェフ) に付随するコードの例を提供しています。