AWS Command Line Interface
ユーザーガイド

AWS Command Line Interface を使用して Amazon EC2 で開発環境をデプロイする

このチュートリアルでは、AWS CLI を使用して Amazon EC2 で開発環境を設定する方法を詳しく説明します。これには、インストールおよび設定の手順のショートバージョンが含まれており、Windows、Linux, macOS, or Unix で起動から終了まで実行できます。

AWS CLI のインストール

AWS CLI のインストールには、インストーラ (Windows) または Python のパッケージマネージャである pip を使用できます。

Windows

  1. MSI インストーラをダウンロードします。

  2. ダウンロードした MSI インストーラを実行します。

  3. 表示される手順に従います。

Linux, macOS, or Unix

これらのステップには、Python 2 バージョン 2.6.5+ または Python 3 バージョン 3.3+ がインストールされ動作している必要があります。以下の手順を使用して問題が発生した場合は、AWS Command Line Interface ユーザーガイド の完全インストールの手順を参照してください。

  1. pip のウェブサイトからインストールスクリプトをダウンロードし実行します。

    $ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" $ python get-pip.py --user
  2. pip を使用して AWS CLI をインストールします

    $ pip install awscli --user

AWS CLI を設定する

コマンドラインで aws configure を実行して、認証情報と設定をセットアップします。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-2 Default output format [None]: json

AWS CLI が以下の情報のプロンプトを表示します。

  • AWS アクセスキー ID と AWS シークレットアクセスキー – アカウントの認証情報です。キーがない場合は、「セキュリティ認証情報の入手方法」(『アマゾン ウェブ サービス全般のリファレンス』)を参照してください。

  • デフォルトのリージョン名 – デフォルトで呼び出しを実行する対象のリージョンの名前です。

  • デフォルトの出力形式 – 形式は json、text、table のいずれかです。出力形式を指定しない場合、json が使用されます。

コマンドを実行して、認証情報が正しく設定されていること、および AWS に接続できることを確認します。

$ aws ec2 describe-regions --output table ---------------------------------------------------------- | DescribeRegions | +--------------------------------------------------------+ || Regions || |+-----------------------------------+------------------+| || Endpoint | RegionName || |+-----------------------------------+------------------+| || ec2.ap-south-1.amazonaws.com | ap-south-1 || || ec2.eu-west-3.amazonaws.com | eu-west-3 || || ec2.eu-west-2.amazonaws.com | eu-west-2 || || ec2.eu-west-1.amazonaws.com | eu-west-1 || || ec2.ap-northeast-3.amazonaws.com | ap-northeast-3 || || ec2.ap-northeast-2.amazonaws.com | ap-northeast-2 || || ec2.ap-northeast-1.amazonaws.com | ap-northeast-1 || || ec2.sa-east-1.amazonaws.com | sa-east-1 || || ec2.ca-central-1.amazonaws.com | ca-central-1 || || ec2.ap-southeast-1.amazonaws.com | ap-southeast-1 || || ec2.ap-southeast-2.amazonaws.com | ap-southeast-2 || || ec2.eu-central-1.amazonaws.com | eu-central-1 || || ec2.us-east-1.amazonaws.com | us-east-1 || || ec2.us-east-2.amazonaws.com | us-east-2 || || ec2.us-west-1.amazonaws.com | us-west-1 || || ec2.us-west-2.amazonaws.com | us-west-2 || |+-----------------------------------+------------------+|

EC2 インスタンスのセキュリティグループおよびキーペアを作成する

次のステップは、SSH を使用してアクセスできる EC2 インスタンスを起動するための前提条件をセットアップすることです。Amazon EC2 の機能の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド を参照してください。

セキュリティグループ、キーペア、ロールを作成するには

  1. 最初に、新しいセキュリティグループを作成し、SSH でポート 22 を通過する着信トラフィックを許可するルールを追加します。リージョンのデフォルトの VPC を使用している場合は、--vpc-id パラメータを省略できます。その他の場合は、インスタンスを起動する VPC の ID を指定します。セキュリティを強化するため、0.0.0.0/0CIDR 範囲を、インスタンスに接続するネットワークの範囲に置き換えてください。

    $ aws ec2 create-security-group --group-name devenv-sg --vpc-id vpc-xxxxxxxx --description "security group for development environment" { "GroupId": "sg-b018ced5" } $ aws ec2 authorize-security-group-ingress --group-name devenv-sg --protocol tcp --port 22 --cidr 0.0.0.0/0

    セキュリティグループ ID を書き留めます。これは後でインスタンスを起動するときに使用します。

  2. 次に、キーペアを作成し、インスタンスに接続できるようにします。このコマンドでは、キーの内容が devenv-key.pem という名前のファイルに保存されます。

    $ aws ec2 create-key-pair --key-name devenv-key --query 'KeyMaterial' --output text > devenv-key.pem

    Windows

    Windows コマンドプロンプトでは、一重引用符の代わりに二重引用符を使用します。

  3. Linux では、ファイルモードを変更して、自分以外がキーファイルにアクセスできないようにする必要があります。

    $ chmod 400 devenv-key.pem

インスタンスを起動し接続する

これで、インスタンスを起動しそこに接続する準備ができました。

インスタンスを起動し接続するには

  1. 次のコマンドを、前のステップで作成したセキュリティグループの ID を使用して実行します。--image-id パラメータは、Amazon EC2 がインスタンスをブートストラップするために使用する Amazon Machine Image (AMI) を指定します。リージョンおよびオペレーティングシステムのイメージ ID は、Amazon EC2 コンソールを使用して確認できます。デフォルト VPC のデフォルトのサブネットを使用している場合は、--subnet-id パラメータを省略できます。その他の場合は、インスタンスを起動するサブネットの ID を指定します。

    $ aws ec2 run-instances --image-id ami-xxxxxxxx --subnet-id subnet-xxxxxxxx --security-group-ids sg-b018ced5 --count 1 --instance-type t2.micro --key-name devenv-key --query 'Instances[0].InstanceId' "i-0787e4282810ef9cf"
  2. インスタンスの起動にはしばらくかかることがあります。インスタンスの稼働後、接続にはインスタンスのパブリック IP アドレスが必要になります。パブリック IP アドレスを取得するには、次のコマンドを使用します。

    $ aws ec2 describe-instances --instance-ids i-0787e4282810ef9cf --query 'Reservations[0].Instances[0].PublicIpAddress' "54.183.22.255"
  3. インスタンスに接続するには、パブリック IP アドレスとプライベートキーを任意のターミナルプログラムで使用します。Linux, macOS, or Unix では、コマンドラインから次のコマンドを使用して実行できます。

    $ ssh -i devenv-key.pem user@54.183.22.255

    インスタンスへの接続で、「Permission denied(publickey)」などのエラーが発生した場合は、以下が正しいことを確認します。

    • キー – 指定されたキーが指定されたパスにあり、プライベートキーである (パブリックキーではない)。キーのアクセス権限が所有者のみに制限されている。

    • ユーザー – ユーザー名がインスタンスの起動に使用された AMI に関連付けられているデフォルトのユーザー名と一致している。Ubuntu AMI の場合は ubuntu です。Amazon Linux AMI の場合は ec2-user です。

    • [Instance] – インスタンスのパブリック IP アドレスまたは DNS 名。アドレスがパブリックであること、およびポート 22 がインスタンスのセキュリティグループのローカルマシンに対して開かれていることを確認してください。

    -v オプションを使用してエラーに関連する追加情報を表示することもできます。

    Windows の SSH

    Windows では、ここで入手できる PuTTY ターミナルアプリケーションを使用できます。ダウンロードページから putty.exe および puttygen.exe を入手します。

    puttygen.exe を使用して、プライベートキーを PuTTY で必要な .ppk ファイルに変換します。putty.exe を起動し、インスタンスのパブリック IP アドレスを [Host Name] フィールドに入力して、接続タイプを SSH に設定します。

    [Category] パネルで、[Connection]、[SSH]、[Auth] の順に移動し、[Browse] をクリックして .ppk ファイルを選択してから、[Open] をクリックして接続します。

  4. ターミナルにサーバーのパブリックキーを受け入れるプロンプトが表示されます。「yes」と入力して [Enter] をクリックし、接続を完了します。

これで、セキュリティグループの構成、キーペアの作成、EC2 インスタンスの起動、およびインスタンスへの接続が、コマンドラインを離れることなく完了しました。