Amazon EC2

2020年12月26日

はじめに

AWS の仮想マシンサービスである Amazon EC2 を使って仮想マシンを起動してみる。

キーペアの作成

仮想マシンに SSH で接続するために、キーペアを作成する。

  1. AWS で EC2 のサービスを開く。
  2. 左のメニューで [キーペア]。
  3. [キーペアを作成]。
  4. 名前を入力。(適当に "key_pair" とでもしておく)
  5. キーペアのタイプは "RSA" とする。
  6. プライベートキーファイル形式は ".pem" とする。
  7. ファイルをダウンロードしようとするので、保存する。

セキュリティグループの設定

仮想マシンに SSH で接続するために、セキュリティグループの設定をする。

  1. AWS で EC2 のサービスを開く。
  2. 左のメニューで [セキュリティグループ]。
  3. 既存のセキュリティグループを選ぶか、新規に作成する。
  4. [インバウンドルール] タブで [インバウンドのルールを編集]。
  5. [ルールを追加]。
  6. [タイプ] で "SSH" を選択。
  7. [ソース] で IP を設定。手元のマシンの IP を設定するなら、"マイ IP" を設定すればよい。
  8. [ルールを保存]。

インスタンスの作成と起動

仮想マシン (インスタンス) を作成して起動する。

  1. AWS で EC2 のサービスを開く。
  2. [EC2 ダッシュボード] の [インスタンスを起動]。
  3. "Amazon マシンイメージ (AMI)" を選ぶ。(ここでは "Amazon Linux 2" を選ぶ)
  4. "インスタンスタイプの選択" でインスタンスタイプを選択する。(ここでは "t2.micro" にしておく)
  5. [確認と作成]。
  6. "インスタンス作成の確認"。[セキュリティグループの編集] の "既存のセキュリティグループを選択する" で上で設定したセキュリティグループを選択する。[確認と作成]。
  7. [起動]。
  8. "キーペアの選択" で、上で作成したキーペアを選択する。チェックボックスにチェックして [インスタンスの作成]。
  9. [インスタンスの表示]。
  10. インスタンスの "ステータスチェック" が "チェックに合格しました" となるまで待つ。

接続

仮想マシン (インスタンス) に SSH で接続する。Amazon Linux 2 の場合、ユーザー名は "ec2-user" である。

EC2 Instance Connect による接続

EC2 Instance Connect を使えば、ブラウザ上で仮想マシン (インスタンス) に接続できる。先に、SSH のポートを開けておく必要がある。AWS IP アドレスの範囲 から IP アドレスリスト (ip-ranges.json) を保存し、その中から EC2_INSTANCE_CONNECT と書かれたもので該当するリージョンのものを探す。セキュリティグループでそのアドレスに対して SSH を通すように設定する。

  1. EC2 の [インスタンス] でインスタンスを選択して [接続]。
  2. 「インスタンスに接続」の「EC2 Instance Connect」で [接続]。

外部から接続

Linux から SSH コマンドを使って、以下のように接続する。

$ ssh -i key_pair.pem ec2-user@<パブリック DNS アドレス>

"-i" でキーペアのファイル指定する。「パブリック DNS アドレス」はインスタンスの画面の情報から得られる。

※Windows からでも接続できるはずだが、自分の環境ではうまくいかなかった。

CloudShell から接続

ブラウザの AWS 画面から使える CloudShell から接続することもできる。これも中身は仮想マシンなので、ポートを通す必要がある。

まず、CloudShell 上で IP アドレスを調べる。

$ curl https://ifconfig.io

これをもとに、セキュリティグループで SSH を通すように設定を行う。

CloudShell の [Actions] の [Upload file] で .pem ファイルをアップロードする。もし何かしらの理由でできない場合は、AWS CLI で S3 経由でファイルをもってくる。

キーペアファイルの権限の設定。

$ chmod 400 key_pair.pem

あとは、ふつうに Linux からつなぐように SSH 接続すればよい。

$ ssh -i key_pair.pem ec2-user@<パブリック DNS アドレス>

インスタンスの削除

仮想マシン (インスタンス) を削除するには、[インスタンス] のリストからインスタンスを選択し、[インスタンスの状態] から [インスタンスの終了] を選ぶ。これはインスタンスの削除にあたるので、もとには戻せない。