こんにちは!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 2 3 4 5 6 7 |
# cd /usr/local/src # wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz # tar zxvf Python-3.4.1.tgz # cd Python-3.4.1 # ./configure --prefix=/usr/local/python3 # make # make install |
続いて、環境変数を設定致します。
1 2 3 |
# vim ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/bin:/usr/sbin:/usr/local/python3/bin # 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 2 3 4 5 |
# python3 >>> import boto.ec2 >>> conn = boto.ec2.connect_to_region("ap-northeast-1") ... aws_access_key_id='<aws access key>', ... aws_secret_access_key='<aws secret key>') |
アクセスキーとシークレットキーはIAMから発行したユーザーのモノを入力します。
※以前はルートアカウントのキーを利用できましたが、現在は取得不可になったためIAMユーザーを作成することをおすすめします。
EC2インスタンスを立ててみます。
1 |
>>> conn.run_instances(‘<ami-image-id>') |
今回は特にサイズ等を指定しませんでしたが以下のようにEC2が立ち上がっています。
立てたEC2を停止させます。
1 |
>>> conn.stop_instances(instance_ids=['instance-id-1']) |
リスト指定することで複数のインスタンスを一度に停止させることが可能です。
停止させたEC2を削除します。
1 |
>>> conn.terminate_instances(instance_ids=['instance-id-1']) |
いかがでしたでしょうか。
Python3でもbotoを扱う事が出来ました。
次回もお楽しみに!!