

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

# OpsWorks スタック
<a name="welcome_classic"></a>

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

クラウドベースのコンピューティングには通常、まとめて作成および管理する必要のある AWS リソース Amazon EC2 インスタンス、Amazon Relational Database Service (RDS) などのグループが含まれます。たとえば、ウェブアプリケーションには、通常、アプリケーションサーバー、データベースサーバー、ロードバランサーなどが必要です。このインスタンスのグループは、一般に*スタック*と呼ばれています。例として、シンプルなアプリケーションサーバースタックを図に表すと以下のようになります。

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


インスタンスを作成したり、必要なパッケージをインストールしたりする他に、通常、アプリケーションをアプリケーションサーバーに分散したり、スタックのパフォーマンスを監視したり、セキュリティおよびアクセス許可を管理したりするなどの操作を行う方法が必要です。

OpsWorks スタックは、スタックとアプリケーションを作成および管理するためのシンプルで柔軟な方法を提供します。

基本的なアプリケーションサーバースタックが OpsWorks スタックでどのように表示されるかは次のとおりです。Elastic Load Balancing ロードバランサーの背後で実行されるアプリケーションサーバーのグループとバックエンド Amazon RDS データベースサーバーで構成されています。

![\[OpsWorks Stack architecture with load balancer, application servers, and Amazon RDS instance.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/php_walkthrough_arch_4.png)


比較的シンプルですが、このスタックにはすべての主要な OpsWorks スタック機能が表示されます。構成を以下に示します。

**Topics**
+ [スタック](#welcome-classic-stacks)
+ [レイヤー](#welcome-classic-layers)
+ [レシピおよびライフサイクルイベント](#welcome-classic-lifecycle)
+ [インスタンス](#welcome-classic-instances)
+ [アプリケーション](#welcome-classic-apps)
+ [スタックのカスタマイズ](#welcome-classic-customizing)
+ [リソース管理](#welcome-classic-resources)
+ [セキュリティと権限](#welcome-classic-security)
+ [モニタリングとロギング](#welcome-classic-monitoring)
+ [CLI、SDK、 CloudFormation テンプレート](#welcome-classic-sdk)
+ [AWS OpsWorks Stacks サポート終了FAQs](stacks-eol-faqs.md)
+ [AWS OpsWorks Stacks アプリケーションを AWS Systems Manager Application Manager に移行する](migrating-to-systems-manager.md)
+ [AWS OpsWorks Stacks Detach in Place ツールの使用](using-stacks-detach-tool.md)
+ [OpsWorks スタックの開始方法](gettingstarted_intro.md)
+ [OpsWorks スタックのベストプラクティス](best-practices.md)
+ [スタック](workingstacks.md)
+ [レイヤー](workinglayers.md)
+ [インスタンス](workinginstances.md)
+ [アプリケーション](workingapps.md)
+ [クックブックとレシピ](workingcookbook.md)
+ [リソース管理](resources.md)
+ [タグ](tagging.md)
+ [モニタリング](monitoring.md)
+ [セキュリティと権限](workingsecurity.md)
+ [OpsWorks Chef 12 Linux の スタックのサポート](chef-12-linux.md)
+ [スタックでの以前の Chef OpsWorks バージョンのサポート](previous-chef-versions.md)
+ [他の AWS サービスでの OpsWorks スタックの使用](other-services.md)
+ [スタック OpsWorks CLI の使用](cli-examples.md)
+ [デバッグとトラブルシューティングのガイド](troubleshoot.md)
+ [OpsWorks スタックエージェント CLI](agent.md)
+ [OpsWorks スタックデータバッグリファレンス](data-bags.md)
+ [OpsWorks エージェントの変更](agentchanges.md)

## スタック
<a name="welcome-classic-stacks"></a>

*スタック*はコア OpsWorks スタックコンポーネントです。基本的には、共通の目的を持ち、論理的に一緒に管理する必要がある AWS リソース (Amazon EC2 インスタンス、Amazon RDS データベースインスタンスなど) のコンテナです。スタックにより、ユーザーはこれらのリソースをグループで管理することができます。また、インスタンスのオペレーティングシステムや AWS リージョンなどの一部のデフォルトの構成設定もスタックにより定義されます。ユーザーの直接操作から分離する必要のあるスタックコンポーネントがある場合、そのスタックを VPC 内で実行することもできます。

## レイヤー
<a name="welcome-classic-layers"></a>

1 つ以上の *レイヤー* を追加することにより、スタックのコンポーネントを定義します。レイヤーは、アプリケーションへのサービス提供やデータベースサーバーのホスティングなどの特定の目的を果たす一連の Amazon EC2 インスタンスを表します。

パッケージのデフォルト設定を変更してレイヤーをカスタマイズまたは展開したり、Chef レシピを追加して追加のパッケージのインストールなどのタスクを実行したりできます。

すべてのスタックについて、 OpsWorks スタックには以下の AWS のサービスを表すサービス*レイヤー*が含まれています。
+ Amazon Relational Database Service 
+ エラスティックロードバランシング
+ Amazon Elastic Container Service

レイヤーにより、インストールするパッケージ、インストールするパッケージの設定内容、アプリケーションをデプロイする方法などを完全に制御することができます。

## レシピおよびライフサイクルイベント
<a name="welcome-classic-lifecycle"></a>

レイヤーによって、[Chef レシピ](http://docs.chef.io/recipes.html)に基づいてインスタンスへのパッケージのインストール、アプリケーションのデプロイ、スクリプトの実行などのタスクが処理されます。 OpsWorks スタックの主な機能の 1 つは、セットアップ、設定、デプロイ、デプロイ解除、シャットダウンの一連の*ライフサイクルイベント*です。これにより、各インスタンスで指定された一連のレシピが適切なタイミングで自動的に実行されます。

各レイヤーでは、これらの各ライフサイクルイベントに一連のレシピが割り当てられており、そのイベントとレイヤーのさまざまなタスクの処理に使用されます。たとえば、ウェブサーバーレイヤーに属するインスタンスの起動が終了した後、 OpsWorks Stacks は以下を実行します。

1. レイヤーの Setup レシピを実行します。これにより、ウェブサーバーのインストールや設定などのタスクが実行できます。

1. レイヤーの Deploy レシピを実行します。これにより、リポジトリからインスタンスにレイヤーのアプリケーションがデプロイされ、サービスの再開などの関連タスクが実行されます。

1. スタックのすべてのインスタンスで Configure レシピを実行すると、各インスタンスは新しいインスタンスに適合するように必要に応じて設定を調整できます。

   たとえば、インスタンスでロードバランサーを実行しながら、Configure レシピで新しいインスタンスに含めるロードバランサーの設定を変更できます。

インスタンスが複数のレイヤーに属している場合、 OpsWorks Stacks は各レイヤーのレシピを実行するため、PHP アプリケーションサーバーと MySQL データベースサーバーをサポートするインスタンスを持つことができます。

レシピを実装している場合は、各レシピを適切なレイヤーとイベントに割り当てると、 OpsWorks スタックによって適切なタイミングで自動的に実行されます。また、レシピはいつでも手動で実行することができます。

## インスタンス
<a name="welcome-classic-instances"></a>

*instance* (インスタンス) とは、Amazon EC2 インスタンスなどの 1 つのコンピューティングリソースを意味します。インスタンスは、オペレーティングシステムやサイズなど基本的な設定を定義します。Elastic IP アドレスや Amazon EBS ボリュームなどのその他の設定は、インスタンスのレイヤーによって定義されます。レイヤーのレシピは、パッケージをインストールして設定したりアプリケーションをデプロイしたりするタスクを実行することで設定を完了します。

 OpsWorks スタックを使用してインスタンスを作成し、レイヤーに追加できます。インスタンスを起動すると、 OpsWorks スタックはインスタンスとそのレイヤーで指定された設定を使用して Amazon EC2 インスタンスを起動します。Amazon EC2 インスタンスの起動後、 OpsWorks スタックはインスタンスとサービス間の通信を処理するエージェントをインストールし、ライフサイクルイベントに応じて適切なレシピを実行します。

OpsWorks スタックでは、次のインスタンスタイプがサポートされています。インスタンスタイプは、起動と停止の方法によって特徴付けられます。
+ **24/7 インスタンス**は、ユーザーが手動で起動し、ユーザーが停止するまで実行されます。
+ **時間ベースのインスタンス**は、指定された日次および週次のスケジュールで OpsWorks スタックによって実行されます。

  このインスタンスにより、予想される使用パターンに対応するようにスタックのインスタンス数を自動的に調整することが可能となります。
+ **負荷ベースのインスタンス**は、CPU OpsWorks 使用率などの指定された負荷メトリクスに基づいて、 スタックによって自動的に起動および停止します。

  このインスタンスにより、スタックのインスタンス数を着信トラフィックの変動に対応するように自動的に調整することが可能となります。負荷ベースのインスタンスは Linux ベースのスタックにのみ使用できます。

OpsWorks スタックはインスタンスの自動ヒーリングをサポートします。エージェントがサービスとの通信を停止すると、 OpsWorks Stacks は自動的にインスタンスを停止して再起動します。

Linux ベースのコンピューティングリソースを スタックの外部で作成された OpsWorks スタックに組み込むこともできます。
+ コンソール、CLI、または API を使用して直接作成した Amazon EC2 インスタンス。
+ 仮想マシンで実行しているインスタンスを含め、独自のハードウェアで実行している *On-premises* (オンプレミス) インスタンス。

これらのインスタンスのいずれかを登録すると、そのインスタンスは OpsWorks スタックインスタンスになり、 スタックで OpsWorks 作成するインスタンスとほぼ同じ方法で管理できます。

## アプリケーション
<a name="welcome-classic-apps"></a>

Amazon S3 バケットなどのリポジトリに、アプリケーションおよび関連ファイルを保存します。各アプリケーションは、アプリケーションタイプを指定した *App* として表されます。App には、リポジトリからインスタンスにアプリケーションをデプロイするために必要な情報 (リポジトリ URL、パスワードなど) も指定します。アプリケーションをデプロイすると、 OpsWorks スタックはデプロイイベントをトリガーし、スタックのインスタンスでデプロイレシピを実行します。

以下の方法でアプリケーションをデプロイすることができます。
+ 自動 — インスタンスを起動すると、 OpsWorks スタックはインスタンスの Deploy レシピを自動的に実行します。
+ 手動 - 新しいアプリケーションを準備する場合または既存のアプリケーションを更新する必要がある場合、ユーザーは手動でオンラインインスタンスの Deploy レシピを実行できます。

通常 OpsWorks 、スタックはスタック全体で Deploy レシピを実行するため、他のレイヤーのインスタンスは設定を適切に変更できます。ただし、すべてのアプリケーションサーバーのインスタンスに新しいアプリケーションをデプロイする前に、それをテストする必要がある場合などには、デプロイをインスタンスのサブセットに制限することができます。

## スタックのカスタマイズ
<a name="welcome-classic-customizing"></a>

OpsWorks スタックでは、特定の要件に合わせてレイヤーをカスタマイズするためのさまざまな方法が提供されています。
+  OpsWorks スタックがパッケージを設定する方法を変更するには、さまざまな設定を表す属性を上書きするか、設定ファイルの作成に使用されるテンプレートを上書きします。
+ スクリプトの実行や標準外のパッケージのインストールおよび設定などのタスクを実行する独自のレシピを指定することによって、既存のレイヤーを拡張することができます。

すべてのスタックには、レシピの最小限のセットで始める 1 つ以上のレイヤーを含めることができます。パッケージのインストール、アプリケーションのデプロイなどのタスクを処理するレシピを実装することで、レイヤーに機能を追加します。カスタムレシピおよび関連するファイルを 1 つ以上の *cookbooks* (クックブック) にまとめ、そのクックブックを Amazon S3 や Git などのリポジトリに保管します。

レシピは手動で実行できますが、 スタックでは、5 OpsWorks つの*ライフサイクルイベントの*セットをサポートすることでプロセスを自動化することもできます。
+ **Setup** イベントは、新しいインスタンスが正常にブートした後に発生します。
+ **Configure** イベントは、インスタンスがオンライン状態に移行したときとオンライン状態から移行したときに、スタックのすべてのインスタンスで発生します。
+ **Deploy** イベントは、ユーザーがアプリケーションをデプロイするときに発生します。
+ **Undeploy** イベントは、ユーザーがアプリケーションを削除するときに発生します。
+ **Shutdown** イベントは、ユーザーがインスタンスを停止するときに発生します。

各レイヤーで、各イベントに任意の数のレシピを割り当てることができます。レイヤーのインスタンスでライフサイクルイベントが発生すると、 OpsWorks Stacks は関連するレシピを実行します。たとえば、アプリサーバーインスタンスで Deploy イベントが発生すると、 OpsWorks Stacks は Layer の Deploy レシピを実行してアプリをダウンロードしたり、関連するタスクを実行したりできます。

## リソース管理
<a name="welcome-classic-resources"></a>

[Elastic IP アドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)などの他の AWS リソースをスタックに組み込むことができます。 OpsWorks スタックコンソールまたは API を使用して、リソースをスタックに登録し、登録されたリソースをインスタンスにアタッチまたはデタッチし、リソースをあるインスタンスから別のインスタンスに移動できます。

## セキュリティと権限
<a name="welcome-classic-security"></a>

AWS OpsWorks スタックは AWS Identity and Access Management (IAM) OpsWorks と統合され、ユーザーが スタックにアクセスする方法を堅牢な方法で制御できます。これには以下が含まれます。
+ 個々のユーザーがレイヤーやインスタンスなどのスタックリソースを作成できるかどうか、SSH または RDP を使用してスタックの Amazon EC2 インスタンスに接続できるかどうかなど、個々のユーザーが各スタックを操作する方法。
+  OpsWorks スタックがユーザーに代わって Amazon EC2 インスタンスなどの AWS リソースとやり取りする方法。
+ スタックインスタンスで実行されるアプリケーションが Amazon OpsWorks S3 バケットなどの AWS リソースにアクセスする方法。 Amazon S3 
+ ユーザーの SSH パブリックキーと RDP パスワードを管理する方法、およびインスタンスに接続する方法。

## モニタリングとロギング
<a name="welcome-classic-monitoring"></a>

OpsWorks スタックには、スタックのモニタリングや、スタックやレシピに関する問題のトラブルシューティングに役立ついくつかの機能があります。すべてのスタック用:
+ OpsWorks スタックは、Linux スタックのカスタム CloudWatch メトリクスのセットを提供します。これらは、**モニタリング**ページで便宜上要約されています。

  OpsWorks スタックは、Windows スタックの標準の CloudWatch メトリクスをサポートします。CloudWatch コンソールでそれらをモニタリングできます。
+ CloudTrail ログ。AWS アカウントの OpsWorks スタックによって、または スタックに代わって行われた API コールを記録します。
+ イベントログ。スタックのすべてのイベントをリスト表示します。
+ Chef ログ。実行されたレシピや発生したエラーなど、各インスタンスで各ライフサイクルイベントに対して起こったことの詳細を表示します。

Linux ベースのスタックには、スタックのインスタンスに関する詳細モニタリングデータの収集と表示に使用できる Ganglia マスターレイヤーもあります。

## CLI、SDK、 CloudFormation テンプレート
<a name="welcome-classic-sdk"></a>

コンソールに加えて、 OpsWorks スタックは、任意のオペレーションの実行に使用できる複数の言語のコマンドラインインターフェイス (CLI) と SDKs もサポートしています。以下の機能を考慮してください。
+  OpsWorks スタック CLI は [AWS CLI](https://aws.amazon.com/documentation/cli/) の一部であり、コマンドラインから任意のオペレーションを実行するために使用できます。

  AWS CLI は、複数の AWS サービスをサポートし、Windows、Linux、または OS X システムにインストールできます。
+ OpsWorks スタックは [AWS Tools for Windows PowerShell](https://aws.amazon.com/documentation/powershell/) に含まれており、Windows PowerShell コマンドラインから任意のオペレーションを実行するために使用できます。
+  OpsWorks スタック SDK は AWS SDKs に含まれており、[Java](https://aws.amazon.com/documentation/sdkforjava/)、[JavaScript](https://aws.amazon.com/documentation/sdkforjavascript/) (ブラウザベースおよび Node.js)、[.NET](https://aws.amazon.com/documentation/sdkfornet/)、[PHP](https://aws.amazon.com/documentation/sdkforphp/)、[Python (boto)](http://boto.readthedocs.org/en/latest/)、または [Ruby](https://aws.amazon.com/documentation/sdkforruby/) で実装されたアプリケーションで使用できます。

 CloudFormation テンプレートを使用してスタックをプロビジョニングすることもできます。「[AWS OpsWorks のスニペット](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-opsworks.html)」に記載されたいくつかの例を参照してください。