Linux(Fedora)にAWSのEC2-API-TOOLSをインストールする
AWSをコマンドラインで操作するための ec2-api-tools のお話。Linux の cron などでインスタンスを自動起動したり、動作状況を確認したり、AWSをコマンドラインで処理することも多々あると思います。
というか実際に自分がそういう状況に陥っただけですけれど。今回はそんな環境を構築してみます。
photo credit: Hiroyuki Nakano
ec2-api-tools を使うにはJavaのインストールが不可欠です。まずはJavaをインストールします。
Javaのインストール
http://java.com/ja/download/manual.jspからJava のLinux RPM(自己解凍形式)をダウンロードします。この時Internet Explorerを使用していると、バイナリファイルをそのまま開くだけになってしまいますので、右クリック>対象をファイルに保存をしてください。ダウンロードしたファイルを、ec2-api-toolsをインストールするサーバにアップします。
その後は、このバイナリファイルを実行すれば、インストールが自動的に始まります。
1 2 3 4 5 6 7 8 | [root@hogehoge ~]# chmod +x jdk-6u27-linux-i586-rpm.bin [root@hogehoge ~]# ./jdk-6u27-linux-i586-rpm.bin ...インストール開始... [root@hogehoge ~]# ls /usr bin etc games include java kerberos ... <- java ができている [root@hogehoge ~]# rm jre-6u27-linux-i586-rpm.bin [root@hogehoge ~]# rm jre-6u27-linux-i586-rpm [root@hogehoge ~]# rm sub-javadb-* |
これでJavaのインストールが完了です。
ec2-api-toolsを設置する
http://aws.amazon.com/developertools/351?_encoding=UTF8&jiveRedirect=1からツールをダウンロードし解凍します。ちなみにダウンロードしたものは Windows でも使えますので、Javaインストールを含むこの記事全体の内容を Windows でも同様に行うと、Windowsからでもec2-api-toolsを使うことができます。
さて、解凍したデータを/usr/local内に設置し、パスを /usr/local/ec2-api-tools となるようにディレクトリをリネームしておきます。
次にAWSで使用しているキー(pk-xxxx.pem と cert-xxxx.pem)を今作ったec2-api-toolsの中に入れておきます。
最後にLinuxの環境変数を変更すれば完了です。今回は root でもなんでもどのユーザでもec2-api-toolsを使えるようにするため/etc/profileを編集します。ユーザを限定する場合は、そのユーザでの~/.bash_profileを編集すればいいでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 | [root@hogehoge ~]# vi /etc/profile ...最終行に追加する... # for amazon web service export EC2_HOME=/usr/local/ec2-api-tools export EC2_PRIVATE_KEY=$EC2_HOME/cert/pk-xxxxxx.pem <- キーの位置 export EC2_CERT=$EC2_HOME/cert/cert-xxxxxx.pem export EC2_JVM_ARGS="-Dhttp.proxyHost=proxy.hogehoge.co.jp -Dhttp.proxyPort=9999 \ -Dhttps.proxyHost=proxy.hogehoge.co.jp -Dhttps.proxyPort=9999" <- プロキシ設定がある場合 export EC2_URL=https://ap-northeast-1.ec2.amazonaws.com <- 東京リージョンを使う設定 [root@hogehoge ~]# source /etc/profile <- 設定を反映 |
これで設定が完了です。動作を確認してみましょう。
1 2 3 4 | [root@hogehoge ~]# ec2-describe-instances i-xxxxxx RESERVATION r-xxxxxxxx xxxxxxxxx default INSTANCE i-xxxxxxxx ami-12345678 pending ... |
と、結果が得られればOKです。