AWS OpsWorks
ユーザーガイド (API バージョン 2013-02-18)

アプリケーションの追加

アプリケーションサーバーにアプリケーションをデプロイする際、最初に行うことは、そのアプリケーションをスタックに追加することです。app はアプリケーションを表し、さまざまなメタデータ (アプリケーションの名前や種類など) と、アプリケーションをサーバーインスタンスにデプロイするために必要な情報 (リポジトリ URL など) を保持します。アプリケーションをスタックに追加するには、Manage 権限が必要です。詳細については、「ユーザーアクセス許可の管理」を参照してください。

注記

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

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

  1. 目的のリポジトリ (Amazon S3 アーカイブ、Git リポジトリ、Subversion リポジトリ、HTTP アーカイブなど) にコードを追加します。詳細については、「Application Source」を参照してください。

  2. ナビゲーションペインで [Apps] をクリックします。最初のアプリケーションの場合、[Apps] ページで [Add an app] をクリックします。それ以降のアプリケーションについては、[+App] をクリックします。

  3. 次のセクションの説明に従い、[App New] ページを使用してアプリケーションを設定します。

アプリケーションの設定

[Add App] ページは、[Settings]、[Application source]、[Data Sources]、[Environment Variables]、[Add Domains]、[SSL Settings] の各セクションで構成されています。

設定

名前

UI での表示に使用されるアプリケーションの名前です。また、AWS OpsWorks スタックでは、内部的に使用されるアプリケーションの短縮名を生成したり、スタック設定やデプロイメント属性でアプリケーションを識別する際にもこの名前が使用されます。アプリケーションをスタックに追加した後、ナビゲーションペインの [Apps] をクリックし、アプリケーションの名前をクリックして詳細ページを開くと短縮名を確認できます。

[Document root]

アプリケーションの deploy 属性の [:document_root] 属性には、AWS OpsWorks スタックによって [Document root (ドキュメントのルート)] 設定が割り当てられます。デフォルト値は null です。デプロイレシピで標準の Chef ノード構文を使い、その値を deploy 属性から取得して、特定のコードをサーバー上の適切な場所にデプロイすることができます。アプリケーションのデプロイ方法の詳細については、「Deploy レシピ」を参照してください。

Application Source

Git、Amazon S3 bundle、HTTP bundle、Other の各リポジトリからアプリケーションをデプロイできます。いずれのリポジトリタイプも、リポジトリのタイプとリポジトリの URL を指定する必要があります。リポジトリタイプにはそれぞれ固有の要件があります。以下、それらの要件について説明します。

注記

AWS OpsWorks スタックは、標準のリポジトリから組み込みサーバー Layer にアプリケーションを自動的にデプロイします。Other リポジトリタイプを使用する場合 (Windows スタックの場合は唯一のオプション)、AWS OpsWorks スタックはリポジトリ情報をアプリケーションの deploy 属性に配置しますが、デプロイタスクを処理するにはカスタムレシピを実装する必要があります。

HTTP アーカイブ

パブリックにアクセス可能な HTTP サーバーをリポジトリとして使用するには、次の手順を使用します。

  1. アプリケーションのコードとその関連ファイルをすべて含むフォルダの圧縮アーカイブ (zip、gzip、bzip2、Java WAR、tarball) を作成します。

    注記

    AWS OpsWorks スタックは非圧縮の tarball をサポートしません。

  2. アーカイブファイルをサーバーにアップロードします。

  3. コンソールでリポジトリを指定するには、リポジトリタイプとして [HTTP Archive] を選択し、URL を入力します。

    アーカイブがパスワードで保護されている場合、[Application Source] でユーザー名とパスワードを入力します。

Amazon S3 アーカイブ

Amazon Simple Storage Service バケットをリポジトリとして使用するには、次の手順を使用します。

  1. パブリックまたはプライベートの Amazon S3 バケットを作成します。詳細については、「Amazon S3 ドキュメント」を参照してください。

  2. AWS OpsWorks スタックがプライベートバケットにアクセスするには、少なくとも Amazon S3 バケットへの読み取りアクセス権を持つ IAM ユーザーでなければならず、アクセスキー ID とシークレットアクセスキーが必要です。詳細については、「AWS Identity and Access Management (IAM) ドキュメント」を参照してください。

  3. コードとすべての関連ファイルを単一フォルダに配置し、そのフォルダを圧縮アーカイブ (zip、gzip、bzip2、Java WAR、tarball のいずれか) に保存します。

    注記

    AWS OpsWorks スタックは非圧縮の tarball をサポートしません。

  4. アーカイブファイルを Amazon S3 バケットにアップロードし、URL を記録します。

  5. AWS OpsWorks スタックコンソールでリポジトリを指定するには、[Repository type (リポジトリタイプ)] を [S3 Archive (S3 アーカイブ)] に設定し、アーカイブの URL を入力します。プライベートアーカイブの場合、ポリシーがバケットへのアクセス権限を付与する AWS アクセスキー ID とシークレットアクセスキーを提供する必要があります。パブリックアーカイブでは、これらの設定を空白のままにします。

Git リポジトリ

Git リポジトリは、ソース管理とバージョニングを備えています。AWS OpsWorks スタックは、プライベートにホストされる Git サーバーに加えて、パブリックにホストされるリポジトリサイト (GitHubBitbucket など) をサポートしています。アプリケーションも Git サブモジュールも、[Application Source] にリポジトリの URL を指定する際の形式は、リポジトリがパブリックであるかプライベートであるかによって異なります。

パブリックリポジトリ – HTTPS または Git の読み取り専用プロトコルを使用します。たとえば、Chef 11 Linux スタックの使用開始 では、以下のいずれかの URL 形式でアクセスできるパブリック GitHub リポジトリを使用します。

  • Git 読み取り専用: git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

  • HTTPS: https://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

プライベートリポジトリ – 次の例に示す SSH の読み取り/書き込み形式を使用します。

  • Github リポジトリ: git@github.com:project/repository

  • Git サーバー上のリポジトリ: user@server:project/repository

[Source Control] の [Git] を選択すると、2 つの追加のオプション設定が表示されます。

[Repository SSH key]

プライベート Git リポジトリにアクセスするには、デプロイ SSH キーを指定する必要があります。このフィールドにはプライベートキーが必要となり、パブリックキーは Git リポジトリに割り当てられます。Git サブモジュールの場合、指定するキーには、それらのサブモジュールへのアクセス権が必要です。詳細については、「Git リポジトリの SSH キーの使用」を参照してください。

重要

デプロイ SSH キーでパスワードを必須にすることはできません。パスワードを渡すための仕組みが AWS OpsWorks スタックには存在しません。

[Branch/Revision]

リポジトリに複数のブランチがある場合、AWS OpsWorks スタックはデフォルトではマスターブランチをダウンロードします。特定のブランチを指定するには、ブランチ名、SHA1 ハッシュ、タグ名のいずれかを入力します。特定のコミットを指定するには、40 桁の 16 進数コミット ID を入力します。

その他のリポジトリ

標準のリポジトリでは要件を満たすことができない場合、他のリポジトリ (Bazaar など) を使用することができます。ただし、AWS OpsWorks スタックでは、そのようなリポジトリからは、アプリケーションの自動デプロイが行われません。デプロイプロセスを処理するカスタムレシピを独自に実装し、それらを適切な Layer の Deploy イベントに割り当てる必要があります。Deploy レシピの実装方法の例については、「Deploy レシピ」を参照してください。

Data Sources

このセクションはアプリケーションにデータベースをアタッチします。次のオプションがあります。

  • RDS – スタックのいずれかの Amazon RDS サービス Layer をアタッチします。

  • None – データベースサーバーをアタッチしません。

[RDS] を選択する場合、以下の情報を指定する必要があります。

Database instance

このリストには、各 Amazon RDS サービス Layer が含まれます。加えて、次のいずれかを選択することができます。

(必須) アプリケーションにアタッチするデータベースサーバーを指定します。リストの内容は、データソースによって異なります。

  • RDS – スタックの Amazon RDS サービス Layer のリスト。

データベース名

(オプション) データベース名を指定します。

  • Amazon RDS Layer – Amazon RDS インスタンスに対して指定したデータベース名を入力します。

    データベース名は、Amazon RDS コンソールから取得できます。

データベースをアタッチしたアプリケーションをデプロイすると、AWS OpsWorks スタックにより、アプリケーションの deploy 属性にそのデータベースインスタンスの接続が追加されます。

カスタムレシピを書き込んで deploy 属性から情報を取得し、アプリケーションからアクセスすることができるファイルに配置できます。これは、Other アプリケーションタイプにデータベース接続情報を提供する唯一のオプションです。

データベース接続を処理する方法の詳細については、「データベースへの接続」を参照してください。

データベースサーバーをアプリケーションからデタッチするには、アプリケーションの設定を編集して、異なるデータベースサーバーを指定するか、サーバーの指定を削除します。

Environment Variables

各アプリケーションに対し、アプリケーションに固有の一連の環境変数を指定できます。たとえば、2 つのアプリケーションがある場合、最初のアプリケーションに定義した環境変数を、もう 1 つのアプリケーションに定義することはできません。その逆も同様です。また、複数のアプリケーションに同じ環境変数を定義し、アプリケーションごとに異なる値を割り当てることもできます。

注記

環境変数の数に、特定の制限はありません。ただし、変数の名前、値、および保護されたフラグ値を含む、関連するデータ構造のサイズが、20 KB を超えることはできません。この制限は、すべてではないものの、ほとんどのユースケースに適合します。これを超えると、サービスエラー (コンソール) または例外 (API) が発生し、"Environment: is too large (maximum is 20KB)" というメッセージが表示されます。

AWS OpsWorks スタックは変数をアプリケーションの deploy 属性としても保存します。標準の Chef ノード構文を使用して、カスタムレシピにこれらの値を取得することができます。アプリケーションの環境変数にアクセスする方法の例については 環境変数の使用 を参照してください。

キー

変数名。最大 64 個の大文字および小文字の文字、数字、下線 (_) を含めることができますが、冒頭には文字または下線を使用する必要があります。

変数値。最大 256 文字を含めることができますが、すべて表示可能な文字である必要があります。

Protected value

値を保護するかどうかを指定します。この設定では、パスワードなどの機密情報を非表示にすることができます。変数に [Protected value] を設定した場合、アプリケーションの作成後は次のようになります。

  • アプリケーションの詳細ページには値が表示されず、変数名だけが表示されます。

  • アプリケーションを編集するアクセス許可がある場合、[Update value ] をクリックして新しい値を指定することはできますが、古い値を確認したり、編集したりすることはできません。

注記

Chef のデプロイログ には、環境変数が含まれることがあります。これは、保護された変数がコンソールに表示される場合があることを意味します。保護された変数がコンソールに表示されないようにするには、コンソールで表示することを希望しない保護された変数に Amazon S3 バケットをストレージとして使用することが推奨されます。この目的で S3 バケットを使用する例は、このガイドの「Amazon S3 バケットの使用」を参照してください。

ドメインと SSL の設定

Other アプリケーションタイプの場合、AWS OpsWorks スタックは設定をアプリケーションの deploy 属性に追加します。レシピは、それらの属性からデータを取得し、必要に応じてサーバーを設定できます。

Domain Settings

このセクションには、ドメインを指定するためのオプションの [Add Domains] フィールドがあります。詳細については、「カスタムドメインの使用」を参照してください。

SSL Settings

このセクションの [SSL Support] トグルを使用して、SSL の有効と無効を切り替えることができます。[Yes] をクリックした場合は、SSL 証明書の情報を指定する必要があります。詳細については、「SSL の使用」を参照してください。

このページの内容: