ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

thumbnail

Labels:  AWS 投稿者:kei

AWSのEC2 API Toolsをインストールなしで利用する方法

こんにちは、ランサーズ インフラ担当のkeiです。
本日は、EC2 API Toolsをインストール作業をすることなく利用する方法をご紹介します。
ランサーズでは、試験環境から本番環境までAWS上でサーバ運用をしており、
先日、Amazon様の事例紹介ページに掲載して頂きました。

EC2 API Toolsとは

EC2 API Toolsは、EC2をAPI経由で操作するためのコマンドラインツールです。
最近は、Management Consoleからほとんどの操作が可能ですが、EC2 API Toolsを用いないとできない操作も存在します。
また、シェル等と組み合わせることで、より柔軟なサーバ運用が可能となります。

インストールなしで利用する方法

EC2 API Toolsは、AWS公式ページからダウンロードしてインストールが可能ですが、
Amazon Linuxには最初からインストールされています。
ちょっとした用途で使いたい場合、Amazon Linux AMIからインスタンスを作成し、設定をすることで利用可能です。以下に手順を示します。

Amazon Linuxインスタンスを作成する

EC2のManagement Consolにアクセスし、Launch Instanceを選択後、
AMI選択画面で、Amazon Linux AMIを選択します。

ゾーンやプライベートIP、セキュリティグループ等を設定後、鍵生成画面において「Create a new Key Pair」を選択します。

以上でインスタンスの作成は完了です。
VPS内にインスタンスを作成した場合、ローカル環境からアクセスするために、EIPを付与しておきます。

X.509 証明書の取得

AWSのサイト(要ログイン)より、API Toolsの実行に必要な証明書を取得します。
ページ中腹にあるX.509 証明書タブ内の「新しい証明書を作成する」リンクをクリックし、秘密鍵と証明書の両方をダウンロードします。
以下のようなファイルです。

  • cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
  • pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem

Amazon LinuxにSSHでログインする

  1. sshターミナルを開く
  2. インスタンス作成時にダウンロードした鍵の権限を変更する
  3. chmod 400 ec2key.pem
  4. sshで接続する
  5. ssh -i ec2key.pem ec2-user@PublicDNSName

    ※PublicDNSNameは、Management Consoleから確認可能
    ※VPS内に作成した場合は、PublicDNSNameをEIPに変更

  6. 秘密鍵、証明書をアップロードする

API Toolsの設定

  1. アップロードした秘密鍵、公開鍵をEC2_HOME配下にコピーする
  2. cp pk-xxxxxxxxxxxx.pem /opt/aws/apitools/ec2/
    cp cert-xxxxxxxxxxxx.pem /opt/aws/apitools/ec2/
  3. .bachrcに各種パスを追記
  4. vi ~/.bashrc
  5. 以下を追記
  6. export EC2_HOME=/opt/aws/apitools/ec2
    export PATH=$PATH:$EC2_HOME/bin
    export EC2_PRIVATE_KEY=$EC2_HOME/pk-xxxxxxxxxxxx.pem
    export EC2_CERT=$EC2_HOME/cert-xxxxxxxxxxxx.pem
    export EC2_URL=http://ec2.ap-northeast-1.amazonaws.com
    
  7. 反映
  8. source ~/.bashrc
  9. 動作確認(インスタンス概要を表示)
  10. ec2-describe-instances インスタンスID

.bashrcの最終行は、リージョンとして東京を設定しています。
指定しない場合は、コマンド実行時に–regionオプションでゾーンIDを指定します。

以上でEC2 API Toolsの利用が可能です。
コマンドリストはこちらのサイト等をご参考下さい。

★告知★
2013/1/21に、以下のイベントでお話させて頂くこととなりました。
AWS、MySQLの負荷対策 ~日本最大級クラウドソーシングサービス「ランサーズ」を支えるインフラ~
ランサーズでのAWS,MySQLの運用ノウハウについてお伝えできればと思います。
皆様のご参加をお待ちしております!

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。


【中途採用】
サービスリードエンジニア
テックリード(アーキテクト)
フロントエンドエンジニア
サーバーサイドエンジニア
業務エンジニア(社内システム基盤・基幹システム)

【インターン・学生バイト】
19新卒対象サマーインターン
エンジニアインターン

その他採用情報

関連記事

API GatewayとLambdaとGolangで作るサムネイル生成システム

SREチームの金澤です。 ランサーズのサムネイル生成をAPI Gateway + Lambdaのシステムにリニューアルしました。 今回、その内容について書きたいと思います。 以前のサムネイル生成処理 今までのサムネイル生成処理は、Appサーバー内でImageM …

thumbnail
RDS Aurora から Redshift のデータ同期事情

こんにちは、ランサーズのtomohiroです。最近はバス釣りにはまっています。大人になって始める趣味ののめり込み具合は半端ないですね。 ランサーズでは、数ヶ月前にリリースしたQuantにおいて、データ分析を行うために Redshift を使用しています。ただし …

AWS
AWS セキュリティ対策 〜 操作履歴を CloudTrail で残してみた

こんにちわ。こじまです。 ランサーズでは,AWS を利用してシステムを運用しています。 コンプライアンスの監査,トラブルシューティング,そして,セキュリティ分析を実施するために AWS の操作履歴を残すことは必須です。   今日は,AWS 操作履歴を …