Amazon Redshift 接続エラーをトラブルシューティングするにはどうすればよいですか?

所要時間2分
0

Amazon Redshift クラスターに接続できません。これを解決するにはどうすればよいですか?

解決方法

Amazon Redshift クラスターが最近サイズ変更されたか、スナップショットから復元された

Amazon Redshift クラスターが最近サイズ変更またはスナップショットから復元された場合は、クラスターのサブネットを確認してください。クラスターは、スナップショットのサイズ変更または復元を行う前に、同じサブネット内で起動する必要があります。

Amazon Redshift クラスターが最近サイズ変更または復元されなかった場合は、ネットワーク設定を確認してください。ネットワーク設定は、古いサブネットと新しいサブネットの両方で同じである必要があります。

Amazon Redshift クラスターがパブリックサブネットに存在します

パブリックサブネットに保存Amazon Redshift クラスターに接続する場合は、以下を確認してください:

  • Amazon Redshift クラスターが「パブリックにアクセス可能」に設定されていることを確認します。 パブリックにアクセス可能なオプションの詳細については、「VPC でのクラスターの管理」を参照してください。
  • ルートテーブルにインターネットゲートウェイがアタッチされていることを確認します。

接続をテストするには、telnet を使用して、Amazon Redshift クラスターへの接続をテストします。

telnet <cluster endpoint> <cluster port>

Amazon Redshift クラスターがプライベートサブネットに存在します。

Amazon Redshift クラスターがプライベートサブネットに存在する場合は、以下を確認してください:

  • 必ず NAT ゲートウェイをパブリックサブネットのルートテーブルにアタッチしてください。NAT ゲートウェイは、プライベートサブネット内のクラスターがインターネットに接続するのを許可します。
  • クラスターが [Publicly Accessible] (パブリックにアクセス可能) に設定されていないことを確認してください。

クライアントが Amazon Redshift クラスターのリーダーノードのプライベート IP アドレスに到達できることを確認するには、dig コマンドを使用します:

dig <cluster endpoint>

Amazon Redshift クラスターへの接続をテストするには、telnet コマンドを使用します:

telnet <cluster endpoint><cluster port>

Telnet が失敗する、または Amazon Redshift クラスターにまだアクセスできない

Amazon Redshift クラスター接続が失敗したことが telnet コマンドで示された場合は、次の条件が満たされていることを確認してください:

  • セキュリティグループのインバウンドルールでは、タイプが TCP の Amazon Redshift ポート (デフォルト 5439) が許可されます。
  • Amazon Redshift クラスターに接続する CIDR 範囲または IP は、セキュリティグループのイングレスルールに追加されます。

Amazon Redshift クラスター接続は成功したが、クラスターには引き続きアクセスできない状態であることが telnet コマンドで示された場合は、ネットワークのファイアウォールを確認してください。ファイアウォールが Amazon Redshift ポートをブロックしている可能性があります (デフォルトのポートは 5439)。

無効なオペレーションの接続エラー

Amazon Redshift クラスターの任意の接続で SSL を有効にする必要がある場合、次の接続エラーが表示されることがあります。

Error: [Amazon](500310) Invalid operation: no pg_hba.conf entry for host "::ffff:205.xxx.xxx.xxx", user "username", database "dbname", SSL off;

require_ssl パラメータが [true] に設定されているかどうかを確認するには、次のステップを実行します。

1.    Amazon Redshift コンソールを開きます。

2.    [設定] タブを選択します。

3.    Amazon Redshift クラスターに関連付けられているパラメータグループを変更します。

4.    (オプション) AWS コマンドラインインターフェイス (AWS CLI) を使用して SSL 設定を確認します:

describe-cluster-parameters

SSL 設定が [true] に設定されている場合は、次のアプローチを検討してください:

  • require_ssl パラメータを [false] (デフォルトのパラメータ値) に更新し直します。SSL 設定を変更するには、Amazon Redshift クラスターに関連付けられているパラメータグループを編集します。パラメータグループは、Amazon Redshift コンソールの [パラメータ] タブから編集できます。
  • SSL 接続がユースケースまたは環境の要件である場合は、接続文字列に必要な SSL パラメータが含まれていることを確認してください。

例:

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true

致命的な接続エラー

Amazon Redshift クラスターに開いている接続が多すぎる場合、次のエラーが表示されます。

Error: FATAL:  connection limit [500]/[2000] exceeded for user

エラーメッセージが示すように、Amazon Redshift の dc2.large および ds2.xlarge ノードタイプの最大接続制限は 500 です。ds2.8xlarge、dc2.8xlarge、ra3.xlplus、ra3.4xlarge、および ra3.16xlarge ノードの場合、最大接続制限は 2,000 です。

Amazon Redshift クラスターで開いている接続の数を確認するには、次のステップを実行します:

1.    Amazon CloudWatch コンソールを開きます。

2.    Amazon CloudWatch Logs のエントリで DatabaseConnections メトリクスを探します。

3.    STL_CONNECTION_LOG テーブルを使用して、開いている接続を確認します。

select recordtime, username, dbname, remotehost, remoteport
from stl_connection_log
where event = 'initiating session'
and pid not in
(select pid from stl_connection_log
where event = 'disconnecting session')
order by 1 desc;

4.    STV_SESSIONS テーブルを使って、Amazon Redshift のアクティブなユーザーセッションに関する情報を表示します。

select * from stv_sessions;

開いている接続が多数ある場合は、次の方法を検討してください。

  • PG_TERMINATE_BACKEND コマンドを使用して、アイドル状態のセッションをシャットダウンします。
  • Amazon Redshift クラスターへの接続に使用するオペレーティングシステムに基づいて、クライアント側の TCP/IP タイムアウト設定を変更します 。TCP/IP タイムアウト設定の更新は、アイドル状態のセッションが開いたままにならないようにするのに役立ちます。

接続拒否エラー

Amazon Redshift クラスターが接続を確立できない場合、「Connection Refused」(接続が拒否されました) というエラーを受け取ることがあります:

Error:  amazon 500150 error setting/closing connection: operation timed out/ connection refused.

このエラーは、Amazon Redshift クラスターへのアクセス許可の問題を示している可能性があります。この接続エラーを解決するには、次の方法を検討してください:

  • Amazon Virtual Private Cloud (Amazon VPC) でクラスターを作成した場合は、クライアント CIDR/IP アドレスを VPC セキュリティグループに追加します。クラスターの VPC セキュリティグループの設定の詳細については、「VPC でのクラスターの管理」を参照してください。
  • VPC の外部でクラスターを作成した場合は、クライアント CIDR/IP アドレスをクラスターセキュリティグループに追加します。クラスターセキュリティグループの設定の詳細については、「Amazon Redshift クラスターセキュリティグループ」を参照してください。

関連情報

プライベート Amazon Redshift クラスターをパブリックアクセス可能にするにはどうすればよいですか ?

Amazon Redshift クラスターに接続できません

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ