AWS OpsWorks スタック - AWS OpsWorks

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

AWS OpsWorks スタック

重要

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

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

Diagram showing users connecting to app servers through internet and load balancer, with a shared database.

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

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

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

AWS OpsWorks stack with load balancer, application servers, and Amazon RDS instance.

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

スタック

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

レイヤー

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

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

すべてのスタックについて、 AWS OpsWorks スタックには、以下のサービスを表すAWSサービスレイヤー が含まれます。

  • Amazon Relational Database Service

  • Elastic Load Balancing

  • Amazon Elastic Container Service

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

レシピと LifeCycle イベント

レイヤーによって、Chef レシピに基づいてインスタンスへのパッケージのインストール、アプリケーションのデプロイ、スクリプトの実行などのタスクが処理されます。キーの 1 つ AWS OpsWorks スタック機能は、セットアップ、設定、デプロイ、デプロイ解除、シャットダウンなどの一連のライフサイクルイベントであり、各インスタンスで指定されたレシピセットを適切なタイミングで自動的に実行します。

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

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

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

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

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

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

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

インスタンス

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

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

AWS OpsWorks スタックは、次のインスタンスタイプをサポートします。インスタンスタイプは、起動と停止の方法によって特徴付けられます。

  • 24/7 インスタンスは、ユーザーが手動で起動し、ユーザーが停止するまで実行されます。

  • 時間ベースのインスタンスは によって実行されます。 AWS OpsWorks 指定された日次および週次のスケジュールのスタック。

    このインスタンスにより、予想される使用パターンに対応するようにスタックのインスタンス数を自動的に調整することが可能となります。

  • ロードベースのインスタンスは、 によって自動的に開始および停止されます。 AWS OpsWorks スタックは、CPU使用率など、指定されたロードメトリクスに基づきます。

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

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

Linux ベースのコンピューティングリソースを、 の外部で作成されたスタックに組み込むこともできます。 AWS OpsWorks スタック。

  • Amazon EC2コンソール、、CLIまたは を使用して直接作成した Amazon EC2インスタンスAPI。

  • 仮想マシンで実行しているインスタンスを含め、独自のハードウェアで実行している On-premises (オンプレミス) インスタンス。

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

アプリケーション

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

以下の方法でアプリケーションをデプロイすることができます。

  • 自動 — インスタンスを起動すると、 AWS OpsWorks スタックは、インスタンスの Deploy レシピを自動的に実行します。

  • 手動 - 新しいアプリケーションを準備する場合または既存のアプリケーションを更新する必要がある場合、ユーザーは手動でオンラインインスタンスの Deploy レシピを実行できます。

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

スタックのカスタマイズ

AWS OpsWorks スタックには、特定の要件を満たすようにレイヤーをカスタマイズするさまざまな方法が用意されています。

  • 方法を変更することができます。 AWS OpsWorks スタックは、さまざまな設定を表す属性を上書きするか、設定ファイルの作成に使用されるテンプレートを上書きすることでパッケージを設定します。

  • スクリプトの実行や標準外のパッケージのインストールおよび設定などのタスクを実行する独自のレシピを指定することによって、既存のレイヤーを拡張することができます。

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

レシピは手動で実行できますが、 AWS OpsWorks スタックでは、次の 5 つのライフサイクルイベントのセットをサポートすることで、プロセスを自動化することもできます。

  • Setup イベントは、新しいインスタンスが正常にブートした後に発生します。

  • Configure イベントは、インスタンスがオンライン状態に移行したときとオンライン状態から移行したときに、スタックのすべてのインスタンスで発生します。

  • Deploy イベントは、ユーザーがアプリケーションをデプロイするときに発生します。

  • Undeploy イベントは、ユーザーがアプリケーションを削除するときに発生します。

  • Shutdown イベントは、ユーザーがインスタンスを停止するときに発生します。

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

リソース管理

Elastic IP アドレス などの他のAWSリソースをスタックに組み込むことができます。を使用できます。 AWS OpsWorks スタックコンソールまたは APIを使用して、リソースをスタックに登録し、登録されたリソースをインスタンスにアタッチまたはデタッチし、リソースをあるインスタンスから別のインスタンスに移動します。

セキュリティと権限

AWS OpsWorks スタックは と統合されます。 AWS Identity and Access Management (IAM) ユーザーが にアクセスする方法を制御する堅牢な方法を提供する AWS OpsWorks 以下を含む スタック:

  • レイヤーやインスタンスなどのスタックリソースを作成できるかどうか、スタックの Amazon インスタンスRDPに SSHまたは を使用して接続できるかどうかなど、個々のユーザーが各スタックとやり取りする方法EC2。

  • その方法は? AWS OpsWorks スタックはユーザーに代わって Amazon EC2インスタンスなどのAWSリソースとやり取りできます。

  • で実行されるアプリの仕組み AWS OpsWorks スタックインスタンスは、Amazon S3 バケットなどのAWSリソースにアクセスできます。

  • ユーザーのパブリックSSHキーとRDPパスワードを管理し、インスタンスに接続する方法。

モニタリングとロギング

AWS OpsWorks スタックには、スタックのモニタリングや、スタックやレシピに関する問題のトラブルシューティングに役立ついくつかの機能があります。すべてのスタック用:

  • AWS OpsWorks スタックは Linux スタックのカスタム CloudWatch メトリクスのセットを提供します。これらのメトリクスは、モニタリングページで便宜上要約されています。

    AWS OpsWorks スタックは Windows スタックの標準 CloudWatch メトリクスをサポートします。 CloudWatch コンソールでモニタリングできます。

  • CloudTrail ログ。 によって、または に代わって行われたAPI呼び出しを記録します。 AWS OpsWorks AWS アカウントのスタック。

  • イベントログ。スタックのすべてのイベントをリスト表示します。

  • Chef ログ。実行されたレシピや発生したエラーなど、各インスタンスで各ライフサイクルイベントに対して起こったことの詳細を表示します。

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

CLI、SDK、および AWS CloudFormation テンプレート

コンソールに加えて、 AWS OpsWorks スタックは、コマンドラインインターフェイス (CLI) と、任意のオペレーションの実行に使用できる複数の言語もサポートSDKsしています。以下の機能を考慮してください。

  • - AWS OpsWorks スタックCLIは AWS CLIの一部であり、コマンドラインから任意のオペレーションを実行するために使用できます。

    は複数のAWSサービスAWSCLIをサポートし、Windows、Linux、または OS X システムにインストールできます。

  • AWS OpsWorks スタックは AWS Tools for Windows PowerShell に含まれており、Windows PowerShell コマンドラインから任意のオペレーションを実行するために使用できます。

  • - AWS OpsWorks スタックSDKは AWS に含まれておりSDKs、Java JavaScript (ブラウザベースおよび Node.js)、.NET、、Python (boto)、または Ruby PHPで実装されているアプリケーションで使用できます。

を使用することもできます。 AWS CloudFormation スタックをプロビジョニングするための テンプレート。いくつかの例については、AWS OpsWorks 「スニペット」を参照してください。