AWS の仮想サーバー EC2 に接続できないときの確認項目を解説します。
EC2 インスタンス、ネットワーク、SSH コマンド の3つの観点に分けてチェックしましょう。
EC2 インスタンスが正常に起動していない
EC2 インスタンスが異常となっている場合は接続できません。
AWS コンソールにログインし、該当サーバーの状態を確認します。
- 状態が running となっていること
- ステータスチェックが 2/2 となっていること
再起動しても解消しない場合は AWS サポートへ問い合わせましょう。
状態が stopped の場合はサーバーが起動していません。
インスタンスを右クリック → 開始 からサーバーを起動しましょう。
EC2 のセキュリティグループを確認する
EC2 には、セキュリティグループ と呼ばれる考え方があります。
ファイアウォールのような「接続許可設定」をイメージすれば OK です。
サーバーに SSH 接続するためには、セキュリティグループによる許可が必要です。
インスタンスを右クリック → ネットワーキング → セキュリティグループの変更 から設定します。
SSH 接続用のセキュリティグループが入っているかを確認しましょう。
セキュリティグループが存在しない場合は新規作成が必要です。
接続元の IP アドレスが許可されているか
セキュリティグループによって、接続できる IP アドレスが制限されています。
今使っている IP アドレスが許可されていなければ、EC2 に繋がりません。
EC2 への接続が許可されている IP アドレスを確認するためには、
インスタンスを選択した状態で、画面下の「インバウンドルールの表示」をクリックします。
SSH のポート番号(標準は 22)のソース欄に、自分の IP アドレスがあるか確認しましょう。
今使っている IP アドレスは、確認くん などで調べられます。
SSH 接続できる IP アドレスを追加する
セキュリティグループで、自分の IP アドレスが許可されていない場合の対処法です。
初めに、対象の EC2 インスタンスに設定されているセキュリティグループ名をコピーします。
上記の画像例では、launch-wizard-13
がセキュリティグループ名です。
管理画面 を開いて、コピーしたセキュリティグループ名を検索しましょう
インバウンド
タブの「編集」ボタンから変更が可能です。
SSH のポート番号(標準は 22)で、自分の IP アドレスからの接続を許可しましょう。
今 AWS の管理画面を開いているインターネット回線から繋ぎたい場合は、
「マイIP」を選ぶと、自動的に現在の IP アドレスが入力されますのでご活用ください。
VPC のサブネット・インターネットゲートウェイを確認する
AWS のネットワークには、外部通信が行えないタイプも存在します。
EC2 インスタンスが、外部通信可能なネットワークに所属しているかを確認しましょう。
- EC2 管理画面を開いてインスタンスを選択する
- 画面下に表示される サブネット ID を控えておく
- VPC 管理画面を開いて左メニューから サブネット を選択する
- 先ほど控えた サブネット ID を検索する
- ルートテーブル タブを開く
この中に 0.0.0.0/0 : igw-xxxxxx
もしくは 0.0.0.0/0 : natgw-xxxxxx
のような設定があれば OK です。設定がない場合は、外部と通信できないネットワークになっています。
EC2 のパブリック IP アドレスを確認する
上記の項目を確認し、外部通信可能なネットワークであった場合は、
EC2 インスタンスの IP アドレスを確認しましょう。
EC2 管理画面にて「IPv4パブリック IP」の記載があれば OK です。
その場合は、パブリック IP アドレスを持つ別サーバー(※)上から SSH 接続します。
※踏み台サーバーなどと呼ばれます
SSH 接続用のキーペアを見直す
EC2 インスタンス作成時には、キーペア を指定しています。
作成時に指定したキーペアでないと接続できません。
EC2 管理画面を開き、指定されているキーペアを再確認しましょう。
同じ名前のキーペアファイル (xxxx.pem
) が手元に必要となります。
Linux から SSH コマンドで接続する場合は、キーペアファイルの権限も要チェックです。
ファイルのパーミッションが 600
(読み取り専用) となっている必要があります。
SSH の接続コマンドを見直す
SSH で接続する際のコマンドが誤っている可能性もあります。
以下の形式となっているか確認しましょう。
$ ssh <ユーザ名>@<サーバーのパブリック IP> -i <キーペアファイル>
- 接続するユーザ名が正しいこと
- EC2 インスタンスの IP アドレスが正しいこと
- キーペアファイルの場所が正しく指定されていること
- ポート番号を変更している場合は
-p
オプションで指定します
作成した OS によって、ユーザ名の初期値が異なります。
EC2 の OS | 初期ユーザ名 |
---|---|
Amazon Linux | ec2-user |
Ubuntu | ubuntu |
CentOS | centos |
EC2 インスタンスの接続トラブルまとめ
EC2 インスタンスに繋がらない・接続できない場合の対処を解説しました。
インスタンス、ネットワーク設定、SSH コマンド の3つに分けて調査することが重要です。
- EC2 インスタンスが正常に動作していること
- 外部から接続可能なネットワークになっているか
- SSH コマンドや使用するキーペアファイルが正しいか
【関連記事】
⇒ AWS EC2 インスタンスの特徴と選び方
⇒ EC2 インスタンス料金を節約するテクニック
⇒ Elastic IPアドレス (EIP) とは何か?
⇒ Fargate, ECS, EKS の違いを解説