Amazon EC2 API ToolsをインストールしてEC2インスタンスを起動する(&ログインするまで)

投稿者: | 2014/04/02

Amazon Web Services

仕事でAmazon WebServices(AWS)をよく使っています。AWSで仮想サーバ(EC2インスタンス)を立ち上げたり、スナップショット(バックアップ)を作成して復元などが簡単にできるためサーバ構築などに大変便利ですね。
AWSのコンポーネント(EC2, RDS, ELBなど)を操作するのにGUI(Management Console)で操作するのですが、APIも提供されており、シェルスクリプト(コマンド)やPHP, Rubyなどのプログラムからも操作することができます。
今回はBashなどのシェル(コマンド)からEC2インスタンスを操作できるツールをインストールし、EC2インスタンスを起動してみます。

今回の目標

  • Amazon EC2 API Tools をインストールする
  • コマンドからEC2インスタンスを起動できるようにする
  • EC2インスタンスにSSHログインできるようにする

サーバ環境

  • CentOS 6.4

必要なパッケージのインストール

ファイルのダウンロード

ファイルの設置

どこに置いてもいいのですが、/awsというディレクトリを作成してそこに先ほどのツール郡を置きます。

パスの設定

コマンドが使えるようにパスを通します。

環境変数の設定

コマンドを実行するのに必要な環境変数を設定します。

AWS_ACCESS_KEY はAWSのAPIを利用するのに必要なアクセスキー、AWS_SECRET_KEY はシークレットキーです。
これらのキーはAWSのManagementConsoleから発行してください1

.bashrcを読みこめば完了です。

動作確認

EC2インスタンスが使えるリージョン(地域)を一覧表示させるコマンド(ec2-describe-regions)を実行します。

正しく設定されていれば、リージョンの一覧が表示されるはずです。

コマンドからEC2インスタンスを起動する

EC2インスタンスを設定し起動するには、ec2-run-instancesコマンドを使います。

AMIの選択

ec2-run-instancesコマンドを使うには、AMIから起動する必要があるため、どのAMIから起動するかを決めます。
すでにAMIを作成していて、そのAMIから起動したい場合は、そのAMI ID(ami-xxxxxxxx)を選択してください。
今回はAMIが無いので、Community AMIs を含めたAMIから探します。例としてamzn-ami-pv-2014.03.0.x86_64-ebs というAMIから起動することにします。AMI IDは、ami-a1bec3a0 です。

SecurityGroupの作成

SecurityGroupというファイアウォール(iptablesみたいなもの)を作成します。
今回はquick-startという簡単なSecurityGroupを作成しました。SSH(22番)ポートのみを許可しています。

quick-start

Key Pairの作成

EC2インスタンスは公開鍵認証なので、Key Pairとよばれる秘密鍵を作成します。
今回はjicomanという名前で作成しました((作成する際にダウンロードしたpemファイルは紛失しないようにしてください))。

EC2インスタンスの起動

ようやくEC2インスタンスを起動します。

正しく実行されると、EC2インスタンスが起動します。
インスタンスID(i-b34a53b5)は後ほど、停止や削除に使います。

下記、オプションの解説です。

オプション 説明
–instance-count 起動するEC2インスタンスの数
–group EC2インスタンスを所属させるSecurityGroup名
–key EC2インスタンスにSSHログインするためのKeyPair名
–instance-type 起動するEC2インスタンスのインスタンスタイプ
–instance-initiated-shutdown-behavior EC2インスタンスを停止できるようにするかどうか
–availability-zone 起動するEC2インスタンスに所属させるアベイラビリティゾーン(AZ)
–region 起動するEC2インスタンスに所属させるリージョン

EC2インスタンスが起動されると、ManagementConsoleで以下のように表示されます。

EC2インスタンス起動

SSHログインする

起動したEC2インスタンスにログインしてみます。
デフォルトのユーザはec2-userです。

秘密鍵(.pem)のファイルパーミッションを変更

Key Pairを作成した時にダウンロードした秘密鍵(例としてjicoman.pem)のファイルパーミッションを変更します。
変更せず644(-rw-r–r–)などにするとSSH接続時に以下のようなエラーが表示されます。

SSHコマンドを実行します。

接続するEC2インスタンスのホスト名(Public DNS)は起動する度に変更されますので随時確認してください。

EC2インスタンスを停止(stop)する

AWSは従量課金なので起動時間が長いほど請求金額が高くなりますので使い終わったら停止(stop)または削除(terminate)してください。
コマンドでEC2インスタンスを停止してみます。EC2インスタンスからログアウト(exit)して下記のコマンドを実行します。

ec2-stop-instancesコマンドを使うときに、先ほどのEC2インスタンスのインスタンスIDを指定します。

EC2インスタンスを削除(terminate)する

EC2インスタンスをstopさせれば課金されることはありませんが、使い終わったら削除(terminate)しておいた方が(精神的に)安全でしょう。

EC2インスタンスをTerminteするには、ec2-terminate-instances コマンドを実行します。

最後に

コマンドからEC2インスタンスを操作できるようになりました。
EC2インスタンスの他にもELBやRDSなどのツールも提供されており、設定すれば同じように操作することができます。
次回は先ほど設定したアクセスキーとシークレットキーの取得方法を取り上げたいと思います。

参考URL

  1. 次回、記事を書く予定です []

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*