OpenStack環境
OpenStackはUbuntu12.04LTS上にGrizzly版DevStackをインストールしたものを利用した。
DevStackのインストールはSingleMachine構成での構築を行った。
参考: http://devstack.org/guides/single-machine.html
EC2互換APIでOpenStackを操作するための設定
参考となるページは下記。
http://knowledge.sakura.ad.jp/tech/251/
この手順の中でTENANT_IDはEC2用のテナントをあらかじめ作っていく必要があるので注意。
EC2互換APIでインスタンスの起動、停止をしてみる。
イメージの一覧
$ euca-describe-images IMAGE aki-00000001 None (cirros-0.3.1-x86_64-uec-kernel) 1de8ba1352274a98800e8c5dfee5cfa4 available public kernel instance-store IMAGE ari-00000002 None (cirros-0.3.1-x86_64-uec-ramdisk) 1de8ba1352274a98800e8c5dfee5cfa4 available public ramdisk instance-store IMAGE ami-00000003 None (cirros-0.3.1-x86_64-uec) 1de8ba1352274a98800e8c5dfee5cfa4 available public machine aki-00000001 ari-00000002 instance-store
イメージIDを指定してインスタンスを起動
$ euca-run-instances ami-00000003 RESERVATION r-0jhbhphs 1de8ba1352274a98800e8c5dfee5cfa4 default INSTANCE i-00000001 ami-00000003 server-311f5bb8-48dc-43a8-a16f-137ca31b95e4 server-311f5bb8-48dc-43a8-a16f-137ca31b95e4 pending None (1de8ba1352274a98800e8c5dfee5cfa4, None) 0 m1.small 2013-06-17T03:14:07.000Z nova aki-00000001 ari-00000002 monitoring-disabled instance-store
インスタンス起動時のオプションは下記の通り。
euca-run-instances [-A, --access-key <access_key> ][-A, --secret-key <secret_key> ][--config <config_path> ][--debug][--debugger][-h, --help][--region <region_name> ][-U, --url ][--version][--euca-auth][-n, --instance- count ][-g, --group <group_name> ][-k, --key ][-d, --user-data <user_data> ][--user-data-force <user_data_force> ][-f, --user-data-file <user_data_file> ][--addressing ][-t, --instance-type <instance_type> ][--kernel ][--ramdisk ][-b, --block-device-mapping <block_device_mapping> ][--monitor][-s, --subnet ][-z, --availability-zone ] image_id
ちなみに、OpenStack 標準コマンドの nova boot のオプションとの主な項目の対比は下記の通り。
EC2 | OpenStack |
---|---|
image_id | –image |
–instance-count | –num-instances |
–group | –security-groups |
–key | –key-name |
–user-data | –user-data |
–user-data-file | –file |
–instance-type | –flavor |
–block-device-mapping | block-device-mapping |
–availability-zone | –availability-zone |
インスタンス一覧
$ euca-describe-instances RESERVATION r-0jhbhphs 1de8ba1352274a98800e8c5dfee5cfa4 default INSTANCE i-00000001 ami-00000003 server-311f5bb8-48dc-43a8-a16f-137ca31b95e4 server-311f5bb8-48dc-43a8-a16f-137ca31b95e4 error None (1de8ba1352274a98800e8c5dfee5cfa4, None) 0 m1.small 2013-06-17T03:14:07.000Z nova aki-00000001 ari-00000002 monitoring-disabled instance-store
インスタンスの停止
$ euca-terminate-instances Terminates the specified instances.
一通りは使えそう。
ちなみにEC2互換API(euc2ools)に含まれているコマンドは下記の通り。
$ ls /usr/bin/euca-* | cat /usr/bin/euca-add-group /usr/bin/euca-add-keypair /usr/bin/euca-allocate-address /usr/bin/euca-associate-address /usr/bin/euca-attach-volume /usr/bin/euca-authorize /usr/bin/euca-bundle-image /usr/bin/euca-bundle-instance /usr/bin/euca-bundle-upload /usr/bin/euca-bundle-vol /usr/bin/euca-cancel-bundle-task /usr/bin/euca-check-bucket /usr/bin/euca-confirm-product-instance /usr/bin/euca-create-image /usr/bin/euca-create-snapshot /usr/bin/euca-create-tags /usr/bin/euca-create-volume /usr/bin/euca-delete-bundle /usr/bin/euca-delete-group /usr/bin/euca-delete-keypair /usr/bin/euca-delete-snapshot /usr/bin/euca-delete-tags /usr/bin/euca-delete-volume /usr/bin/euca-deregister /usr/bin/euca-describe-addresses /usr/bin/euca-describe-availability-zones /usr/bin/euca-describe-bundle-tasks /usr/bin/euca-describe-group /usr/bin/euca-describe-groups /usr/bin/euca-describe-image-attribute /usr/bin/euca-describe-images /usr/bin/euca-describe-instances /usr/bin/euca-describe-keypairs /usr/bin/euca-describe-regions /usr/bin/euca-describe-snapshots /usr/bin/euca-describe-tags /usr/bin/euca-describe-volumes /usr/bin/euca-detach-volume /usr/bin/euca-disassociate-address /usr/bin/euca-download-bundle /usr/bin/euca-get-console-output /usr/bin/euca-get-password /usr/bin/euca-get-password-data /usr/bin/euca-import-keypair /usr/bin/euca-modify-image-attribute /usr/bin/euca-monitor-instances /usr/bin/euca-reboot-instances /usr/bin/euca-register /usr/bin/euca-release-address /usr/bin/euca-reset-image-attribute /usr/bin/euca-revoke /usr/bin/euca-run-instances /usr/bin/euca-start-instances /usr/bin/euca-stop-instances /usr/bin/euca-terminate-instances /usr/bin/euca-unbundle /usr/bin/euca-unmonitor-instances /usr/bin/euca-upload-bundle /usr/bin/euca-version