web-dev-qa-db-ja.com

VPCのEC2インスタンスに接続できません(Amazon AWS)

私は以下のステップを踏みました:

  1. VPCを作成しました(単一のパブリックサブネットを使用)
  2. EC2インスタンスをVPCに追加しました
  3. エラスティックIPを割り当て
  4. エラスティックIPをインスタンスに関連付けました
  5. セキュリティグループを作成し、インスタンスに割り当てました
  6. セキュリティルールを変更して、インバウンドICMPエコーとTCP=ポート22で許可します

私はこれをすべて実行しましたが、まだインスタンスにpingまたはsshできません。同じ手順でVPCビットを差し引いた場合、問題なく設定できます。どのステップが欠けていますか?

47
Ryan Lynch

VPCの外部と通信するには、デフォルト以外の各サブネットにルーティングテーブルとそれに関連付けられたインターネットゲートウェイが必要です(デフォルトのサブネットには、デフォルトで外部ゲートウェイとルーティングテーブルが割り当てられます)。

VPCでパブリックサブネットを作成した方法によっては、明示的に追加する必要がある場合があります。 VPCの設定は、シナリオ1- 単一のパブリックサブネットを持つプライベートクラウド(VPC)、およびインターネット経由の通信を可能にするインターネットゲートウェイ に一致するように聞こえます== AWS VPCドキュメントから。

VPCにインターネットゲートウェイを追加する必要があり、パブリックサブネットのルーティングテーブル内にassign 0.0.0.0/0(デフォルトルート)は、割り当てられたインターネットゲートウェイに移動します。ドキュメント内に、正確なネットワークトポロジの素晴らしい図があります。

また、詳細については、 VPC Internet Gateway AWSのドキュメントを確認してください。残念ながら、それは少し厄介で、自明ではありません。

接続の問題の詳細については、 インスタンスへの接続のトラブルシューティング も参照してください。

76
zorlem

インスタンスが作成されるアベイラビリティーゾーンに注意する必要があると思います(そう思います)。サブネット、ネットワークインターフェース、インスタンスは同じアベイラビリティーゾーンにある必要があります。そうでない場合、パブリックIPに接続する方法はありません。そのインスタンスのために。

私は間違っているかもしれません-しかし、私はそうは思いません、これは私が理解するために私に12時間の仕事を費やしました。

これが他の誰かを助けることを願っています。

4
malsmith

これが正確にこのケースであるかどうかはわかりませんが、パブリックサブネットとプライベートサブネットでVPCを作成したところ、同じセキュリティグループ名と同じ送信元アドレスを持つデフォルトのセキュリティグループがあることに気付きました。効果的にアクセスできません。このソースをAnywhereに変更する必要があり、機能し始めました。

4
dil

ENIを割り当て、Elastic IPをこのENIに割り当てる必要があります。また、このENIをVPCに割り当てる必要があります。外部パケットをVPCに正しく転送するには、ルートテーブルも正しい必要があります。

2
Lucas Freitas

SSHはステートフルプロトコルであるため、ネットワークACLに次のOUTBOUNDルールがあることを確認する必要があります。

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
0
Khalid Anwar