Amazon EC2の機能を詳しく見てみる(1)--インスタンス・WebサービスAPI
Amazon EC2のAPI一覧
Amazon EC2で Webサービスとして提供されているAPIの一覧を以下に示します。機能分類ごとに整理してあります。個々の詳細は説明しませんが、どんな機能が用意されているのか雰囲気をつかむことはできるでしょう。Amazon EC2互換というからには、これらの機能をサポートする必要があります。
・AMI
| RegisterImage | AMIの登録 |
| DescribeImage | AMIの表示 |
| DeregisterImage | AMIの登録削除 |
| ModifyImageAttribute | AMIの属性の変更 |
| DescribeImageAttribute | AMIの属性の取得 |
| ResetImageAttribute | AMIの属性をデフォルトに戻す |
・インスタンス
| RunInstances | インスタンスの起動 |
| DescribeInstances | インスタンスの状態表示 |
| TerminateInstances | インスタンスの停止 |
| ConfirmProductInstance | プロダクトコードがアタッチされているかの確認 |
| RebootInstances | インスタンスのリブート |
・キーペア
| CreateKeyPair | キーペアの作成 |
| DescribeKeyPairs | キーペアの情報表示 |
| DeleteKeyPair | キーペアの削除 |
・セキュリティグループ
| CreateSecurityGroup | セキュリティグループの作成 |
| DescribeSecurityGroups | セキュリティグループの情報表示 |
| DeleteSecurityGroup | セキュリティグループの削除 |
| AuthorizeSecurityGroupIngress | アクセス権の付与 |
| RevokeSecurityGroupIngress | アクセス権の拒絶 |
・Elastic IP Adress
| AllocateAddress | Elastic IP Addressの獲得 |
| DescribeAddresses | Elastic IP Addressの表示 |
| ReleaseAddress | Elastic IP Addressの返却 |
| AssociateAddress | Elastic IP Addressをインスタンスに割り当てる |
| DisassociateAddress | Elastic IP Addressの切り離し |
・ゾーン、リージョン
| DescribeAvailabilityZones | Availability Zoneの表示 |
| DescribeRegions | リージョンの表示 |
・EBS
| CreateVolume | ボリュームの作成 |
| DescribeVolumes | ボリュームの情報表示 |
| DeleteVolume | ボリュームの削除 |
| AttachVolume | ボリュームをインスタンスに割り当てる |
| DetachVolume | ボリュームのデタッチ |
| CreateSnapshot | スナップショットの作成 |
| DescribeSnapshots | スナップショットの情報表示 |
| DeleteSnapshot | スナップショットの削除 |
・Windowsインスタンスのバンドル
| BundleInstance | Windowsインスタンスのバンドル(非同期のタスクを起動) |
| CancelBundleTask | バンドルタスクのキャンセル |
| DescribeBundleTasks | バンドルタスクの表示 |
・その他
| GetConsoleOutput | インスタンスのコンソール出力の取得 |
APIには、「SOAP API」と「Query API」の2種類が用意されています。これらは、要求の出し方が異なるだけであり、サーバ側で提供する機能や応答の形式は同一です。SOAP APIでは、httpsを使用し、Query APIは、httpsとhttpのどちらも使用できます。
SOAP APIのWSDLは、下記のリンクにあります。
「SOAP APIのWSDL(AmazonEC2.wsdl)」
Query APIは、要求のパラメタをURLにエンコードする方式です。例えば、以下のような感じです。
https://ec2.amazonaws.com/?Action=DescribeImages&ImageId.1=ami-2bb65342&Version=2008-12-01&Expires=2008-02-10T12%3A00%3A00Z&Signature=....&SignatureVersion=2&SignatureMethod=HmacSHA256&AWSAccessKeyId=....
AWSでは、以下の2種類の認証方法が使われています。
- アクセスキーIDと秘密アクセスキー
- X.509認証
AWSを使用したことがある方は、どちらもウェブの画面から登録されたはずです。
SOAP APIでは、X.509証明書を使用して、BinarySecurityToken profileによる認証が行われます。Query APIでは、秘密アクセスキーを使用しており、URLエンコードした内容を秘密アクセスキーを用いて計算した値を「Signature」パラメタに指定しています。
Amazon EC2を使用するためのコマンドツールが用意されています。本稿では、そのコマンドツールを使用して実行例を示しています。その他にも、いろいろなツールやライブラリが提供されています。それらは、Amazon EC2のウェブページから、「Resources」→「Sample Code & Libraries」または「Developer Tools」とたどっていくと得られます。
実際のところ、シグネチャの計算方法などは、Developer Guideにも載ってはいますが、ライブラリのコードを参照する方が確実です。ライブラリについては、主要な言語についてはほとんどそろっているので、お好きな言語のものをご参照ください。
Amazon EC2互換にすることの利点のひとつとして、これらツールやライブラリがそのまま使用できるということがあります。ただし、用意されているのはクライアント側のものですので、サーバ側のシステムは自分で実装する必要があります。ただし、その際もクライアント側のコードは参考になります。
次回は、Amazon EC2のネットワーク環境について見ていきましょう。
筆者紹介
VA Linux Systems Japan 高橋浩和・小田逸郎・箕浦真(MAIL)
各種OS、仮想化、Linux Kernelおよびオープンソースにおける高度な技術と経験を基盤とした、技術コンサルティング、開発、インテグレーションとソフトウェアソリューションを提供。VA Linuxは、2000年9月に設立され、Linux Kernelや仮想化に関するグローバルレベルの技術力をベースにLinuxおよびオープンソース業界を牽引する中核企業として成長を続けている。
- ホワイトペーパー



