

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS のネットワークエラーのトラブルシューティング
<a name="troubleshooting-network-errors"></a>

以下のトピックでは、Amazon SQS のネットワーク問題の最も一般的な原因およびトラブルシューティング方法について説明します。

## ETIMEOUT error
<a name="etimeout-error"></a>

ETIMEOUT エラーは、クライアントが Amazon SQS エンドポイントへの TCP 接続を確立できない場合に発生します。

**トラブルシューティング:**
+ **ネットワーク接続を確認する**

  `telnet` などのコマンドを実行して、Amazon SQS へのネットワーク接続をテストします。

  Example: telnet sqs.us-east-1.amazonaws.com 443
+ **ネットワーク設定を確認する**
  + ローカルファイアウォールのルール、ルート、アクセスコントロールリスト (ACL) が、使用するポートのトラフィックを許可していることを確認します。
  + セキュリティグループのアウトバウンド (退出) ルールは、ポート 80 または 443 へのトラフィックを許可する必要があります。
  + ネットワーク ACL のアウトバウンド (退出) ルールは、TCP ポート 80 または 443 へのトラフィックを許可する必要があります。
  + ネットワーク ACL のインバウンド (進入) ルールは、TCP ポート 1024-65535 でのトラフィックを許可する必要があります。
  + パブリックインターネットに接続する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスには、[インターネット接続](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#vpc-igw-internet-access)が必要です。
+ **Amazon Virtual Private Cloud (Amazon VPC) エンドポイント**

   Amazon VPC エンドポイントを介して Amazon SQS にアクセスする場合、エンドポイントセキュリティグループは、ポート 443 でクライアントセキュリティグループへのインバウンドトラフィックを許可する必要があります。VPC エンドポイントのサブネットに関連付けられたネットワーク ACL には、以下の設定が必要です。
  + ネットワーク ACL のアウトバウンド (退出) ルールは、TCP ポート 1024-65535 (エフェメラルポート) でのトラフィックを許可する必要があります。
  + ネットワーク ACL のインバウンド (進入) ルールは、ポート 443 でのトラフィックを許可する必要があります。

 また、Amazon SQS の VPC エンドポイントの AWS Identity and Access Management (IAM) ポリシーは、アクセスを許可する必要があります。次の VPC エンドポイントポリシーの例では、Amazon SQS キュー {{MyQueue}} にメッセージを送信することを IAM ユーザー {{MyUser}} に許可するよう指定しています。その他のアクション、IAM ユーザー、Amazon SQS リソースは、VPC エンドポイント経由のアクセスが拒否されます。

```
{
    "Statement": [{
        "Action": ["sqs:SendMessage"],
        "Effect": "Allow",
        "Resource": "arn:aws:sqs:us-east-2:123456789012:{{MyQueue}}",
        "Principal": {
            "AWS": "arn:aws:iam:123456789012:user/{{MyUser}}"
        }
    }]
}
```

## UnknownHostException error
<a name="unknownhostexception-error"></a>

UnknownHostException エラーは、ホスト IP アドレスを確認できなかった場合に発生します。

**トラブルシューティング **- 

nslookup ユーティリティを使用して、ホスト名に関連付けられた IP アドレスを返します。
+ Windows and Linux OS

  ```
  nslookup sqs.<region>.amazonaws.com 
  ```
+ AWS CLI または SDK for Python のレガシーエンドポイント:

  ```
  nslookup <region>.queue.amazonaws.com
  ```

失敗した出力を受け取った場合は、「*AWS 情報センターガイド*」の「[DNS の仕組み、および部分的または断続的な DNS 障害をトラブルシューティングする方法を教えてください。](https://repost.aws/knowledge-center/sqs-connection-error)」の指示に従ってください。

有効な出力を受け取った場合は、アプリケーションレベルの問題である可能性があります。アプリケーションレベルの問題を解決するには、以下の方法を試してください。
+ アプリケーションを再起動します。
+ Java アプリケーションに不正な DNS キャッシュがないことを確認します。可能であれば、DNS TTL に準拠するようにアプリケーションを設定します。詳細については、「[DNS 名検索の JVM TTL を設定する](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/jvm-ttl-dns.html)」を参照してください。

ネットワークエラーのトラブルシューティング方法の詳細については、「*AWS 情報センターガイド*」の「[Amazon SQS の ETIMEOUT および UnknownHostException 接続エラーのトラブルシューティング方法を教えてください。](https://repost.aws/knowledge-center/sqs-connection-error)」を参照してください。