Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

スタックの作成とアプリケーションの実行 - AWS OpsWorks

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

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

スタックの作成とアプリケーションの実行

重要

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

このセクションでは、Tomcat クックブックを使用して、SimpleJSP という名前のシンプルな Java サーバー ページ (JSP) アプリケーションを実行する基本的なスタック設定を実装する方法について説明します。スタックは、TomCustom という名前の Tomcat ベースのカスタムレイヤーと MySQL で構成されます。SimpleJSP は、TomCustom にデプロイされ、MySQL データベースの一部の情報を表示します。 AWS OpsWorks スタックの使用方法の基本にまだ慣れていない場合は、まず「」を参照してくださいChef 11 Linux スタックの使用開始

SimpleJSP アプリケーション

SimpleJSP アプリケーションは、データベース接続のセットアップ方法、およびスタックの MySQL データベースからデータを取得する方法の基本を示します。

<html> <head> <title>DB Access</title> </head> <body> <%@ page language="java" import="java.sql.*,javax.naming.*,javax.sql.*" %> <% StringBuffer output = new StringBuffer(); DataSource ds = null; Connection con = null; Statement stmt = null; ResultSet rs = null; try { Context initCtx = new InitialContext(); ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mydb"); con = ds.getConnection(); output.append("Databases found:<br>"); stmt = con.createStatement(); rs = stmt.executeQuery("show databases"); while (rs.next()) { output.append(rs.getString(1)); output.append("<br>"); } } catch (Exception e) { output.append("Exception: "); output.append(e.getMessage()); output.append("<br>"); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (Exception e) { output.append("Exception (during close of connection): "); output.append(e.getMessage()); output.append("<br>"); } } %> <%= output.toString() %> </body> </html>

SimpleJSP は、DataSource オブジェクトを使用して MySQL データベースと通信します。Tomcat は、ウェブアプリケーションのコンテキスト設定ファイル内のデータを使用し、DataSource オブジェクトを作成して初期化し、論理名に結合します。次に、Java Naming and Directory Interface (JNDI) ネーミングサービスで論理名を登録します。適切な DataSource オブジェクトのインスタンスを取得するには、InitialContext オブジェクトを 作成し、リソースの論理名をオブジェクトの lookup メソッドに渡します。これにより、適切なオブジェクトを取得します。SimpleJSP の例の論理名 java:comp/env/jdbc/mydb には、次のコンポーネントがあります。

  • ルート名前空間の java。名前の残りの部分とはコロン (:) で区切られます。

  • 任意の追加の名前空間。スラッシュ (/) で区切られます。

    Tomcat は、comp/env 名前空間にリソースを自動的に追加します。

  • リソース名。ウェブアプリケーションのコンテキスト設定ファイルで定義され、名前空間とはスラッシュで区切られます。

    この例では、リソース名は jdbc/mydb です。

データベースへの接続を確立するために、SimpleJSP は次の処理を実行します。

  1. DataSource オブジェクトの getConnection メソッドを呼び出し、Connection オブジェクトを返します。

  2. Connection オブジェクトの createStatement メソッドを呼び出し、データベースとの通信に使用する Statement オブジェクトを作成します。

  3. 適切な Statement メソッドを呼び出すことで、データベースと通信します。

    SimpleJSP は、executeQuery を呼び出し、サーバーのデータベースをリスト表示する SHOW DATABASES クエリを実行します。

executeQuery メソッドは、クエリの結果を含む ResultSet オブジェクトを返します。SimpleJSP は、返された ResultSet オブジェクトからデータベース名を取得し、それらを連結して出力文字列を作成します。最後に、この例では ResultSetStatement、および Connection の各オブジェクトを閉じます。JSP と JDBC の詳細については、「JavaServer Pages テクノロジー」と「JDBC の基本」をそれぞれ参照してください。

スタックで SimpleJSP を使用するには、SimpleJSP をリポジトリに配置する必要があります。サポートされている任意のリポジトリを使用できますが、この後のセクションで説明する例のスタックで SimpleJSP を使用するには、SimpleJSP をパブリックの S3 アーカイブに配置する必要があります。その他の標準のリポジトリの使用方法の詳細については、「クックブックリポジトリ」を参照してください。

SimpleJSP を S3 アーカイブ リポジトリに配置するには
  1. コード例を simplejsp.jsp という名前のファイルにコピーし、そのファイルを simplejsp という名前のディレクトリに配置します。

  2. .zip ディレクトリの simplejsp アーカイブを作成します。

  3. パブリックの Amazon S3 バケットを作成し、simplejsp.zip をそのバケットにアップロードして、ファイルをパブリックにします。

    このタスクを実行する方法については、「Amazon Simple Storage Service の使用開始」を参照してください。

スタックの作成

SimpleJSP を実行するには、次のレイヤーを含んだスタックが必要です。

  • バックエンド MySQL サーバーをサポートする MySQL レイヤー。

  • Tomcat サーバー インスタンスをサポートするために Tomcat クックブックを使用するカスタムレイヤー。

スタックを作成するには
  1. AWS OpsWorks スタックダッシュボードで、スタックの追加をクリックして新しいスタックを作成し、詳細 >> をクリックしてすべてのオプションを表示します。スタックを次のように設定します。

    • Name (名前) - ユーザー定義のスタック名です。この例では TomStack を使用します。

    • [Use custom Chef cookbooks] (カスタムChefのクックブックを使用) - トグルを [Yes] (はい) に設定します。いくつかの追加オプションが表示されます。

    • Repository type (リポジトリタイプ) - Git

    • Repository URL (リポジトリのURL) - git://github.com/amazonwebservices/opsworks-example-cookbooks.git

    • Custom Chef JSON (カスタムChef JSON) - 次の JSON を追加します。

      { "tomcat": { "base_version": 7, "java_opts": "-Djava.awt.headless=true -Xmx256m" }, "datasources": { "ROOT": "jdbc/mydb" } }

    残りのオプションについては、デフォルトをそのまま使用できます。

    カスタム JSON は、次の処理を実行します。

    • Tomcat クックブックの ['base_version'] 属性を上書きして Tomcat のバージョンを 7 に設定します。デフォルト値は 6 です。

    • Tomcat クックブックの ['java_opts'] 属性を上書きし、インスタンスがヘッドレスであることを指定して JVM の最大ヒープサイズを 256 MB に設定します。デフォルト値では、Amazon Linux を実行しているインスタンスに対してはオプションが設定されません。

    • ['datasources] 属性値を指定します。これにより、「tomcat::context」で説明するように、JDBC リソース名 (jdbc/mydb) がウェブアプリケーションのコンテキスト名 (ROOT) に割り当てられます。

      この最後の属性にはデフォルト値はありません。カスタム JSON で設定する必要があります。

    Configuration Management interface showing Chef version options and custom JSON input field.
  2. [Add a layer] をクリックします。[Layer type] では [MySQL] を選択します。次に、[Add Layer] をクリックします。

  3. ナビゲーションペインで [Instances] をクリックし、[Add an instance] をクリックします。[Add Instance] をクリックして、デフォルトの値をそのまま使用します。インスタンスに関する行で、[start] をクリックします。

  4. [Layers] (レイヤー) ページに戻り、[+ Layer] (+ レイヤー) をクリックしてレイヤーを追加します。[Layer type] では [Custom] をクリックします。このテンプレートでは、TomCustomtomcustom を、それぞれレイヤーの名前と短縮名として使用します。

    Add Layer form with Custom layer type, Name, and Short name fields for creating a customized layer.
  5. [Layers] (レイヤー) ページで、カスタムレイヤーに対して、[Recipes] (レシピ) をクリックし、[Edit] (編集) をクリックします。[Custom Chef Recipes] で、次のように、Tomcat クックブックのレシピをレイヤーのライフサイクルイベントに割り当てます。

    • [Setup] には tomcat::setup を入力し、[+] をクリックします。

    • [Configure] には tomcat::configure を入力し、[+] をクリックします。

    • [Deploy] には tomcat::deploy を入力し、[+] をクリックします。次に、[Save] をクリックします。

      .

    Custom Chef Recipes interface showing setup, configure, and deploy steps with options.
  6. ナビゲーションペインで [Apps] をクリックし、[Add an app] をクリックします。次のオプションを指定し、[Add App] をクリックします。

    • Name – アプリケーションの名前。この例では SimpleJSP を使用しており、 スタックによって生成される短縮名は simplejsp AWS OpsWorks になります。

    • App type (アプリケーションタイプ) - このオプションでは Other (その他) を設定します。

      AWS OpsWorks スタックは、関連するサーバーインスタンスに標準アプリケーションタイプを自動的にデプロイします。[App type] でこれ以外を選択すると、 AWS OpsWorks スタックは単純に Deploy レシピを実行し、このレシピでデプロイを処理することになります。

    • Document root (ドキュメントルート) - このオプションを ROOT に設定します。

      Document root (ドキュメントルート) の値は、コンテキスト名を指定します。

    • Repository type (リポジトリタイプ) - このオプションを [S3 Archive (S3 アーカイブ)] に設定します。

    • Repository URL (リポジトリのURL) - このオプションは、先に作成したアプリケーションの Amazon S3 の URL に設定します。

    その他のオプションについては、デフォルトの設定を使用します。

    Application settings form with fields for name, app type, document root, and source details.
  7. インスタンスページを使用して TomCustom レイヤーにインスタンスを追加して起動します。 AWS OpsWorks スタックは Setup レシピの完了後に新しいインスタンスで Deploy レシピを自動的に実行するため、インスタンスを起動すると SimpleJSP もデプロイされます。

  8. TomCustom インスタンスがオンラインになったら、[Instances] ページでそのインスタンス名をクリックして詳細を確認します。パブリック IP アドレスをコピーします。http://publicIP/tc/appname.jsp のように URL を作成します。たとえば、この URL は http://50.218.191.172/tc/simplejsp.jsp のようになります。

    注記

    リクエストを Tomcat に転送する Apache の URL は、デフォルトの ['tomcat']['apache_tomcat_bind_path'] 属性である /tc/ に設定されます。SimpleJSP ドキュメントのルートは、ROOT に設定されます。これは、/ に解決される特殊な値です。したがって URL は ".../tc/simplejsp.jsp" になります。

  9. 前のステップの URL をブラウザに貼り付けます。次のように表示されます。

    Databases found: information_schema simplejsp test
    注記

    スタックに MySQL インスタンスがある場合、 AWS OpsWorks Stacks はアプリごとに、アプリの短縮名で という名前のデータベースを自動的に作成します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.