pythonを利用したawsプログラミング勉強会 (第1回) ec2超基礎編
Post on 19-Jul-2015
171 Views
Preview:
TRANSCRIPT
本勉強会の目的
参加者が、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
top related