

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

# カスタム Tomcat サーバーレイヤーの作成
<a name="create-custom"></a>

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

**注記**  
このトピックでは、Linux スタックのカスタムレイヤーを実装する方法について説明します。ただし、一部の基本的な原則とコードは、特に、アプリケーションのデプロイのセクションで、Windows スタックのカスタムレイヤーの実装にも当てはまります。

 OpsWorks スタックインスタンスで非標準パッケージを使用する最も簡単な方法は、[既存のレイヤーを拡張](workingcookbook-extend-package.md)することです。ただし、この方法は、レイヤーのインスタンスに標準と標準外の両方のパッケージをインストールして実行するため、常に望ましいわけではありません。要求が厳しくなりますがより強力な方法は、カスタムレイヤーを実装することです。そうすれば、レイヤーのインスタンスに対して、次の事項をほぼ完全にコントロールできるようになります。
+ どのパッケージをインストールするか
+ 各パッケージをどのように設定するか
+ リポジトリからインスタンスにどのようにアプリケーションをデプロイするか

コンソールまたは API のどちらを使用する場合も、「[カスタムレイヤー](workinglayers-custom.md)」で説明しているように、その他すべてのレイヤーと同様にカスタムレイヤーを作成して管理します。ただし、カスタムレイヤーの組み込みのレシピは、Ganglia クライアントをインストールして Ganglia マスターにメトリクスをレポートするなど、一部の最も基本的なタスクだけを実行します。カスタムレイヤーのインスタンスが最小限の機能にとどまらないようにするために、パッケージのインストールと設定、アプリケーションのデプロイなどのタスクを処理するための Chef レシピと関連ファイルを備えた 1 つ以上のカスタムクックブックを実装する必要があります。ただし、必ずしもすべてを最初から新しく実装する必要はありません。たとえば、標準のリポジトリの 1 つにアプリケーションを保存する場合は、組み込みのレシピを使用することで、アプリケーションをレイヤーのインスタンスにインストールする作業の多くを処理できます。

**注記**  
Chef を初めて使う場合は、最初に「[クックブック 101](cookbooks-101.md)」をお読みください。これは、クックブックを実装してさまざまな一般的なタスクを実行する方法の基本事項を紹介するチュートリアルです。

次のウォークスルーでは、Tomcat アプリケーションサーバーをサポートするカスタムレイヤーの実装方法を説明します。このレイヤーは、パッケージのインストール、デプロイなどを処理するためのレシピを含む Tomcat というカスタムクックブックに基づいています。このウォークスルーは、Tomcat クックブックからの抜粋を含んでいます。このクックブック全体は、クックブックの [GitHub リポジトリ](https://github.com/amazonwebservices/opsworks-example-cookbooks/tree/master/tomcat)からダウンロードできます。[Opscode Chef](http://www.opscode.com/chef/) に慣れていない場合は、最初に「[クックブックとレシピ](workingcookbook.md)」をお読みください。

**注記**  
OpsWorks スタックには、本番稼働用のフル機能の [Java App Server レイヤー](layers-java.md)が含まれています。Tomcat クックブックの目的は、カスタムレイヤーの実装方法を示すことです。したがって、SSL などの機能を含まない限定バージョンの Tomcat のみをサポートしています。フル機能の実装の例については、組み込みの [opsworks\$1java](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/opsworks_java) クックブックを参照してください。

Tomcat クックブックは、インスタンスが次の特徴を持つカスタムレイヤーをサポートします。
+ インスタンスは、Apache のフロントエンドで Tomcat Java アプリケーションサーバーをサポートします。
+ Tomcat は、アプリケーションが JDBC `DataSource` オブジェクトを使用して、バックエンドデータストアとして機能する個別の MySQL インスタンスに接続できるように設定されています。

このプロジェクトのクックブックには、複数の主要コンポーネントがあります。
+ [属性ファイル](create-custom-attributes.md)には、さまざまなレシピで使用される設定が含まれます。
+ [Setup レシピ](create-custom-setup.md)[は、レイヤーの Setup ライフサイクルイベントに割り当てられます。](workingcookbook-events.md)このレシピは、インスタンスの起動後に実行され、パッケージのインストールや設定ファイルの作成などのタスクを行います。
+ [Configure レシピ](create-custom-configure.md)は、レイヤーの Configure ライフサイクルイベントに割り当てられます。スタックの設定変更後、主にインスタンスがオンラインになったときやオフラインになったときに実行され、必要な構成変更を処理します。
+ Deploy レシピは、レイヤーの Deploy [ライフサイクル](create-custom-deploy.md)イベントに割り当てられます。このレシピは、Setup レシピの後、アプリケーションを手動でデプロイし、レイヤーのインスタンスでコードおよび関連ファイルをインストールするときに実行されます。また、サービスの再起動などの関連タスクを処理するためにも実行されます。

最後のセクションである 「[スタックの作成とアプリケーションの実行](create-custom-stack.md)」では、Tomcat クックブックに基づいてカスタムレイヤーを含むスタックを作成する方法、および別個の MySQLレイヤーに属するインスタンスで実行中の MySQL データベースのデータを表示するシンプルな JSP アプリケーションをデプロイして実行する方法について説明します。

**注記**  
Tomcat クックブックレシピは、一部の OpsWorks スタックの組み込みレシピによって異なります。各レシピのオリジンを明確にするために、このトピックでは Chef *cookbookname*::*recipename* 規則を使用してレシピを識別します。

**Topics**
+ [属性ファイル](create-custom-attributes.md)
+ [Setup レシピ](create-custom-setup.md)
+ [Configure レシピ](create-custom-configure.md)
+ [Deploy レシピ](create-custom-deploy.md)
+ [スタックの作成とアプリケーションの実行](create-custom-stack.md)