EC2 インスタンスがインターネットゲートウェイを使用してインターネットに接続できないのはなぜですか?

最終更新日: 2021 年 2 月 19 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにパブリック IP アドレスがありますが、インターネットにアクセスできません。どうすれば修正できますか?

解決方法

インスタンスが前提条件をすべて満たしていることを確認する

インスタンスが次の条件を満たしている必要があります。

インスタンスにパブリック IP アドレスがあることを確認する

インスタンスにパブリック IP アドレスがなく、インターネットゲートウェイがある場合は、そのインスタンスは所属する仮想プライベートクラウド (VPC) の外側にアクセスできません。

インスタンスにインターネットへのアクセスを許可するには、Elastic IP アドレスを割り当て、インスタンスに関連付けます。

または、サブネットでパブリック IPv4 アドレス属性を有効にします。IPv4 アドレス属性を有効にすると、そのサブネットで起動するインスタンスは、起動時にパブリック IP アドレス属性を付与されることになります。

ファイアウォールがアクセスをブロックしていないことを確認する

インスタンスが上記の条件を満たしていても、インターネット接続の問題がある場合は、以下をお試しください。

1.FSP ping ツールまたは curl ツールを使用して、既知の作業インスタンスやデバイスから、サイトまたはロケーションへアクセスできるかどうかテストします。

2.FSP ファイアウォールデバイスまたはソフトウェアで HTTP または HTTPS 経由のトラフィックが許可されていることを確認します。

次のコマンドを実行して、トラフィックをブロックしているルールがないことを確認します。

$ sudo iptables -L
$ sudo iptables -L -t nat

上記のコマンドによりトラフィックがブロックされていることが分かったら、ルールを削除するか、特定のポートのトラフィックを許可するルールを追加します。次の例では、examplerule を新しいルールに置き換え、ポート 80 を特定のポート番号に置き換えます。

$ sudo iptables -D examplerule
$ sudo iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

Windows Server

Windows Server のデフォルトのファイアウォールで、以下のコマンドを実行します。

netsh advfirewall firewall show rule name=all

上記のコマンドによりトラフィックがブロックされていることが分かったら、古いルールを削除するか、特定のポートのトラフィックを許可する新しいルールを追加します。次の例では、ポート 80 を特定のポート番号に置き換えます。

netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80