IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Architecture | Web development  >

Amazon Web サービスを利用したクラウド・コンピューティング: 第 3 回 EC2 によるオンデマンド・サーバー

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 初級

Prabhakar Chaganti, CTO, Ylastic, LLC

2008年 10月 14日

Amazon Web サービス™を利用したクラウド・コンピューティングについて学ぶ連載「Amazon Web サービスを利用したクラウド・コンピューティング」では、スケーラブルで信頼性の高いアプリケーションを設計し、構築する上で Amazon Web サービスがどのように強力な代替手段を提供するかを探っていきます。今回の記事では、Amazon EC2 (Elastic Compute Cloud) が提供する仮想サーバーを紹介します。EC2 を利用することで、アプリケーションの需要に応じて即座にアプリケーションのコンピューティング要件を構成して容量を調整するのが容易になる仕組みを学んでください。

Amazon EC2

Amazon EC2 (Elastic Compute Cloud) は、Amazon が提供するクラウド・コンピューティングのベースとなるプラットフォームです。EC2 は、個人やビジネスのニーズに応じて仮想インスタンスをいつでも簡単に作成、起動、そしてプロビジョニングできるようにします。課金の対象となるのはこうしたインスタンスで、インスタンスのタイプと実際に使用した時間が基準になります。さらに、これらの仮想サーバーは、Amazon が所有するデータセンター内のセキュアな環境で稼働します。

EC2 によって、Web スケールのアプリケーションに以下の機能を提供することができます。

  • コンピューティング要件を即座に構成する機能
  • 需要に応じて容量を調節する機能
Web が主導する現在の世界で非常に重要な命題となっているのは、サイトが Yahoo のフロント・ページで紹介された場合、トラフィックが津波のように急増し、その 1 時間後には急激に減少するといった事態に対処することですが、今や容量を弾性のある (エラスティックな) 方法で増減することができます。この新しいエラスティック・コンピューティング・モデルには、以下の優れた特徴があります。
信頼性
EC2 は、インスタンスを簡単にプロビジョニングできるだけでなく、インスタンスが不要になった時点で簡単に破棄できるように設計されています。
単純さ
単純な概念をベースとした EC2 は、システムの設計に柔軟性をもたらします。必要なビルディング・ブロックはすべて Amazon が提供するため、アプリケーションの使用場面に応じてこれらのビルディング・ブロックを自由に組み合わせることができます。
セキュリティー
EC2 は高度なセキュリティーを提供するように設計されています。インスタンスはすべて Amazon のセキュアなデータセンター内部で実行されます。ユーザーがファイアウォール・ルールを構成して、信頼できるグループだけがアクセスできるように制限することもできます。
弾性
アプリケーションに弾性をもたらすために、インスタンスを異なる地理的ロケーションに配置したり、短期間だけ存続するインスタンスとは別のライフサイクルを持つ永続ストレージ・ボリュームを使用したりすることもできます。
低コスト
EC2 サービスはその料金により、サーバーのあらゆるニーズに対応するための経済的かつ強力な手段となります。




上に戻る


フレームワーク

このセクションでは、EC2 フレームワークを支える概念について説明します。

AMI (Amazon Machine Image)

AMI とはパッケージ化された Linux® ベースのサーバー環境のことで、あらゆるソフトウェアまたはアプリケーションを実行することができます。EC2 が提供するエラスティック・コンピューティング環境の中核となるのは、この AMI です。EC2 の現行リリースでサポートするのは Linux ベースの AMI ですが、OpenSolaris を EC2 環境のオペレーティング・システムとして使用する上での初期サポートも用意されています。

マシン・イメージには以下の 3 種類があります。

専用ユーザーが作成したイメージは、デフォルトで、そのユーザーの専用イメージとなります。専用イメージを起動するためのアクセス権は、他のユーザーにも付与することができます。
公開ユーザーが作成し、Amazon Web サービスのコミュニティーにリリースされたイメージ。そのため、誰もがそのイメージをベースとしたインスタンスを起動して自由自在に使用することができます。Amazon Web Services Developer Community Web サイトに、すべての公開イメージの一覧があります。
有料特定の機能を提供するイメージを作成して、Amazon の料金に加え、使用した時間ごとに支払う意志のある誰もが起動できるようにすることができます。

Amazon では、マシン・イメージの作成および管理を簡易化するコマンドライン・ツールをいくつか用意しています。イメージ自体は Amazon S3 (Simple Storage Service) に保存されます。イメージを EC2 に登録した時点で、そのイメージには一意の ID が割り当てられます。この ID は、イメージを識別し、そのイメージからインスタンスを起動するために使用することができます。独自のイメージを作成する方法は何通りかあります。例えば独自のイメージの土台として既存の公開イメージを使用し、以下のワークフローに従って新しい AMI を作成することができます。

  1. 既存の AMI から、SSH (Secure Socket Shell) キーのペアを使用してインスタンスを起動します。
  2. インスタンスに SSH で接続します。
  3. 必要に応じてインスタンスをカスタマイズします。
  4. Amazon のツールを使用して、実行中のインスタンスを新規 AMI に再バンドルします。
  5. Amazon のツールを使用して、バンドルを S3 にアップロードして保存します。
  6. Amazon のツールを使用して、この新規イメージを EC2 に登録します。
  7. 新規イメージから新しいインスタンスを起動し、満足が行くまでカスタマイズと再バンドルを繰り返します。

別の選択肢として、EC2 コミュニティーから一般公開されているスクリプトのいずれかを使用して新規 AMI を作成するという方法もあります。スクリプトを使うと、一から AMI を作成することができます。よく使用されているスクリプトには以下のものがあります。

  • Eric Hammond によって提供されている Ubuntu および Debian ベースの AMI 作成スクリプト。彼のサイトに用意されているビルド済みのイメージを使用することも、スクリプトを使って一からイメージを作成することもできます。
  • Ruby on Rails アプリケーションのベースとして機能するイメージをお探しの場合は、Paul Dowman が提供しているスクリプトを使うと、EC2 で Rails アプリケーションを実行するための Ubuntu ベースのイメージを作成することができます。

  • RightScale でも、独自のイメージを一から作成するためのスクリプトを Ubuntu ベースと CentOS ベースの両方で用意しています。

インスタンス

インスタンスとは、AMI をテンプレートとして使用した実行中の仮想インスタンスのことです。インスタンスの起動、インスタンスに関する詳細の表示、インスタンスの終了は、Amazon が提供するツールを使用して行います。また、さまざまな言語の各種のサード・パーティー・ライブラリーを使用してインスタンスのライフサイクルを制御することもできます。

インスタンスのベースは 32-bit または 64-bit プラットフォームのいずれか、そしてそのタイプは以下に示すいずれかにすることができます。Amazon では、各インスタンス・タイプにも ECU (EC2 Compute Unit) を基準に料金を設定しています。ECU あたりのプロセッサー容量は、1.0-1.2 GHz の 2007 Opteron または 2007 Intel® Xeon™ プロセッサーに相当します。インスタンス・タイプ別の詳細については、「料金」セクションを参照してください。

スモール・インスタンス (m1.small)
1.7 GB メモリー、ECU×1 (1 ECU の仮想コア×1)、160 GB インスタンス・ストレージ、32-bit プラットフォーム、中程度の I/O パフォーマンス
ラージ・インスタンス (m1.large)
7.5 GB メモリー、ECU×4 (2 ECU の仮想コア×2)、850 GB インスタンス・ストレージ、64-bit プラットフォーム、高度な I/O パフォーマンス
エクストララージ・インスタンス (m1.xlarge)
15 GB メモリー、ECU×8 (2 ECU の仮想コア×4)、1,690 GB インスタンス・ストレージ、64-bit プラットフォーム、高度な I/O パフォーマンス
ミディアム・インスタンス (c1.medium)
1.7 GB メモリー、ECU×5 (2.5 ECU の仮想コア×2)、350 GB インスタンス・ストレージ、32-bit プラットフォーム、中程度の I/O パフォーマンス
エクストララージ・インスタンス (c1.xlarge)
7 GB メモリー、ECU×20 (2.5 ECU の仮想コア×8)、1,690 GB インスタンス・ストレージ、64-bit プラットフォーム、高度な I/O パフォーマンス

インスタンスに対しては、実際の使用時間に基づいて料金が請求されるようになっており、アプリケーションの現行の負荷に応じて、使用するコンピューティング能力を簡単に増減することができます。つまり、前もって多くのコンピューティング能力を確保しておく必要はなくなるということです。

セキュリティー・グループ

EC2 環境内で起動されたインスタンスはすべて、セキュリティー・グループ内で実行されます。各セキュリティー・グループが定義するファイアウォール・ルールにより、そのグループ内で実行されるインスタンスに対するアクセス制限が指定されます。アクセスを許可または制限するには、IP アドレス、あるいは CIDR (Classless Inter-Domain Routing) ルールを使用することができます。CIDR の場合、ポートの範囲と転送プロトコルを指定することができます。また、指定のセキュリティー・グループに対してアクセスを制御することもできます。つまり、これらのセキュリティー・アクセス・グループ内で実行されているインスタンスに対して、自分のインスタンスへのアクセスが自動的に許可または拒否されるように設定することもできます。

セキュリティー・キー・ペア

セキュリティー・キー・ペアとは、インスタンスの起動時に指定される SSH 公開鍵/秘密鍵のペアのことです。起動後のインスタンスのいずれかのコンソールに実際にログインするには、これらのキーが必要となります。起動されたインスタンスには EC2 によってキー・ペアのうちの公開鍵が提供されるので、ユーザーが秘密鍵を使用することで、そのインスタンスに SSH で接続することができます。

セキュリティー・キー・ペアは、Amazon Web サービスのアクセス・キー ID やセキュリティー・キー (アカウント情報ページで入手可能) とは異なります。アクセス・キー ID とセキュリティー・キーは、API を使用して Amazon Web サービスに対するリクエストを行っているユーザーを一意に識別するために使用されます。一方、セキュリティー・キー・ペアの主な用途は、ユーザーがパスワードを入力しなくても、セキュアにインスタンスにログインできるようにすることです。

Availability Zone

EC2 は耐障害性を提供するため、異なる地理的ロケーションにある複数のデータセンターから構成されています。そのため、ユーザーが起動するインスタンスは異なるロケーションに配置することができます。これらのロケーションは地理的な地域で、その地域のなかには複数の独立したゾーン、Availability Zone があります。EC2 の現行リリースでアクセスできるのは、3 つの Availability Zone がある米国東部の 1 つの地域です。Amazon では地域内のそれぞれの Availability Zone を、他の Availability Zone 内で発生した障害には影響されることがないように設計しています。

インスタンスをそれぞれに独立した Availability Zone で起動することによって、1 つのロケーションで障害が発生してもアプリケーションを障害から保護することができます。インスタンスを起動するときに Availability Zone を指定しなければ、Amazon がその時点でのシステムのヘルスと処理能力に応じて自動的に Availability Zone を選択します。

Elastic IP アドレス

インスタンスは起動時に、EC2 からプライベート IP アドレスとパブリック IP アドレスが自動的に割り当てられます。パブリック IP アドレスは当然、インターネット経由でインスタンスにアクセスするために使われます。ただしこのアドレスは、インスタンスを起動するたびに変更されます。ある種の動的 DNS マッピングを使用して DNS 名を IP アドレスに関連付けている場合には、アドレス変更がインターネットで伝搬されるまでに 24 時間かかることも考えられます。この問題を解決するために EC2 が導入したのが、Elastic IP アドレスという概念です。それぞれの Elastic IP アドレスは、特定のインスタンスに対してではなく、EC2 アカウントに対して関連付けられた静的 IP アドレスです。そのためアカウントを EC2 に明示的に返却するまでは、Elastic IP アドレスは永久にアカウントに関連付けられます。

また、Elastic IP アドレスをインスタンス間で割り当て直すこともできます。このため、インスタンスに障害が発生した場合、別のインスタンスを起動して Elastic IP アドレスを割り当て直す (つまり既存のインスタンスを使用する) だけで、素早くインスタンスの障害に対処することができます。ただし、常に 1 つの Elastic IP アドレスは、1 つのインスタンスにしか割り当てることができません。

EBS (Elastic Block Store)

Amazon が生み出した新しい形の永続ストレージ、EBS では、実行中のインスタンスにブロック・レベルのデバイスとして接続できるボリュームを作成することができます。また、これらのボリュームからスナップショットを作成し、後でスナップショットからボリュームを再現することも可能です。各スナップショットは、特定の時点でのそのボリュームの状態を表します。そのため、インスタンスの有効期限が過ぎても存続させておかなければならないファイルやデータを EBS ボリュームに保存し、そのボリュームをあらゆるインスタンスに対して接続および接続解除することができます。

1 つの欠点は、各 EBS ボリュームは一度に 1 つのインスタンスにしか接続できないことです。ただし、任意の 1 つのインスタンスに多数の異なるボリュームを接続することは可能です。EBS ボリュームは、それぞれに関連付けられた Availability Zone に配置されます。ボリュームが接続されているインスタンスは、そのボリュームと同じ Aavailability Zone 内になければなりません。1 アカウントが持てる EBS ボリューム数は 20 に制限されていますが、これを超えるボリュームが必要な場合には、Amazon Web サービスに制限数の増加を要求することができます。




上に戻る


料金

EC2 の料金は、4 つの基準に従って計算されます。

  • 使用されたインスタンスのタイプ。インスタンスには 2 つの標準タイプがあり、それぞれのタイプはさらに細かくコア数や、メモリー、ストレージ、アーキテクチャーなどの違いによって分かれています。

    スタンダード
    ほとんどのアプリケーションに使用できる標準インスタンス。
    High-CPU
    高度な処理能力が必要な計算量の多いアプリケーションに適したインスタンス。

    表 1 に、スモール・インスタンスからラージ・インスタンスまでタイプ別料金の例を記載します。

    表 1. インスタンスのタイプ別料金

    タイプ詳細料金
    スタンダード・スモール1.7 GB メモリー、1 ECU、160 GB ストレージ、32-bit プラットフォーム1 インスタンスあたり 1 時間 $0.10
    スタンダード・ラージ7.5 GB メモリー、4 ECU、850 GB ストレージ、64-bit プラットフォーム1 インスタンスあたり 1 時間 $0.40
    スタンダード・エクストララージ15 GB メモリー、8 ECU、1,690 GB ストレージ、64-bit プラットフォーム1 インスタンスあたり 1 時間 $0.80
    High-CPU ミディアム1.7 GB メモリー、5 ECU、35 GB ストレージ、32-bit プラットフォーム1 インスタンスあたり 1 時間 $0.20
    High-CPU エクストララージ7 GB メモリー、20 ECU、1,690 GB ストレージ、32-bit プラットフォーム1 インスタンスあたり 1 時間 $0.80


  • EC2 とのデータ転送量または使用帯域幅。EC2、SimpleDB、および米国内にある S3 バケットの間で転送されたデータには料金はかかりません。EC2 と EU 内の S3 バケットの間で転送されたデータについては、以下に示す標準データ転送料金が課せられます。

    表 2. データ転送料金

    転送タイプ料金
    インターネット・データ転送1 GB ごとに $0.100 — すべてのデータ・アップロード

    1 GB ごとに $0.170 — データ・ダウンロード: 1 ヶ月あたり最初の 10 TB まで
    1 GB ごとに $0.130 — データ・ダウンロード: 1 ヶ月あたり次の 40 TB まで
    1 GB ごとに $0.110 — データ・ダウンロード: 1 ヶ月あたり次の 100 TB まで
    1 GB ごとに $0.100 — データ・ダウンロード: 1 ヶ月あたり 150 TB を超える分
    Availability Zone データ転送1 GB ごとに $0.00 — 同一ゾーン内にあるインスタンス間でのすべてのデータ転送

    1 GB ごとに $0.01 — 同一地域内の異なるゾーン内にあるインスタンス間でのすべてのデータ転送
    パブリック IP および Elastic IP によるデータ転送1 GB ごとに $0.01 — すべてのデータ・アップロード/ダウンロード
    プライベート IP によるデータ転送1 GB ごとに $0.00 — すべてのデータ・アップロード/ダウンロード


  • EBS ボリュームおよびスナップショットによるストレージ使用量。

    表 3. EBS の料金

    タイプ料金
    EBS ボリューム1 ヶ月あたり 1 GB ごとに $0.10

    I/O リクエスト 100万回につき $0.10
    EBS スナップショット1 ヶ月あたり 1 GB ごとに $0.15

    スナップショット保存の PUT リクエスト 1,000 回につき $0.01

    スナップショット・ロードの GET リクエスト 10,000 回につき $0.01


  • 割り当てられた Elastic IP アドレスのうち、未使用の数。

    表 4. Elastic IP アドレスの料金

    タイプ料金
    Elastic IP使用中の Elastic IP アドレスは無料

    1 時間あたり未接続の Elastic IP アドレス 1 つにつき $0.01

    Elastic IP アドレスの再割り当てごとに $0.00 — 1 ヶ月あたり最初の 100 回まで
    Elastic IP アドレスの再割り当てごとに $0.10 — 1 ヶ月あたり 100 回を超える分


最新の料金については、Amazon EC2 を調べてください。また、Amazon Web Services Simple Monthly Calculator を使用して、EC2 やその他の Amazon Web サービスの月々の使用料を計算することもできます。




上に戻る


EC2 の開始手順

EC2 を使い始めるには、まず Amazon Web サービスのアカウントにサインアップする必要があります。Amazon Web サービスのアカウントの作成手順については、連載第 2 回で詳しく説明しました。アカウントを入手したら、以下のステップに従ってアカウントの Amazon EC2 サービスを有効にする必要があります。

  1. Amazon Web サービスのアカウントにログインします。
  2. Amazon EC2 までナビゲートします。
  3. ページ右側の Sign Up For Amazon EC2 をクリックします。
  4. 必要な情報を入力し、サインアップ・プロセスを完了します。

Amazon Web サービスのどのサービスと通信するにも、その手段としては SOAP インターフェースまたはクエリー/REST インターフェースのいずれかが使用されます。この記事に記載する例では、クエリー/REST インターフェースを使用して EC2 と通信します。アクセス・キーを取得する必要が出てきたら、Web Services Account 情報ページAWT Access Identifiers を選択してアクセス・キーを入手してください。

これで、Amazon Web サービスを使用するための準備が完了し、アカウントに対して EC2 サービスが有効になりました。




上に戻る


EC2 の操作

ここで説明する例では、Amazon が提供するコマンドライン・ツールと、サード・パーティーによるオープンソースの Ruby ライブラリー right_aws の両方を使用して EC2 を操作します。この記事全体を通して、以下の作業を行います。

  • ローカル EC2 開発環境をセットアップします。
  • 既存の AMI を起動します。
  • AMI をカスタマイズして right_aws ライブラリーと必要なその他のソフトウェアをインストールします。
  • AMI を再バンドルし、AMI を S3 にアップロードして登録します。
  • カスタマイズした新しい AMI を起動します。
  • Ruby シェルで小さなコード・スニペットを実行して、right_aws API の使い方を覚えます。

ローカル EC2 開発環境をセットアップする

Amazon EC2 ツールには Java™ 技術が必要となるため、Java がインストールされていることを確認してください。

  1. Amazon EC2 AMI ToolsAmazon EC2 API Tools をダウンロードします。
  2. ダウンロードしたツールのアーカイブを任意のディレクトリーに解凍します。
  3. 環境変数をいくつか設定し、解凍したツールのディレクトリーをシェルのパスに追加することで、コマンドラインからツールを実行するときにツールが実際に見つかるようにします。リスト 1 はその一例です。

    以下のコマンドは、Linux 用です。Microsoft® Windows® を使用している場合には、同等のコマンドに置き換えてください。EC2 X.509 証明書と EC2 秘密鍵ファイルは、アカウント情報ページからダウンロードすることができます。



    リスト 1. EC2 開発環境のセットアップ
    $ export EC2_HOME=path_to_the_directory_with_the_tools
    
    $ export JAVA_HOME=path_to_the_directory_with_your_java_sdk
    
    # Add the directory to your PATH
    $ export PATH=$PATH:$EC2_HOME/bin
    
    # Export variables with the paths to your private key file and X.509 certificate
    $ export EC2_PRIVATE_KEY=path_to_your_private_key 
    $ export EC2_CERT=path_to_your_x509_certificate
    

  4. すべてが正しくセットアップされていることを確認するために、以下に示すコマンドを実行して EC2 コマンドライン・ツールのバージョンを表示させます。

    リスト 2. セットアップの確認
    $ ec2-ami-tools-version
    1.3-20041 20071010
                

  5. 次に SSH キー・ペアを作成する必要があります。このキー・ペアは、インスタンスを起動してコマンドライン・シェルからそのインスタンスに接続する際に必要になります。リスト 3 に示すコマンドは、新しいキー・ペアを作成し、続いてキー・ペアの名前、フィンガープリント、秘密鍵のデータを画面に出力するコマンドです。

    リスト 3. 新規 SSH キー・ペアの作成
    $ ec2-add-keypair devworks
     
    KEYPAIR devworks        29:d1:90:7b:3d:a4:99:52:41:e0:1f:21:d5:20:97:d3:f0:33:fd:76
    -----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEAyxaeXt6nb+qzboVW/3ax7An8CUJjDqwNi/PZm4lGOAzOHGnuPlDXeh1GpJ9f
    hky7Bg6VEY2VfS5G6UtmIzsGf/JlquzVl/x3uyriOzeCIw+m07aSgUOBn3qW/74IZxYYkxCYdBci
    eZeKpr8Mpvuz2sfurRzQOkUeHyuEaiD1RRS7DGxxUXfpVYhGjPltfNW2xRSMLTaOZzRwRdS0cHUU
    hC+GOKFDkp8nqQpd8iGUtp2G2DI1pxRN4MbeFZHWMh5tcIo1NTc7pkFPGEwrq6pO6gIsEOLqGpTL
    +2AxJY5WToZQoTWieOVwLpjJU9fnufRs0Mt/M/TP6SGK/YkrQOprOwIDAQABAoIBAFj1UGvX9dnl
    IbHAwInoUSlGelsH9GIB5XEvYFtr9xEoMsRpdk1flfNMjZwgn3Qxeh6+Fnf438lUkwUv3M6D1WYI
    JJaJZUpM8ZlPwIcV2nBHM9k6+NOcYVQdG7VsZTvahusscssvMw+13KsLtpwSVwb3WsoDfAZ6LiaT
    Jk5in20hTiipC0pz0K9DgQ//76r20ysUFpCymj4EvQrRkk5kBtsiMixsJzimpUOrSmrRHcORKEin
    FKM6y/DFE33zhP8BNDQRaDLGni0Ip+/jP3EHmia41SSbnwzRcbXMfH5fL3KAyRsCE0ocHY+cjUng
    HPYxl1ffdLZuEW3wJDQFuTS/v4ECgYEA9r7HVVnrS2303zclzCTGen/W/SVbpflSKEYJOZpa8RtQ
    uFMOewfkTbBzfavLMVBYB8uAmcWIz5JAFSzlBaKDRCnouUeeDiDJVJd8Asbn1gCE8UVETUOthy50
    R90RTtPNMmyP7AnoSMTuzsbwVORus7IJvceWHQBB4KCh652UansCgYEA0rSmvdquidkXf5iFpebc
    6Wh/qy+L1dkgz7+HTZIMW7kxA4EfJFnqaQRPqJ5XYcLvk2IzxNQKJlZvtBhCfVYhPJ2uB2Yqxv0p
    0LXGC01fZSyhbYGfaxVymA3HMc2ULBbaFMyhO7l7zkz+G+qkylych59zJBSoUxSFStpgNL7NhkEC
    gYAPJIorLMeJ64eZo1LIgoFDx1C0XHSRbQmjuxiZ1mU6YsjDZyV+W2+hbPDJh5+CuUGNyOlthnfs
    9TbFlenAPMb9iezkYgbLKyvv6xQLP5W+xm1iOTQF4d9mam1sc566TblMHOmAPONqg9t8CS16qEI6
    +PQsF3GY+gkQ9gq54QPYvQKBgDgwjsrQd30xVI/lV7a/Uyg3gtxe6JaVuadNN0LbcMpBH64EkA58
    oANzb97SoxDiEEuog4+40CAbKtzHH2wXPPPSROeaOkwolS8gWnkHICp19XKjf6Tp6k5cVkOUxC/h
    xDSJwXGQ7FA+vgEp2NpSSjfssKLtk1ncfhNRGxjVzS9BAoGBALbBLS4Nbjs2Fco+okNQPNfJNSvW
    yWV7a6ngfRzW8B+BO6V1QRIR44bwv/Z74oQ7ttt8KoZENB5yzZwaVWpFlOjSO/4Nx++Ef4pY5aPS
    zNpXcXCZgUdA67qmOILvrG7bnDR60dcBZVBl7CjnpTlccg7MD4CBsFJx+hGRPD2yIV94
    -----END RSA PRIVATE KEY-----
    

  6. -----BEGIN RSA PRIVATE KEY----- で始まる部分をローカル・ファイルに保存します。この部分が、インスタンスを起動して SSH でアクセスする際に使用する秘密鍵となります。保存したファイルは必ず、非公開にして安全に保管してください。この鍵でインスタンスを起動した後に、その鍵を失くしてしまった場合、シェルを使ってインスタンスに接続できなくなります。鍵ファイルには pk-devworks という名前を付け、ファイルのアクセス権を変更することで、より安全に保管されるようにします。

    リスト 4. 秘密鍵に対するアクセス権の変更
    $ chmod 600 pk-devworks
    

これで、開発環境のセットアップは完了です。

最初のインスタンスを起動する

これから、RightScale によって提供されている公開イメージのうち、CentOS をベースとしたイメージから最初のインスタンスを起動します。このイメージの AMI ID は ami-d8a347b1 です。


リスト 5. インスタンスの起動

$ ec2-run-instances –k devworks -n 1 ami-d8a347b1

RESERVATION     r-2691404f      710193521658    default
INSTANCE        i-7f923516      ami-d8a347b1                    pending 
devworks        0               m1.small        2008-09-07T18:05:34+0000
us-east-1c      aki-9b00e5f2

新たに起動したインスタンスは必ず pending 状態になります。この状態は起動がまだ完了していない状態なので、インスタンスをアドレス指定することはできません。この状態で確認できるのは、インスタンスに関する以下の詳細です。

  • 起動時刻 — このインスタンスが起動された時刻。UTC 形式で表示されます。
  • インスタンスのタイプ — 上記の例では、インスタンスの起動時にそのタイプを指定していないため、EC2 が自動的にデフォルトのタイプ m1.small を選択しています。
  • Availability Zone — 上記の例では、インスタンスの起動時に Availability Zone を指定していないため、EC2 が現行システムのヘルスおよび可用性を基に Availability Zone を選択しています。
  • カーネル — このインスタンスが使用する Linux カーネルも表示されます。カーネルはインスタンスを起動する際に指定することができます。指定しない場合には、デフォルトのカーネルを使用した AMI が事前構成されます。
  • セキュリティー・グループ — 上記の例では、インスタンスは default セキュリティー・グループに配置されます。独自のセキュリティー・グループを作成してアクセス権を与え、そのグループにインスタンスを配置することもできます。その場合には、インスタンスを起動するときにセキュリティー・グループを指定する必要があります。インスタンスを起動した後にセキュリティー・グループの名前を変更することはできませんが、グループに対する権限はインスタンス起動後でも変更することができます。

ここで、実行中のインスタンスの一覧を表示して各インスタンスの現在の状態を確認します。


リスト 6. インスタンスの一覧

$ ec2-describe-instances

RESERVATION     r-2691404f      710193521658    default
INSTANCE        i-7f923516      ami-d8a347b1    ec2-67-202-28-68.compute-1.amazonaws.com
domU-12-31-38-00-34-C8.compute-1.internal       running devworks        0
m1.small   2008-09-07T18:05:34+0000        us-east-1c      aki-9b00e5f

この一覧から、インスタンスが実行中であることがわかります。また、このインスタンスに関する以下の詳細も追加されています。

  • パブリック DNS 名 — このインスタンスにインターネット経由で接続するために使用する DNS 名。
  • プライベート DNS 名 — Amazon のデータセンター環境内の EC2 のローカル・ネットワーク内にあるこのインスタンスを解決するために使用する DNS 名。

最初のインスタンスに SSH を使用して接続する

インスタンスに SSH 接続するには、そのインスタンスの秘密鍵とパブリック DNS 名を使用します。


リスト 7. インスタンスへの SSH 接続
$ ssh -i pk-devworks root@ec2-67-202-28-68.compute-1.amazonaws.com

The authenticity of host 'ec2-67-202-28-68.compute-1.amazonaws.com (10.252.59.54)' 
can't be established.
RSA key fingerprint is ae:e5:00:54:75:65:1c:c5:44:53:72:b9:e0:b5:26:a9.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'ec2-67-202-28-68.compute-1.amazonaws.com,10.252.59.54'
(RSA) to the 
list of known hosts.


[root@domU-12-31-38-00-34-C8:~]

上記のコードでログインした後にエラー・メッセージが表示される場合もありますが、このメッセージは無視して構いません。この AMI が起動後に実行するカスタム RightScale スクリプトが見つからないというだけです。

インスタンスをカスタマイズして再バンドルする

RightScale AMI は極めて包括的であり、この AMI をベース・イメージとして使用する上で必要なすべてのものが含まれています。EC2 コマンドライン・ツールも、すでに /home/ec2 ディレクトリーにインストールされています。

  1. セキュリティー証明書を追加します。追加するセキュリティー証明書は、リスト 1 で使用したのと同じファイルです。

    リスト 8. インスタンスへの証明書のコピー
    $ scp -i pk-devworks path_to_your_private_key_cert 
    root@ec2-67-202-28-68.compute-1.amazonaws.com:/home/ec2/
    
    $ scp -i pk-devworks path_to_your_x509_cert 
    root@ec2-67-202-28-68.compute-1.amazonaws.com:/home/ec2/
               

  2. このイメージを独自のプライベート EC2 イメージとして使用できるように環境変数を設定します。/etc/profile.d/env.sh ファイルを編集して、それぞれの環境変数を設定してください。アカウント番号とアクセス・キーは Web Services Account 情報ページから入手することができます。証明書と秘密鍵は、上記のステップでインスタンスにコピーしたファイルです。

    リスト 9. インスタンス環境のカスタマイズ
    $ vim /etc/profile.d/env.sh
    
    export EC2_HOME=/home/ec2
    export EC2_CERT=
    export EC2_PRIVATE_KEY=
    export AWS_ACCOUNT_NUMBER=
    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=
    export PATH=$PATH:/home/ec2/bin/
    
    # Turn off the rightscripts so you don’t get the error on login.
    $ chkconfig --level 4 rightscale off
    
    # Change the login message
    $ echo “Welcome to my devworks test EC2 image” > /etc/motd
                

  3. このイメージにはすでに Ruby がインストールされていますが、この記事の後のステップで EC2 を操作するために使用する Ruby ライブラリーはインストールする必要があります。まずインストール済みの gem を更新してから、right_aws gem とその他の必要な依存関係をインストールします。

    リスト 10. Ruby gem のインストール
    $ gem update
    $ gem install right_aws
                

  4. このインスタンスを再バンドルし、S3 にアップロードして EC2 に登録する準備ができたところで、まずはインスタンスを devworks-ec2 という名前で再バンドルします。/mnt フォルダーと /tmp フォルダーは無視してください。また、EC2 秘密鍵、EC2 セキュリティー証明書、そして Amazon Web サービスのアカウント番号を指定する必要もあります。

    リスト 11. インスタンスの再バンドル
    $  ec2-bundle-vol -d /mnt -c /home/ec2/your_ec2_x509_cert  
    -k /home/ec2/your_ec2_private_key -u your_aws_account_number 
    -e /mnt,/tmp -s 10240 -r i386 -p devworks-ec2
                

  5. 再バンドルのプロセスが完了すると、/mnt ディレクトリーに一連のファイルが作成されます。S3 にアップロードするのは、新しく作成された AMI を構成するこれらのファイルです。この新規イメージは、ユーザーが指定するバケットに配置されます。以下のコマンドに含まれる –b パラメーターを、S3 内でイメージ・ファイルの保存先とするバケットの名前に置き換えてください。

    リスト 12. S3 へのイメージのアップロード
    $ ec2-upload-bundle -b your_s3_bucket -m /mnt/devworks-ec2.manifest.xml 
    -a your_aws_access_key -s your_aws_secret_key
               

  6. これで、AMI は無事に S3 に保存されました。後は AMI を EC2 に登録し、このイメージを後で起動するときに使用する AMI の ID を取得するだけです。

    リスト 13. EC2 へのイメージの登録
    $ ec2-register -K /home/ec2/your_ec2_private_key 
    -C /home/ec2/your_ec2_x509_cert your_s3_bucket/devworks-ec2.manifest.xml
    
    IMAGE   ami-58c42031
                

  7. SSH セッションを終了し、実行中のインスタンスを終了します。

    リスト 14. インスタンスの終了
    $ ec2-terminate-instances i-7f923516
    INSTANCE        i-7f923516      running shutting-down
    

次のセクションでは新しく作成した AMI から新規インスタンスを起動します。記事の残りではこの新規インスタンスと right_aws ライブラリーを使って、EC2 を詳しく調べていきます。




上に戻る


Ruby による EC2 の詳細調査

RightScale が提供している Ruby ライブラリー right_aws を利用すれば、Ruby を使用して Amazon EC2 サービスにアクセスすることができます。RightScale 自らの製品で使用されている、この歴戦のライブラリーは、最近導入された EBS を含め、EC2 のあらゆる側面を網羅しています。right_aws がパッケージ化されている rubygem には、HTTP ライブラリー RightScale:HttpConnection も含まれており、確実に再試行およびエラー処理が行われます。この記事で取り上げるのは right_aws ライブラリーが提供する EC2 機能だけなので、API の全容をつかむためにライブラリー付属のドキュメントを読むことを是非ともお薦めします。そして right_aws ライブラリーとそのサポート・ライブラリー right_http_connection 両方のさまざまな構成オプションを調べてください。

ここで使用する Rightscale::Ec2 クラスは、EC2 を操作するための主要なインターフェースを提供します。Ruby ライブラリーを利用するための手段としては irb コンソールを使用します。ここでは、Rightscale::Ec2 オブジェクトにメッセージを送信し、EC2 がそのメッセージ対して返すレスポンスを調べていきます。EC2 の概念を探るこの手順を通して、right_aws ライブラリーの API についても理解が深まるはずです。

  1. 新規に作成した AMI からインスタンスを起動します。インスタンスが実行中になったら、インスタンスに SSH で接続してください。その後、インスタンス内部で irb コンソールの使用を開始します。

    リスト 15. 新規インスタンスの起動およびインスタンスへの SSH 接続
    $ ec2-run-instances -k devworks -n 1 ami-58c42031
    
    RESERVATION     r-5795443e      710193521658    default
    INSTANCE        i-1a9e3973      ami-58c42031                    pending devworks    0
    m1.small        2008-09-07T21:06:37+0000        us-east-1c      aki-9b00e5f2
    
    $ ec2-describe-instances 
    
    RESERVATION     r-949544fd      710193521658    default
    INSTANCE        i-5a9d3a33      ami-58c42031    
    ec2-75-101-208-95.compute-1.amazonaws.com       
    domU-12-31-38-00-78-04.compute-1.internal       
    running devworks        0               m1.small   
    2008-09-07T21:14:27+0000        us-east-1c      aki-9b00e5f2
    
    $ ssh -i pk-devworks root@ec2-75-101-208-95.compute-1.amazonaws.com
              

  2. Ruby シェルを起動し、Rightscale::Ec2 オブジェクトを作成します。

    リスト 16. Ruby シェルおよび新規 Rightscale::Ec2 オブジェクト
    $ irb
    irb(main):001:0> require 'rubygems'
    => true
    irb(main):002:0> require 'right_aws'
    => true
    irb(main):003:0> @ec2 = Rightscale::Ec2.new(
    ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
    

ここからは、新しく作成した変数 @ec2 を使用して EC2 を詳しく調べていきます。この例ではライブラリーのデフォルト構成を使用します。使用可能な構成オプションのリストについては、ライブラリーに付属のドキュメントを参照してください。

  1. インスタンスのリストを取得しにいくと、それぞれに各インスタンスの詳細を提供するハッシュの配列が返されます。この応答フォーマットは、このライブラリーのほぼすべての API 呼び出しが従う共通のパターンです。リスト 17 に一例を示します。

    リスト 17. インスタンスの詳細の表示
    irb(main):004:0> @ec2.describe_instances()
    
    => [{:aws_launch_time=>"2008-09-07T21:14:27.000Z", :aws_kernel_id=>"aki-9b00e5f2", 
    :ssh_key_name=>"devworks", :aws_reservation_id=>"r-949544fd", 
    :aws_availability_zone=>"us-east-1c", 
    :aws_state=>"running", :aws_instance_id=>"i-5a9d3a33", :aws_groups=>["default"], 
    :aws_image_id=>"ami-58c42031", 
    :aws_product_codes=>[], :dns_name=>"ec2-75-101-208-95.compute-1.amazonaws.com", 
    :aws_state_code=>"16", 
    :private_dns_name=>"domU-12-31-38-00-78-04.compute-1.internal", 
    :aws_instance_type=>"m1.small", 
    :aws_reason=>"", :ami_launch_index=>"0"}]
               

  2. 次はイメージのリストを取得します。

    リスト 18. イメージの詳細の表示
    irb(main):005:0> @ec2.describe_images_by_owner([ENV['AWS_ACCOUNT_NUMBER']])
    
    => [{:aws_location=>"ylastic_images/devworks-ec2.manifest.xml",
     :aws_kernel_id=>"aki-9b00e5f2", :aws_state=>"available", :aws_is_public=>false,
    :aws_architecture=>"i386", :aws_id=>"ami-58c42031", :aws_image_type=>"machine"}]
                

  3. インスタンスを配置したり、インスタンスへのアクセスを制限または許可したりするために使用するセキュリティー・グループを作成します。

    リスト 19. 新規セキュリティー・グループの作成およびグループの詳細の表示
    irb(main):006:0> @ec2.create_security_group("devworks", 
       "Devworks Article Security Group")
    
    => true
    
    irb(main):008:0> @ec2.describe_security_groups()
    
    => [{:aws_group_name=>"devworks", :aws_description=>"Devworks Article Security 
       Group", 
    :aws_perms=>[]}]
                

  4. 新規セキュリティー・キー・ペアを作成し、アカウントのすべてのキー・ペアを表示します。

    リスト 20. 新規セキュリティー・キー・ペアの作成およびキー・ペアの表示
    irb(main):018:0> @ec2.create_key_pair('mykeypair')
    
    => {:aws_key_name=>"mykeypair", 
    :aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a:78:ff:99:6b:fa", 
    
    :aws_material=>"-----BEGIN RSA PRIVATE KEY-----
    \nMIIEpAIBAAKCAQEAyRdAvihBXDu30o2uvQ1h8xdIRLHs0RjQWK4Yw5Y5DkaS41EEjnDwjO6sEY5l\n
    IXSuzVj1nkZ1VMPuVR3hIXHCMJLaAO77TaXZVC9yymIUAyTcQ1+hoVLlrCuVI3dEY21WQNTEbtkI\nlI
    xMW+UhkiaKrGHmt2yYLjr754KGt7pNCpRwxPXB7brlpQ3qpapkr7XrKZppvWoG8MCmPIFx8P0K\no8Cd
    mnF9lEdns6uaJZmfs4Ls9HZHpsmn0r42GbOAkJEkj7nE5zc3rXYpmCBZhjyHus0iXjS/n9oL\nHWhV0a
    wagjvmsQgJPYqEsBeO5pDb2IOZq5okQie1YJTd1m8k8k7m9wIDAQABAoIBAQCK0lWssOem\nP8fAQHVg
    J+v1wJ3wZpBhLWsvvUh1RbCvzUK8UQL/PrKh6Ga7W/0u4nmGY6J0mJmJYhWXhyATUZBI\nrih3uoOccC
    Eff/4T/y9nmDvC+zL+xtatTA0SRdTdeu6vpPLSv1uwCUbxrbXGSnszVAbNm9dXGvsq\nMK7GCYQEB4p4
    FtJolDqGZdWAj1u5/AGjbCI+PbkbCAro55Sqnl95WAlogdQFmgxljWl9TEIsbrHf\nYZHtKHlm1lvyeB
    QdVmwLT9S7ufI1J/GAevRxrG2iEkx/IJWYGnQE0P2bXa6Ry90UyvWRPS6Zi/MD\nfWoFAxnB6Ryssr+S
    IAfpG6SGuM55AoGBAOr7yPcvg/66f/Xd3CbpmI8lIfsXBb9xki3pIEfYAWD/\n2ToxpRYPTgrwwB1ufo
    NPr7U1QfzJvAvlTXWkfp4oUnssi5sXw1okZmm01hT0j0FNvsgMG6zD8Z/9\nmgrVrH+tBxVoYqrPM/WB
    dnYhQXEGQq+UF2uPqoKDbsl3DkftXTBrAoGBANsTdLfHmRidkLCRKfSj\nUrbJOSsU6RWGFuoqgD+DZL
    ngKBTaBTd6TVONSR2JvpVJo5hyiAXQ/jQ1XtsPAuJR6fiiRvDfgF7j\n1lp1tsFpNYx2R4+eqoLrHgIC
    Ak1Ke8tWyoD3NgQ4FO9TDfW+QHn0dpLeWdNMUd2a1GVKp4hIoJal\nAoGBAITqMryO5eyZ9XNPMQ3Zp+
    +gI15xoVCunu7VJOs+ZVlGnsrp9eVKdux9TU3YiDsiQdMP8ulX\n+sQHyg63It+3EyCVC8qIYHmGiV9V
    aJql0rovjbB+GNFabDwBKLbkMhRt/MnBJ75SQaOmvSkImomh\n7up9q9mtg9cbHPlcHHnW65VNAoGAKi
    +Y7jrVVFQjJJ0PgzhgGSqug4lHSQnFJ9p/T7uxjcmIblt9\nXa2Dbm9qgPGhbYX8psKHRvdzvAH6/hvp
    5kL31xUIrCGdyqf9AvZf9uaXlTDBnvpiw0sbQC+62b9a\nD1HrNOJl2HIkNeG8cnHsYI+etbFzgqjTqu
    TBua+iiy/RHLECgYALIDqaAcd7o4V+ws+WG1G9vTlc\nJ6/sBpu3JyKMSdJYlbgIbvHgrfbKhEYuNh/H
    XNdrI6oeW9eAruqHlH+OlUx0tCg4VIeQsz/b7kPS\nY14OMAswuHHyqlZIqK4Xy/R6SQmsc/CUXWPk5I
    UesJk5f1V1NXIqqwv6+nlEucdjgYUd5w==\n-----END RSA PRIVATE KEY-----"}
    
    
    irb(main):020:0> @ec2.describe_key_pairs()
    
    => [{:aws_key_name=>"mykeypair",
    :aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a:78:ff:99:6b:fa"}]
                

  5. EBS ボリュームを新規に作成します。このボリュームの Availability Zone には us-east-1c を指定してください。ボリュームが作成されて使用可能になると、同じ Availability Zone 内で実行中のインスタンスにしかボリュームを接続できなくなります。ボリュームの初期状態は「作成中 (creating)」です。プロセスが完了すると、ボリュームの状態は「使用可能 (available)」になります。

    リスト 21. 新規 EBS ボリュームの作成およびボリュームの表示
    irb(main):024:0> @ec2.create_volume('', 1, 'us-east-1c')
    
    => {:aws_status=>"creating", :aws_created_at=>Mon Sep 08 00:29:35 UTC 2008, 
    :zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=>"vol-2f34d146"}
    
    irb(main):026:0> @ec2.describe_volumes()
    
    => {:aws_status=>"available", :aws_created_at=>Mon Sep 08 00:29:35 UTC 2008, 
    :zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=>"vol-2f34d146"}
                

  6. このボリュームをブロック・デバイス /dev/sdj として現行インスタンスに接続し、実際に使用できるように ext3 ファイル・システムでフォーマット設定します。

    リスト 22. 新規 EBS ボリュームの接続とファイル・システムの作成
    irb(main):031:0> @ec2.attach_volume('vol-2f34d146', 'i-5a9d3a33', '/dev/sdj')
    
    => {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj", 
    :aws_attachment_status=>"attaching", :aws_id=>"vol-2f34d146", 
    :aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}
    
    
    $ mkfs.ext3 /dev/sdj
    mke2fs 1.39 (29-May-2006)
    /dev/sdj is entire device, not just one partition!
    Proceed anyway? (y,n) y   
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    131072 inodes, 262144 blocks
    13107 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=268435456
    8 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376
    
    Writing inode tables: done                            
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 39 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
                

  7. 新しくフォーマット設定されたブロック・デバイスをファイル・システムのフォルダーにマウントします。

    リスト 23. ローカル・ディレクトリーへのボリュームのマウントとその使用
    $ mount /dev/sdj /mnt/my-vol
    
    $ echo “Hello Devworks” > /mnt/my-vol/test.txt
    
    # cat /mnt/my-vol/test.txt
    
    Hello Devworks
    

これで、この EBS ボリュームはシステム上の他のブロック・デバイスとまったく同じように使用できるようになりました。このボリュームに対して読み取り、書き込み操作を実行することができます。ボリュームを使用し終わったら、実行中のインスタンスからボリュームを接続解除し、後で必要に応じて別のインスタンスあるいは同じインスタンスに再接続することができます。これはまさに、EC2 の実用性レベルをさらに引き上げる永続ストレージです。インスタンスの有効期限が切れた後も存続させておかなければならない貴重なデータベース・データを Web サーバー・ログに保存するために使用する他にも、この有用な EBS ボリュームにはさまざまな活用方法があります。

EBS ボリュームのスナップショットを作成し、その時点でのボリュームの内容を保持させることができます。スナップショット自体は自動的に S3 に保存され、EC2 がスナップショットを作成すると蓄積されていきます。ボリュームの最初のスナップショットはボリューム全体のコピーですが、その後のスナップショットには変更セットのみが保存されます。現在、Amazon Web サービスのアカウントあたりのスナップショット数は 500 に制限されています。500 を超えるスナップショットを維持する必要がある場合には、アカウントの制限拡大を要求することができます。


リスト 24. EBS ボリュームからのスナップショットの作成
irb(main):007:0> @ec2.create_snapshot('vol-2f34d146')

=> {:aws_status=>"pending", :aws_volume_id=>"vol-2f34d146", 
:aws_started_at=>Mon Sep 08 00:49:15 UTC 2008, :aws_progress=>"", 
:aws_id=>"snap-13db3c7a"}

スナップショットは、EC2 がバックグラウンドで作成します。スナップショットが正常に作成されていることを確認するために、定期的にすべてのスナップショットの一覧を表示することができます。


リスト 25. EBS スナップショットの一覧の表示
irb(main):008:0> @ec2.describe_snapshots()

=> [{:aws_status=>"completed", :aws_volume_id=>"vol-2f34d146", 
:aws_started_at=>Mon Sep 08 00:49:15 UTC 2008, :aws_progress=>"100%", 
:aws_id=>"snap-13db3c7a"}]

最後に、ボリュームは、インスタンスから接続解除することができます。接続解除したボリュームは、後で同じインスタンスに再び接続することも、別のインスタンスに接続することもできます。


リスト 26. EBS ボリュームの接続解除
irb(main):006:0> @ec2.detach_volume('vol-2f34d146')

=> {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj", 
:aws_attachment_status=>"detaching", :aws_id=>"vol-2f34d146", 
:aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}




上に戻る


まとめ

この記事では Amazon の EC2 サービスを紹介し、その基本概念を説明しました。そしてこの EC2 を操作するためのオープンソースの Ruby ライブラリー、right_aws が提供する機能もいくつか説明しました。この記事では多岐にわたって説明しましたが、EC2 は非常に大きく複雑なトピックです。是非とも Amazon EC2 Developer Guide を読んで、詳しい情報を入手することをお薦めします。

連載「Amazon Web サービスを利用したクラウド・コンピューティング」の第 4 回では、Amazon SQS (Simple Queue Service) によるクラウド内での信頼性の高いメッセージングについて説明します。



参考文献

学ぶために

製品や技術を入手するために
  • IBM 製品の評価版をダウンロードして、DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® のアプリケーション開発ツールとミドルウェア製品を使ってみてください。


議論するために


著者について

Prabhakar Chaganti photo

Prabhakar Chaganti が CTO を務める Ylastic は、EC2、S3、SQS、SimpleDB を含めたユーザーの AWS クラウド・コンピューティング環境全体を設計、管理、モニターするための統一インターフェースを構築している新興企業です。彼は最近、『Xen Virtualization』および『GWT Java AJAX Programming』という 2 冊の本を書いています。VMware Global Virtual Appliance Challenge では、最も革新的な仮想アプライアンスに贈られるコミュニティー特別賞も受賞しています。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


IBM、IBM ロゴ、ibm.com、DB2、developerWorks、Lotus、Rational、Tivoli、および WebSphere は、International Business Machines Corporation の米国およびその他の国における商標または登録商標です。これらおよび他の IBM 商標に、この情報の最初に現れる個所で商標表示 (® または ™) が付されている場合、これらの表示は、この情報が公開された時点で、米国において、IBM が所有する登録商標またはコモン・ロー上の商標であることを示しています。このような商標は、その他の国においても登録商標またはコモン・ロー上の商標である可能性があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml の「Copyright and trademark information」をご覧ください。 Intel および Intel Xeon は、Intel Corporation または子会社の米国およびその他の国における商標または登録商標です。 Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およびその他の国における商標です。 Linux は、Linus Torvalds の米国およびその他の国における商標です。 Microsoft および Windows は、Microsoft Corporation の米国およびその他の国における商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。

    日本IBMについて プライバシー お問い合わせ