みなさん、こんにちは
テクニカルチームの宮澤です。
テクニカルチームの宮澤です。
今回は、Windowsに"EC2 API Tools"を導入して、API を利用してインスタンスを立ち上げたいと思います。
Amazon EC2 API Toolsとは?
Amazon Web ServicesのAmazon EC2をAPIで操作するためのコマンドラインツールです。
私達がよく使っているManagement Consoleは、裏でAPIを実行して動作をしています。
私達がよく使っているManagement Consoleは、裏でAPIを実行して動作をしています。
1.準備
Amazon EC2 API Tools(以下API Tools)をインストールする為に、必要な以下のものを用意します。
- AWSアカウントID
- アクセスキーID
- シークレットアクセスキー
- X509証明書
- 秘密鍵ファイル
Management Consoleを利用している場合、右上のプルダウンメニューから、"Security Credential"を選択することで、
必要な情報が取得できます。
必要な情報が取得できます。
2.インストール
Ⅰ.ダウンロード
API ToolsをAWSの公式ページからダウンロードします。
また、API ToolsはJavaにより動作しているためJavaをインストールする必要があります。
こちらのリンクをたどると以下のサイトに移動しますので、そこからJavaをインストールしてください。
こちらのリンクをたどると以下のサイトに移動しますので、そこからJavaをインストールしてください。
Ⅱ.インストール
- ダウンロードしたAPI Toolsを"C:"に展開します。
- 展開したフォルダにアクセスキーとシークレットアクセスキーを配置しておきます。
- 環境変数の設定
ファイルを展開しただけではWindowsのコマンドプロンプトではコマンドを利用することができません。
そのため、以下のように環境変数を設定してコマンドを実行できるようにします。
そのため、以下のように環境変数を設定してコマンドを実行できるようにします。
Javaのインストールされているフォルダを指定 ※環境によって異なる場合があります。 C:>set JAVA_HOME=C:"Program Files (x86)Javajre7"
API Toolsのフォルダを指定 C:>set EC2_HOME=C:ec2-api-tools
API Toolsのコマンドが格納されているフォルダを指定 C:>set PATH=%PATH%;ec2-api-toolsbin
使用するリージョンを指定 C:>set EC2_URL=https://ec2.ap-northeast-1.amazonaws.com
利用するアカウントのアクセスキーとシークレットアクセスキーを指定 C:ec2-api-tools>set EC2_PRIVATE_KEY=%EC2_HOME%pk.pem C:ec2-api-tools>set EC2_CERT=%EC2_HOME%cert.pem
- バッチファイルの作成
環境変数をコマンドプロンプトで実行した場合、閉じてしまうと再度環境変数を設定しなければなりません。
その手間を省くために、環境変数設定のバッチファイルを作成します。
複数のAWSアカウント、リージョンを使っている場合は、個別に用意しておくと非常に便利です。
ファイル名は".bat"形式で作成します。
その手間を省くために、環境変数設定のバッチファイルを作成します。
複数のAWSアカウント、リージョンを使っている場合は、個別に用意しておくと非常に便利です。
ファイル名は".bat"形式で作成します。
※リージョンは使用したいリージョンを記述してください。
※作成したバッチファイルはコマンドプロンプトのホームディレクトリに配置してください。
※作成したバッチファイルはコマンドプロンプトのホームディレクトリに配置してください。
3.API Toolsの実行
- バッチファイルの実行
コマンドプロンプトから、先ほど作成したバッチファイルを実行します。
バッチファイルを実行することで、環境変数が設定されます。
バッチファイルを実行することで、環境変数が設定されます。
- 動作確認
”ec2ver”とコマンドを実行し、バージョンが表示されればAPI Toolsが動いていると確認できます。
4.インスタンスの起動
ここからは実際にインスタンスを起動して使えるようにしたいと思います。
Ⅰ.キーペアの作成
- キーペアの一覧を表示
C:Userskei_miyazawa>ec2-describe-keypairs
- キーペアの作成
C:Userskei_miyazawa>ec2-add-keypair demo_key | find /V "KEYPAIR" > %EC2_HOME%demo_key.pem※ローカルに保存したキーはインスタンスにログインする際に利用しますので大切に保管してください。 Ⅱ.セキュリティーグループの作成
- セキュリティーグループの一覧を表示
ec2-describe-group
- セキュリティーグループの作成
ec2-add-group demo_sg
- セキュリティーグループの設定
セキュリティーグループで接続を許可するポートを指定します。
今回はICMPとHTTP、RDPを許可します。
今回はICMPとHTTP、RDPを許可します。
ec2-authorize demo_sg -P icmp -t -1:-1 -s 0.0.0.0/0 ec2-authorize demo_sg -P tcp -p 80 ec2-authorize demo_sg -P tcp -p 3389 -s 202.215.74.59/32
Ⅲ.インスタンスの起動
- 起動に利用するAMIを探す
ec2-describe-images
これではAMIが大量に表示され、見つけることが難しいので、以下のようにオプションやパイプコマンドで"find"を使い条件を絞って表示させることできます。
例1:Amazonの提供しているイメージからFedora8の32bitのイメージを探す。
ec2-describe-images --owner amazon | find "fedora-8-i386"例2:自分のアカウントで作成したAMIを探すときは以下のようにします。
ec2-describe-images --owner アカウントナンバー | find "キーワード"
- AMIからインスタンスを起動
先程探したWindowsAMI(ami-2ae95f2b)を利用して、インスタンスを起動したいと思います。
インスタンスを起動するために以下のコマンドを実行します。
インスタンスを起動するために以下のコマンドを実行します。
ec2-run-instances ami-2ae95f2b
このようにオプション無しで起動すると、デフォルトのセキュリティーグループ、キーペアなし、smallインスタンスで起動してしまいます。
以下のように詳細を指定して起動することもできます。
以下のように詳細を指定して起動することもできます。
ec2-run-instances AMI名 -g セキュリティーグループ -k キーペア -n 個数 -t インスタンスタイプ
Ⅳ.Elastic IPの割り当て
- ElasticIPの一覧を表示
ec2-describe-addresses
- Elastic IPの割り当て
ec2-associate-address -i インスタンスID Elastic IP
- Elastic IPの取り外し
ec2-disassosiate-address Elastic IPⅤ.インスタンスの停止、削除
- インスタンスを停止する
ec2-stop-instances インスタンスID
- インスタンスを削除する
ec2-terminale-instances インスタンスID
5.まとめ
実際にインストールを行い、利用してみると、Linuxと同様に動作をしました。しかし、Tabの補完機能などが使えないところが残念な所です。
Windowsを使っていると、ついManagement Consoleを使ってしまいがちですが、ELB(Elastic Load Balancing)のSSL証明書の更新はELBのAPI Toolsを使わないと作業ができません。
このように、API Toolsを使う場面は必ず現れるので、入れておくに越したことはないと思います。
Amazonのクラウドを利用しているなら、この機会に”Windows”にAPI Toolsをインストールしてみてはいかがでしょうか。 ご参考までに、関連するコマンドをまとめた表を作成致しました。
内容 | コマンド |
---|---|
リージョン一覧 | ec2-describe-regions |
キーペア一覧 | ec2-describe-keypairs |
キーペア作成 | ec2-add-keypair KeyPair名 |
キーペア削除 | ec2-delete-keypair KeyPair名 |
セキュリティーグループ一覧 | ec2-describe-group |
セキュリティーグループ作成 | ec2-add-group セキュリティーグループ名 |
セキュリティーグループ削除 | ec2-delete-group セキュリティーグループ名 |
AMIの一覧 | ec2-describe-images |
インスタンスの一覧 | ec2-describe-instances |
インスタンスの起動 | ec2-run-instances AMI名 |
インスタンスStart | ec2-start-instances インスタンスID |
インスタンスStop | ec2-stop-instances インスタンスID |
インスタンスTerminate | ec2-terminate-instances インスタンスID |
Elastic IP一覧 | ec2-describe-addresses |
Elastic IP取り付け | ec2-associate-address -i インスタンスID Elastic IP |
Elastic IP取り外し | ec2-disassosiate-address Elastic IP |