Download - Pythonを利用したAWSプログラミング勉強会 (第1回) EC2超基礎編
本勉強会の目的
参加者が、AWS上のリソースをAWS Management Console経由ではなく、Pythonプログラムから自由自在に操作できるようになること。
「AWSをプログラムで操作する」という視点を持ち新たなビジネス、サービスを発想する機会としたい。
今のAWSビジネスが どういう状態になったら良いのか、 ゴールを考える「ただ導入するだけ」から「効率よく導入する」への転換をしたい。
「ただ使ってもらうだけ」から「効果的に使ってもらう」への転換をしたい。
つまり、開発側もお客様も同時に効率良くなるように転換をしたい。
ゴールに辿り着くまでの アプローチ(1) これまでのノウハウを汎用化して、 人力で助けるコンサルティングサービス のように提供する EX) なんとか支援サービス
(2) AWS標準でやれることで、面倒と感じる ものを自動化してサービスとして 提供して使ってもらう EX) 自動災害復旧サービス
gihyo.jp, 雲を駆け抜けろ 第7回 MSPから見たクラウドの実態, 2012/02/18 http://www.atmarkit.co.jp/ait/articles/1502/05/news011.html
なぜPythonなのかBash: Linuxのみ。
PowerShell: Windowsのみ。
Java: 重い。(t2.microで並列で動かしたら時が止まった)
JavaScript: Webのプラットフォームでしか動かない。
Python: Win/Linux両方いける。 ダブルメンテ不要。簡単にJSON使える。 軽い。
Pythonには2系と3系があります。今は2系の方が安定していますが、そのうち3系に 置き換わると言われています。(完全に置き換わるのはいつか分かりませんが・・・)
ということで、3系でプログラミングできるようにしましょう。
まずPython3をインストールしましょう。Windows: 以下リンク先でインストーラを入手。インストール完了後、環境変数を通す。https://www.python.org/
Linux: 以下リンク先の通りにインストール。 http://kazsoga.com/amazon-linux-python3-install/
次にPython用AWS SDKをインストールしましょう。
http://aws.amazon.com/jp/sdk-for-python/
AWSへの認証を通しましょう。EC2上の開発でIAM Roleが割当たっている場合、以下のメソッドでOKです。
ローカルの開発では、Access KeyとSecret Keyがないと認証できません。
connect_to_region()メソッド
ローカルではSecret Keyと Access Keyが必要です。メソッドの引数に渡します。
IAM Userごとに固有IAM Userごとに固有
引数にAccess KeyとSecret Keyを渡します。 (※ HTTPSで通信します)
↑ 認証に成功しました。
AMIからEC2を起動してみましょう。run_instances()メソッドを使えば1行です。
ec2_run_instance = conn.run_instances( image_id="ami-cbf90ecb", instance_type="t2.micro", monitoring_enabled=False, subnet_id="subnet-60389f17", tenancy=None, ebs_optimized=False)
AMIのIDや、インスタンスタイプ どこのサブネットに立てる?
など指定します。 詳細はAPI Docsを見てください。
みんな違う
他のEC2系のコマンドを知りたい場合は以下を参照
http://boto.readthedocs.org/en/latest/ec2_tut.html
次回の勉強会は?第2回 PythonでEC2を操作しよう (基礎編)
EC2系コマンドをひと通り使えるようにする。
コマンドを組み合わせて使えるようにする。コマンドの組み合わせを、関数として定義し、使いまわしできるようにする。
運用・管理の効率化を、EC2系コマンドだけの範囲で考えてみる。
レベル1 レベル2 レベル3
EC2を 起動/停止/終了
Management Consoleから 手動で実行する
API実行サーバから スケジュールで
実行する??
EBSを 作成/削除
Management Consoleから 手動で実行する
?? ??
EC2の ステータスチェック
Management Consoleから 手動で実行する
API実行サーバから スケジュールで
実行する??
EBSの Snapshot取得
Management Consoleから 手動で実行する
API実行サーバから スケジュールで
実行する??
How to