Note: Please go to docs.rightscale.com to access the current RightScale documentation set. Also, feel free to Chat with us!
Home > jp > Clouds > Amazon Web Services (AWS) > 初心者向け実例 > LAMPサーバ(一台構成)

LAMPサーバ(一台構成)

 

目的

このチュートリアルは、RightScale のクラウド管理プラットフォームでキーとなる概念をいくつか紹介し、RightScale ServerTemplate を使用して EC2 にすべての機能をそなえた LAMP (Linux Apache MySQL と PHP/Perl/Python などのプログラミング言語) サーバを 10 分程度で簡単に設定、構成、起動する方法をご紹介します。このチュートリアルは、EC2 で LAMP サーバのホスティングを予定しているすべての開発者に役立ちます。

前提条件

このチュートリアルはどのタイプのアカウント (Free または Premium) でも完了することができます。

概要

lamp_allinone_diagram_v1.gif

ServerTemplate はイメージ構成のカスタマイズに役立ついくつかの RightScripts を使用した軽量 Linux インストール (以下の例では、CentOS) を含むベースイメージで構成されます。このチュートリアルでは、EC2 ですべての機能を含む LAMP サーバを起動するために、LAMP オールインワン ServerTemplate のうち 1 つを使用します。"オールインワン" は LAMP スタック全体がクラウド内の複数のサーバではなく、クラウド内の単独のサーバインスタンスに存在することを意味します (図を参照)。

RightScale では 2 種類の LAMP オールインワン ServerTemplate を提供しています。

  • LAMP トライアル - (すべてのユーザ)  この ServerTemplate では RightScale Dashboard を使用した EC2 でのサーバの起動がいかに簡単かを実証しています。このテンプレートはデモ用途に最適です。データベースやアプリケーションを S3 にアップロードする必要がないため、"無料トライアル" のユーザに適しています。データベースとアプリケーションは、RightScripts に添付ファイルとして含まれています。
  • LAMP オールインワン - (開発者/有料ユーザ)  この ServerTemplate は各自のニーズに応じてカスタマイズが可能である点以外は "トライアル" バージョンと似ています。また、自動的に S3 へのバックアップが実行されるように設定されています。

手順

ヒント:   初中級レベルのユーザは、ヘルプ文書を読むことをお薦めします。ヘルプ文書は、製品の概要ガイドと同様の働きをします。デフォルトでは、コンテキストに応じていくつかのヘルプ画面が表示されます。ヘルプ画面を表示しないようにするには、Hide Help ボタンをクリックします。(Help/Hide Help はトグルアクションボタンです。)

ServerTemplate の概要

従来、サーバの起動方法は非常に面倒なものでした。

  1. 任意の OS をクリーンインストールする
  2. 必要なプログラムをインストールして設定する
  3. 起動し、エラーを見つけ、デバッグ。これを繰り返す

ありふれた手順ですね。しかし、クラウドコンピューティングでは、ボタン 1 つをクリックするだけで、仮想サーバを一度に起動することができるのです。

RightScale はこのプロセス全体を自動化するために、ServerTemplate を開発しました。これにより、ハードウェアには指一本触れることなく、サーバを自由に構成することができます。デプロイメントを追加した新しいサーバを含め、すべてのサーバが確実に同じように構成されます。

どの ServerTemplate も、あらゆるタイプのカスタム構成に合わせてクローンを作成し、修正することができます。

まず、ServerTemplate を使用したサーバの起動がいかに簡単かを見てみましょう。次に、目的に合わせた ServerTemplate のカスタマイズがいかに簡単かをご紹介します。

"トライアル" ServerTemplate に基づくサーバの作成

メモ: このステップはどのタイプの RightScale アカウントでも完了することができます (Free または Premium)。

なんと、RightScale なら、わずか数分で EC2 に新しいインスタンスを起動することができるのです。

  • Design -> Library -> ServerTemplates に進みます。
  • "LAMP トライアル" ServerTemplate (RightScale が公開) の最新のバージョンを検索します。このチュートリアルでは、AWS US-East リージョンで LAMP サーバを起動します。
  • ServerTemplate 名をクリックして、詳細をドリルダウンします。
  • Import アクションボタンをクリックして、ローカルビューに ServerTemplate の静的コピーを置きます。
  • Add To Deployment アクションボタンをクリックして、デプロイメントに ServerTemplate に基づくサーバを追加します。
    • AWS US-East クラウドリージョンを選択します。
    • Continue アクションボタンを選択します。指定したデプロイメント (例:デフォルト) に新しいサーバを作成するための、Add Server のダイアログが表示されます。以下のようなダイアログボックスが表示されます。

     

     screen-AddServer-v2.png

    メモ:  VPC に対応したアカウントでは VPC Subnet フィールドも表示されます。

    以下は各フィールドの基本的な説明です。このチュートリアルで使用できる推奨値については、下記の「推奨値」のセクションを参照してください。

     

    フィールドの説明:

    • Deployment - デプロイメントのコンテキストでは、必ず 1 台のサーバがあります。そのため、サーバを作成したら、サーバを追加するデプロイメントを指定する必要があります。それぞれの RightScale アカウントには、テストに最適な "Default" デプロイメントがあります。"Default" のデプロイメントか、もしくはすでに定義しているデプロイメントのどちらかを選択してください。
    • ServerTemplate - プルダウンメニューから、ServerTemplate の種類を選択します。ServerTemplate から直接 起動する場合、このフィールドにはすでに決まっているものがダイアログボックスに表示されています。
      • Private - 個人ライブラリの ServerTemplate です。つまり、一から作成したか、インポートしてクローンを作成した ServerTemplate のことです。この ServerTemplate は各自のコピーとして自由にカスタマイズすることができます。関連付けは各自で更新されます。
      • Imported - ライブラリから直接インポートしたものすべてです (静的コピー)。また、予約しているすべての ServerTemplate も含まれます (HEAD バージョン。静的リビジョン以外は変更)。
      • 次に、もう一つのプルダウンメニューから、実際の ServerTemplate 名 (Simple Linux Server など) を選択します。
    • Cloud -  サーバを追加するクラウドのことです。サーバを追加する際、これは Select Cloud アクションボタンですでに選択されているため、このダイアログウィンドウで変更することはできません。単なる情報として表示されます。
    • MultiCloud Image* - 使用する MCI を選択するか、Inherit from the ServerTemplate のままにしておきます (デフォルト)。
    • Instance Type* - インスタンスタイプを選択するか(small、medium、large など)、Inherit from the MultiCloud Image のままにしておきます (デフォルト)。
    • Nickname - サーバの主要目的に関して説明する名前を入力します。
    • SSH Key - 使用する (以前作成した) SSH キーを指定します。
    • Security Group - セキュリティ目的で使用する (以前作成した) セキュリティグループ (複数可) を選択します。
    • Availability Zone - このサーバを配置する Availability Zone (EC2) を選択します。複数のゾーンをまたぐ場合はトラフィックに対して追加料金が発生することに注意してください。異なるゾーンでも高い可用性を必要とするデプロイメントでない限り、サーバは通常、同じゾーン内に置かれます。クラウドによっては複数のゾーンやリージョンが含まれる場合があります。
    • Elastic IP - サーバに使用する EIP、もしくは none を選択します。
    • Associate IP at launch - 通常は IP アドレスとサーバが起動時に関連付けられるように、デフォルト (チェックが入った状態) のままにしておきます。 

    *2010 年 4 月以降の Dashboard のリリースでは、ダイアログボックスに新しいフィールドが加わります。フィールドの追加は、ServerTemplate がサポート対象の一つの MCI から ServerTemplate ごとにサポートされる複数の MCI に拡張される際に行われます。

推奨値:

  • "Default" デプロイメントにサーバを追加します。
  • サーバにニックネームを付けます。
  • 適切な SSH キーとセキュリティグループを選択します。
  • Availability Zone は us-east-1a を選択します。
  • 他のフィールドはデフォルト値で問題ありません。
    • MultiCloud Image および Instance Type (Inherit)
    • Elastic IP (none)
    • Associate IP at launch (チェックが入った状態)
  • 準備ができたら Add ボタンをクリックします

EC2 でのサーバの起動

これで、サーバを起動する準備ができました。サーバの Launch アクションボタンをクリックしてください。次に、サーバに事前に定義されている入力パラメータの一覧が表示されます。サーバを起動するたびに、ServerTemplate 自体(またはデプロイメントレベルから)継承されている入力パラメータを好きなように変更することができます。必須パラメータに入力されていない場合は、赤で強調表示されます。

"トライアル" テンプレートでは、すでに必要な入力のほとんどがあらかじめ設定されています。

通常は、アプリケーションにユーザ名とパスワードを設定する必要があります。この場合、既存の認証情報を選択するか、"ダミー" の値を使用することができます。

入力値の後に入っている余分なスペースは常に削除することがベストプラクティスです。スペースが入っていると、赤い警告メッセージが表示されますが、入力にスペースがあってもサーバを起動することはできます。

 DBAPPLICATION_PASSWORD  テキスト  入力:1234
 DBAPPLICATION_USER  テキスト  入力:1234

 

  • Launch ボタンをクリックします。
  • サーバのブート中に Events ウィンドウでサーバのステータスを確認します。すべて問題なければ、"pending" から "booting" に移行します。

 

おめでとうございます!これで RightScale の ServerTemplate の 1 つを使用して、Amazon EC2 でサーバを構成し、起動しました。サーバがブートし、完全に機能するまでは数分間待つ必要がありますが、これも実に簡単です。

screen-SelectServer-v1.png
 

LAMP トライアルサーバのプレビュー

まだ信じられませんか?ではブラウザウィンドウで LAMP サーバをプレビューしてみましょう。

  • Nickname リンク (例:My LAMP Server) をクリックして、新しいサーバに関する詳細情報を確認します。
  • Public DNS name リンクをクリックして、PHP アプリケーションをプレビューします。

screen-PublicDNSTrial-v1.png

これで、ブラウザウィンドウに新しい LAMP サーバに関する詳細な PHP 情報が表示されます。

screen-PreviewPHP-v1.png

インスタンスを停止することを忘れないでください!(Manage -> Servers)

"オールインワン" ServerTemplate を使用した EC2 でのサーバの起動

前提条件:このセクションは  または Premium アカウントでしか完了できません。無料トライアルのユーザはお使いのアプリケーションを S3 バケットにアップロードする必要があるため、最初にアカウントをアップグレードし、この手順を完了する必要があります。

これで ServerTemplate を使用したサーバの起動がいかに簡単かをお分かりいただいたことでしょう。次は、独自のカスタム構成に合わせて ServerTemplate を修正するのがいかに簡単かをご紹介します。

アプリケーションの準備

最初に、PHP アプリケーションの tarball と、適切にフォーマットされた MySQL データベースの gzip 圧縮ダンプを作成する必要があります。

メモ: MySQL ダンプのファイル名は指定したフォーマット (prefix-timestamp.gz) に従う必要があります。たとえば、myapp_prod_dump-20080416234.gz の場合、'myapp_prod_dump' がプレフィクスです。

独自の PHP アプリケーションを持っていない場合、またはサーバの起動だけを行いアプリケーションの追加は後で行う場合には、下のサンプルファイルをダウンロードして、S3 へのファイルのアップロードの手順までスキップすることができます。

MySQL データベースダンプの作成

最初の手順は、データベースのダンプを作成することです。ダンプファイルを正しく作成することは非常に重要です。そのため、適切なフォーマットと適切な名前で作成されるように以下のコマンドを使用することをお薦めします。ユーザ名パスワードスキーマ名を入力して、これらのコマンドを実行します。ダンプファイルが /tmp ディレクトリに作成されます。下記のコードでは、'myapp_prod_dump' を自分のプレフィクスに置き換えることができます。

USER=
PASSWD=
SCHEMA=
suffix=`date "+%Y%m%d%H%M"`
mysqldump --single-transaction -u $USER -p$PASSWD $SCHEMA | gzip -c > /tmp/myapp_prod_dump-$suffix.gz
PHP アプリケーションの tarball の作成

次は、アプリケーションの tarball を作成する必要があります。簡単に作成するため、アプリケーションのルートディレクトリに移動し、以下のコマンドを実行します。

tar czf /tmp/myapp.tgz .
S3 へのファイルのアップロード

データベースのダンプとアプリケーションの tarball が用意できたので、これらのファイルを S3 にアップロードすることができます。S3 バケットは 1 つはアプリケーション用に、もう 1 つはデータベースのバックアップ用に 2 種類使用することをお薦めします。こうすることでアプリケーションとすべてのデータベースバックアップとを区別しやすくなります。(この ServerTemplate はデータベースを定期的にバックアップして、S3 に保存するために設計されています。)  バケット名は APPLICATION_CODE_BUCKET および DB_MYSQLDUMP_BUCKET の入力値を設定する際に必要になるため、メモしておいてください。

  • Clouds -> AWS Global -> S3 Browser に移動します。
  • New Bucket アクションボタンをクリックします。

バケットに名前を付ける際は、S3 バケットの名前空間がグローバルであることを念頭に置き、各バケットには他で使用されていない完全に一意な名前が使用されるようにしてください。通常はプレフィクスとして自分のサイトの名前を使用し、各バケットのデフォルトの場所を使用します。バケットの命名規則に関する詳細は ここに記載されていますが、一般的なベストプラクティスさえ理解していれば十分です。

  • 名前には小文字の英数字を使用することができます (先頭は文字または数字にする必要があります)
  • 句読点は使用可能です。ピリオド (.)、ダッシュ (-)、アンダースコア (_) は使用できますが、あまりお薦めしません (DNS 命名規則と関連)
  • 句読点を続けて使用しないでください (例:"gregdoe-.bucket")
  • 名前は 4 文字以上、63 文字以内にしてください
  • IP アドレスを真似たバケット名を使用しないでください (つまり、CIDR タイプの表記 1.2.3.4 を使用しない)

screen-S3Buckets-v1.png


次に、アプリケーションのバケット (例:dean-app1) をクリックし、アプリケーションの tarball をアップロードします。

独自の tarball を作成している場合は、/tmp ディレクトリにアプリケーションが表示されます (/tmp/myapp.tgz)。

画面を更新すると、アプリケーションバケットにファイルが表示されています。

  • ファイルの権限を "private" から "public-read" に変更します。

screen-ChangeToPublic-v1.png

データベースダンプファイルのプロセスを繰り返します。.gz ファイルをデータベースバケットに必ず追加してください。

独自のダンプファイルを作成している場合は、 /tmp ディレクトリにそのファイルが表示されます (/tmp/myapp_prod_dump-xxxxx.gz)。ファイルの権限を "private" から "public-read" に変更します。

これで、アプリケーションとデータベースのファイルがそれぞれの S3 バケットに置かれ、サーバの起動時に簡単に検索できるようになりました。後で、ServerTemplate の入力をカスタマイズする際にこれらのファイルの場所を指定して、新しいサーバの起動時にファイルが見つかるようにします。

LAMP "オールインワン" ServerTemplate の選択
  • Design -> Library -> ServerTemplate に戻ります。
  • RightScale が発行した最新バージョンの LAMP オールインワン ServerTemplate を検索します。
  • その ServerTemplate の名前をクリックしてドリルダウンし、詳細を確認します。
  • Import アクションボタンをクリックして 'ローカル' ビューにコピーを置きます。
ServerTemplate のクローン作成

ServerTemplate は一から作成するよりも、既存の ServerTemplate のクローンを作成して修正する方法がはるかに簡単であるため、Dashboard では ServerTemplate と RightScript のクローンを作成することができます。ServerTemplate と RightScript のクローン作成機能は、コンポーネントの修正と再利用のためのとても強力なツールであり、アプリケーションを導入する際の時間と労力を節約することができます。

  • Clone アクションボタンをクリックして、'ローカル' ビューに編集可能なコピーを作成します。
  • ServerTemplate の名前をクリックして、より分かりやすい名前に変更します (たとえば、名前に "(Clone)" を付け足すことができます)。
ServerTemplate の入力の修正

次の手順は、クローンを作成した ServerTemplate をカスタマイズして、適切な入力パラメータを定義することです。ServerTemplate に共通の入力パラメータをいくつか定義しましょう。

  • Design -> ServerTemplates -> View Local に移動します。
  • クローンを作成した ServerTemplate (例:"LAMP v4 All-In-One v1 (clone)") を選択します。
  • Inputs タブをクリックします。
  • Edit アクションボタンをクリックします。

この ServerTemplate でサーバを起動するには、以下の入力パラメータが必要です。適宜修正を行ってください。

入力名
入力タイプ
説明
 APPLICATION  テキスト PHP アプリケーションの名前を指定します
(例:phpapp)。
 APPLICATION_CODE_BUCKET  テキスト アプリケーションが含まれる S3 バケットの名前を入力します (例:rightscale-app1)。
 APPLICATION_CODE_PACKAGE  テキスト Provide the name of your code package. 
(ex: myapp.tgz)
 DBAPPLICATION_USER  テキスト 入力:1234
 DBAPPLICATION_PASSWORD  テキスト 入力:1234
 DB_BINLOG_PREFIX  テキスト バイナリログファイルに使用されるプレフィクスを指定します (例:/mnt/mysql-binlogs)。
 DB_MYSQLDUMP_BUCKET  テキスト データベースが含まれる S3 バケットの名前を指定します。これはバックアップの保存先でもありますが、ファイル名の DB_BINLOG_PREFIX によって区別されます (例:rightscale-db1)。
 DB_MYSQLDUMP_PREFIX  テキスト S3 バケットへのバックアップ MySQL ダンプファイルに名前を付けるために使用するプレフィクスを指定します
(例:myapp_prod_dump)。
 DB_SCHEMA_NAME  テキスト データベースのスキーマ名を指定します
(例:photo_demo_production)。
 WEBSITE_DNS  Env 入力タイプとして環境変数 (Env) を選択し、EC2_PUBLIC_HOSTNAME を選択します。EC2 のパブリックホスト名は次のようになります:

完全修飾パブリックホスト名。

Dashboard からは "パブリック DNS 名" として表示されます。これは名前のとおりパブリックなものであり、ブラウザの info タブにハイパーリンクが表示されます (Apache Web サイトや Rails Web アプリケーションなど)。

例:  ec2-75-101-247-165.compute-1.amazonaws.com

 

  • 準備ができたら Save アクションボタンをクリックします。
ServerTemplate のコミット

テンプレートの RightScript や入力に変更を行うたびに ServerTemplate をコミットして、ServerTemplate の静的リビジョンを常に作成しておくのがベストプラクティスです。[HEAD] バージョンの ServerTemplate でサーバを起動する場合、その RightScript と入力は時間を経て変更されている可能性があるため、次に ServerTemplate を使用して新しいサーバが起動する際にフリーズしたサーバが発生する可能性があります。

  • Commit アクションボタンをクリックします。
  • Message フィールドに、変更に関する有用な説明を入力します。
  • 完了したら Commit アクションボタンをクリックします。新しいリビジョン (例:"Rev 1") が保存されます。
サーバの作成

これで、サーバを作成する準備ができました。

  • ServerTemplate 表示最上部の近くにある Revision タイムラインから、[rev1] バージョンの ServerTemplate を選択します。
  • Add to Deployment アクションボタンをクリックします。
    • 正しいクラウド (この例では AWS US-East) を選択します。Continue アクションボタンをクリックします。
    • 以下のような Add Server ダイアログが表示されます。

       

       screen-AddServer-v2.png

      メモ:  VPC に対応したアカウントでは VPC Subnet フィールドも表示されます。

      以下は各フィールドの基本的な説明です。このチュートリアルで使用できる推奨値については、下記の「推奨値」のセクションを参照してください。

       

      フィールドの説明:

      • Deployment - デプロイメントのコンテキストでは、必ず 1 台のサーバがあります。そのため、サーバを作成したら、サーバを追加するデプロイメントを指定する必要があります。それぞれの RightScale アカウントには、テストに最適な "Default" デプロイメントがあります。"Default" のデプロイメントか、もしくはすでに定義しているデプロイメントのどちらかを選択してください。
      • ServerTemplate - プルダウンメニューから、ServerTemplate の種類を選択します。ServerTemplate から直接起動する場合、このフィールドにはすでに決まっているものがダイアログボックスに表示されています。
        • Private - 個人ライブラリの ServerTemplate です。つまり、一から作成したか、インポートしてクローンを作成した ServerTemplate のことです。この ServerTemplate は各自のコピーとして自由にカスタマイズすることができます。関連付けは各自で更新されます。
        • Imported - ライブラリから直接インポートしたものすべてです (静的コピー)。また、予約しているすべての ServerTemplate も含まれます (HEAD バージョン。静的リビジョン以外は変更)。
        • 次に、もう一つのプルダウンメニューから、実際の ServerTemplate 名 (Simple Linux Server など) を選択します。
      • Cloud -  サーバを追加するクラウドのことです。サーバを追加する際、これは Select Cloud アクションボタンですでに選択されているため、このダイアログウィンドウで変更することはできません。単なる情報として表示されます。
      • MultiCloud Image* - 使用する MCI を選択するか、Inherit from the ServerTemplate のままにしておきます (デフォルト)。
      • Instance Type* - インスタンスタイプを選択するか(small、medium、large など)、Inherit from the MultiCloud Image のままにしておきます (デフォルト)。
      • Nickname - サーバの主要目的に関して説明する名前を入力します。
      • SSH Key - 使用する (以前作成した) SSH キーを指定します。
      • Security Group - セキュリティ目的で使用する (以前作成した) セキュリティグループ (複数可) を選択します。
      • Availability Zone - このサーバを配置する Availability Zone (EC2) を選択します。複数のゾーンをまたぐ場合はトラフィックに対して追加料金が発生することに注意してください。異なるゾーンでも高い可用性を必要とするデプロイメントでない限り、サーバは通常、同じゾーン内に置かれます。クラウドによっては複数のゾーンやリージョンが含まれる場合があります。
      • Elastic IP - サーバに使用する EIP、もしくは none を選択します。
      • Associate IP at launch - 通常は IP アドレスとサーバが起動時に関連付けられるように、デフォルト (チェックが入った状態) のままにしておきます。

      *2010 年 4 月以降の Dashboard のリリースでは、ダイアログボックスに新しいフィールドが加わります。フィールドの追加は、ServerTemplate がサポート対象の一つの MCI から ServerTemplate ごとにサポートされる複数の MCI に拡張される際に行われます。

      推奨値:

    • 適切な SSH キーとセキュリティグループを選択します。
    • Availability Zone (例:us-east-1a) を選択します。
    • 残りのフィールドはデフォルト値で問題ありません。
      • Deployment - "Default" デプロイメントを選択
      • ServerTemplate - rev1 (以前 ServerTemplate をコミットした際に "rev1" を保存したことを思い出してください)
      • MCI および Instance Type -  inherit
      • Elastic IP - none
      • Associate IP at launch - Leave チェックが入った状態
    • Add をクリックします。
サーバの起動

これで、サーバを起動する準備ができました。サーバの Launch アクションボタンをクリックしてください。

次に、先ほど ServerTemplate に定義した入力パラメータの一覧が表示されます。

サーバを起動するたびに、ServerTemplate 自体(またはデプロイメントレベルから)継承されている入力パラメータを好きなように変更することができます。必須パラメータに入力されていない場合は、赤で強調表示されます。(赤で none と表示されます。)

  • Launch アクションボタンをクリックして、EC2 のデフォルトデプロイメントから新しいサーバを起動します。

 

おめでとうございます! これで、ServerTemplate のカスタマイズが完了し、Amazon の EC2 で新しい LAMP サーバが起動しました。数分後に独自の PHP アプリケーションが実行される、すべての機能を備えたサーバが EC2 に準備されます。

PHP アプリケーションのプレビュー

運用が始まると、ブラウザウィンドウで PHP アプリケーションを確認することができます。

  • サーバの Nickname リンクをクリックします。
  • Info タブにあるサーバの Public DNS name リンクをクリックします。

このチュートリアルで先ほど確認したような PHP 情報画面がブラウザウィンドウに表示されます。

サーバの停止Edit section

不要な利用料金が発生しないよう、完了したら忘れずにサーバを停止してください  (Manage -> Servers -> Active タブ)。

You must to post a comment.
Last modified
00:17, 17 May 2013

Tags

This page has no custom tags.

Classifications

This page has no classifications.

Announcements

None


© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.