Amazon EC2の機能を詳しく見てみる(4)--ストレージ、リージョン&ゾーン、課金

小田逸郎(VA Linux Systems Japan)
2009-05-28 10:00:00
  • このエントリーをはてなブックマークに追加

 これまで駆け足でAmazon EC2が提供している機能をトピックごとに見てきましたが、今回でひとまず一段落です。今回は、ストレージ関連の機能、「リージョン」と「ゾーン」の概念、そしておまけとして「課金システム」についてもちょっとだけ考えてみましょう。

Amazon EC2のストレージまわり

 インスタンスを起動したときに自動についてくるストレージ(インスタンスストレージ)については、デバイス名やレイアウトが、32-bitプラットフォームか、64-bitプラットフォームかにより、それぞれ下表のように決め打ちになっています。(注: 下記は、Linuxの場合で、Windowsの場合は異なります。また、"-"は定義されていないことを意味します)

 
32-bit
64-bit
ami
sda1
sda1
root
/dev/sda1
/dev/sda1
swap
sda2
-
ephemeral0
sda3
sdb
ephemeral1
-
sdc
ephemeral2
-
sdd
ephemeral3
-
sde

 インスタンスストレージの大きさは、インスタンスのタイプにより決まっています。sda1、すなわちルートパーティションの大きさは10GB固定です。swapは、32-bitの場合しか定義されておらず、大きさは896MBです。この割り当ては、インスタンスの起動時に、ec2-run-instancesコマンドの「--block-device-mapping」オプションを指定することにより、変えることは一応可能ではありますが、固定と考えてほぼ差し支えありません。

 永続的なデータを格納するためには、「Elastic Block Device(EBS)」という機能が用意されています。使用するための手順は以下のようになります。(括弧内は、使用するコマンドラインツール)

1) ボリュームを作成する(ec2-create-volume)

 ボリュームID が返るので、以降、それを使用する。作成する大きさは、GB単位で、1GBから1TB(1024GB)まで可能。

2) インスタンスのボリュームをアタッチする(ec2-attach-volume)

 ボリュームをアタッチするときにデバイス名を指定する。通常は、sdfからを使用する。

3) 使用しないときはインスタンスからデタッチする(ec2-detach-volume)

 なお、インスタンスを停止すると自動的にデタッチされる。

4) ボリュームの情報は、ec2-describe-volumes で確認できる。

 ボリュームは一度に1つのインスタンスからのみアクセス可能です。EBSは、スナップショットを取ることも可能で、使用の流れは以下のようになります。

1) スナップショットを取る(ec2-create-snapshot)

 ボリュームIDを指定する。スナップショットIDが返るので、以降、それを使用する。

2) スナップショットをアクセスしたい場合は、それをベースにボリュームを作成する(ec2-create-volume)

 ボリューム作成時にスナップショットIDを指定することが可能。作成したボリュームをアタッチしてアクセスする。

3) スナップショットがいらなければ消す(ec2-delete-snapshot)

4) スナップショットの情報は、「ec2-describe-shapshots」で確認できる。

 インスタンスストレージもEBSもインスタンス上から確認すると仮想ブロックデバイス(blkfront)が使用されています。dom0は参照できないため、実体としてどんなストレージが使用されているのかは分かりません。

 Amazon互換システムの実装を考えると、インスタンスストレージについては、ローカルディスクでよさそうな気がしますが、EBSについては、どこのインスタンスからもアクセス可能である必要がありますし、スナップショットも実装する必要があるので、いろいろと考えがいがありそうです。

「リージョン」と「ゾーン」

  • 新着記事
  • 特集
  • ブログ