VPCの作成とインターネットからアクセスできるEC2インスタンスの構築

VPCを作成してその中にEC2インスタンスを起動し、そのインスタンスにインターネット経由でアクセスできる環境を構築します。
ゴールは自分のPCからEC2インスタンスにSSHできること。

ネットワーク図

必要な作業は以下です。

  • パブリックサブネットを持つVPCを作成する
  • EC2インスタンスをサブネット内に起動する
  • Elastic IPアドレスをインスタンスに関連付ける

パブリックサブネットとは、インターネットゲートウェイへのルートが含まれているルートテーブルに関連づけられているサブネットです。
そのサブネット内にEC2インスタンスを起動し、最後にインターネットからアクセスできるようにするためにパブリックIPアドレスをElastic IPアドレスで割り当てる流れです。

1. パブリックサブネットを持つVPCを作成する

VPCのダッシュボードから「VPCウィザードを起動」をからVPCを作成します。
VPCウィザードを起動すると、左メニューに作成するVPCの設定が表示されているので、「1 個のパブリックサブネットを持つ VPC」を選択します。

  • 任意のVPC名を入力
  • 任意のアベイラビリティーゾーンを選択
  • 任意のサブネット名を入力

他はデフォルトの設定のまま「VPCの作成」をクリックするとVPCとサブネットが作成されます。

また、合わせて以下も自動で行われます。

  • インターネットゲートウェイをVPCにアタッチする
  • ルートテーブルを作成する

作成されたインターネットゲートウェイ、ルートテーブルの設定はVPCダッシュボードの左メニューから確認できます。

インターネットゲートウェイは左メニューの「インターネットゲートウェイ」から設定が表示できて、
VPC IDのカラムに先ほど作成したVPCのIDと名前が確認できます。

ルートテーブルも同様に左メニューの「ルートテーブル」から確認できます。
明示的なサブネットの関連付けで先ほど作成したサブネットのIDと名前が、VPCのカラムにVPCのIDと名前が表示されます。
ルートテーブルのルート情報を表示すると、インターネットゲートウェイにルーティングされていることがわかります。

ルートテーブルのルート情報

ここまでの作業で構成は以下の状態になっています。

ネットワーク図(VPC)

2. EC2インスタンスを起動する

VPC内にEC2インスタンスを起動します。

EC2のダッシュボードの「インスタンスを起動」からインスタンスを作成、起動を行います。

  1. AMIの選択
    • 今回はAmazon Linux 2 AMIを選択
  2. インスタンスタイプの選択
    • 今回はt2.microを選択
  3. インスタンスの設定
    • ネットワークは作成したVPCを選択(サブネットも自動で作成したサブネットが選択される)
    • 他はデフォルト設定のまま
  4. ストレージの追加
    • デフォルト設定のまま
  5. タグの追加
    • 追加なし
  6. セキュリティグループの設定
    • 「新しいセキュリティグループを作成する」を選択し、セキュリティグループ名と説明を変更する
    • SSHのルールのソースをマイIPに変更する

ここまでの作業で構成は以下の状態に変わりました。

ネットワーク図(VPCとEC2)

3. Elastic IPアドレスをEC2インスタンスに関連付ける

EC2のダッシュボードの左メニューから「Elastic IP」から設定を行います。

  1. 「Elastic IP アドレスの割り当て」からElastic IPアドレスの割り当てを行います。
  2. リストからElasitc IPアドレスを選択し、アクションの「Elastic IPアドレスの関連付け」から作成したEC2インスタンスにElasitc IPアドレスを関連付けます。

ネットワーク図

これでインターネットからEC2インスタンスにアクセスできるようになりました。
Elastic IPアドレスのパブリック DNS ホストでSSHできることが確認できます。

 ssh -i [キーペアのパス] ec2-user@[パブリックDNSホスト名]