SDK編~botoでEC2インスタンスを操作してみる~

こんにちは!Narimasaです!

前回は「 Amazon WorkSpaces・Zocalo編~Syncの変更点~ 」と題して、WorkSpaces・Zocalo Syncの仕様変更についてご紹介致しました。

今回は「SDK編~botoでEC2インスタンスを操作してみる~」と題して、AWS SDK for Python(boto)を使ってEC2インスタンスを操作する手順を紹介します。

過去の記事はこちらを御覧下さい。

EC2編~Amazon Linux Python Update 2.7~

SDK編~botoでS3アップロード~

AWS SDK for Python(boto)アップデート

先日、botoがアップデートされ、Python3.3、3.4をサポートしたことが発表されました。

http://aws.typepad.com/aws_japan/2014/08/boto-python-3.html

そこで今回はPython3.4をインストールした上でbotoを操作してみます。

Python3.4のインストール

前準備として、以下のツールをインストールしておいて下さい。

1# yum install gcc openssl-devel

現在、Python3.4はソースからインストールする必要が有ります。

1# cd /usr/local/src23# wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz45# tar zxvf Python-3.4.1.tgz67# cd Python-3.4.189# ./configure --prefix=/usr/local/python31011# make1213# make install

続いて、環境変数を設定致します。

1# vim ~/.bash_profile2 PATH=$PATH:$HOME/bin:/usr/bin:/usr/sbin:/usr/local/python3/bin34# source ~/.bash_profile

パスが通っているかは以下のコマンドで確認できます。

1# which python3

今回のソースインストールでは

「easy_install」と「pip」といったパッケージも一緒にインストールされるので、そのままbotoをインストールします。

1# pip3 install boto

これでbotoを使う準備が出来ました。

botoでできるEC2操作

botoも他のSDKやAPI-Toolsと同じく多くのAWSサービスを操作することができます。

今回はbotoを使ってEC2インスタンスの立ち上げと停止、削除までをおこなってみます。

まずはEC2サービスへの接続を行います。

1# python32>>> import boto.ec23>>> conn = boto.ec2.connect_to_region("ap-northeast-1")4...    aws_access_key_id='<aws access key>',5...    aws_secret_access_key='<aws secret key>')

アクセスキーとシークレットキーはIAMから発行したユーザーのモノを入力します。

※以前はルートアカウントのキーを利用できましたが、現在は取得不可になったためIAMユーザーを作成することをおすすめします。

EC2インスタンスを立ててみます。

1>>> conn.run_instances(‘<ami-image-id>')

今回は特にサイズ等を指定しませんでしたが以下のようにEC2が立ち上がっています。

boto-01

立てたEC2を停止させます。

1>>> conn.stop_instances(instance_ids=['instance-id-1'])

リスト指定することで複数のインスタンスを一度に停止させることが可能です。

停止させたEC2を削除します。

1>>> conn.terminate_instances(instance_ids=['instance-id-1'])

いかがでしたでしょうか。

Python3でもbotoを扱う事が出来ました。

次回もお楽しみに!!

この記事を書いた人

aws-recipe-user