dshimizu/blog

アルファ版

AWS CLIを使ってAmazon EC2インスタンスを起動する

はじめに

最近AWSを使う機会があり、よく触っています。
AWSは充実した管理画面があるので、WebブラウザからのGUIベースで簡単に環境を管理できます。ただ、Webブラウザ経由のGUIベースでAWS環境を管理するのもなかなか手間です。Infrastructure as Codeなんてのも流行ってきてますし、AWSの環境もコードで管理できるようにしたいです。

ということで、AWSにもAWSコマンドラインで操作するためのツールであるAWS CLI(Command Line Interface)がありますので、CentOS 7.0にこれをインストールしてみました。

AWS CLIAWSCUIで使いこなすために、まずはインストール手順を記載します。

AWS CLI実行環境構築

公式手順を元にインストールを行います。LinuxではAWS-CLIのインストールのためにPython(バージョン2.6.3以上)が必要ですので、事前にインストールしておく必要があります。

AWS CLIインストーラ取得

AWS CLI Bundled Installerを取得します。取得したファイルはどこでも良いので適当なディレクトリに設置します。


$ wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

取得したファイルを展開します。


$ unzip awscli-bundle.zip
Archive: awscli-bundle.zip
inflating: awscli-bundle/install
inflating: awscli-bundle/packages/argparse-1.2.1.tar.gz
inflating: awscli-bundle/packages/virtualenv-1.10.1.tar.gz
inflating: awscli-bundle/packages/pyasn1-0.1.7.tar.gz
inflating: awscli-bundle/packages/rsa-3.1.2.tar.gz
inflating: awscli-bundle/packages/docutils-0.12.tar.gz
inflating: awscli-bundle/packages/six-1.8.0.tar.gz
inflating: awscli-bundle/packages/colorama-0.2.5.tar.gz
inflating: awscli-bundle/packages/bcdoc-0.12.2.tar.gz
inflating: awscli-bundle/packages/jmespath-0.5.0.tar.gz
inflating: awscli-bundle/packages/python-dateutil-2.3.tar.gz
inflating: awscli-bundle/packages/awscli-1.6.10.tar.gz
inflating: awscli-bundle/packages/ordereddict-1.1.tar.gz
inflating: awscli-bundle/packages/simplejson-3.3.0.tar.gz
inflating: awscli-bundle/packages/botocore-0.80.0.tar.gz
AWS CLIのインストール

AWS CLIのインストール先ディレクトリを作成します。


# mkdir /usr/local/aws

インストールを実行します。


# ./install -i /usr/local/aws -b /usr/local/bin/aws
Running cmd: /bin/python virtualenv.py --python /bin/python /usr/local/aws
Running cmd: /usr/local/aws/bin/pip install --no-index --find-links file:///home/dev/local/awscli-bundle/packages awscli-1.6.10.tar.gz
You can now run: /usr/local/bin/aws --version

/usr/local/binにコマンドがインストールされるのでPATHを通す必要があります。


export PATH=$PATH:/usr/local/bin
AWS CLIの初期設定

AWS CLIを実行するには、以下の4つの情報をAWS CLIを実行する端末側で設定する必要があります。

  • アクセスキー
  • シークレットアクセスキー
  • 接続先のAWSリージョン
  • 出力フォーマット

AWS CLIconfigureコマンドを使うことで、対話的に設定できます。


$ aws configure
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json

AWS Access Key IDAWS Secret Access Keyにはアクセスキーとシークレットアクセスキーを設定します。アクセスキーとシークレットアクセスキーはAWSマネジメントコンソールから作成できます。IAMユーザを作って運用するのが一般的と思います。

region nameには利用しているリージョンを指定します。

output formatには、jsontabletextの3種類を指定できます。

aws configureコマンドを実行が完了すると、~/.awsディレクトリが作成され、その中に設定ファイルconfigcredentialsが作成されます。
configにはregion nameoutput formatの情報が、credentialsにはAWS Access Key IDAWS Secret Access Keyの情報が記載されています。

AWS CLIの動作確認

AWSコマンドを実行してみて、動作することを確認します。
以下では EC2インスタンスの一覧を表示させています。

EC2インスタンスの一覧を表示させる

$ aws ec2 describe-instances