Amazon Redshift クラスターに接続できません
最終更新日: 2020 年 2 月 11 日
Amazon Redshift クラスターに接続できません。
簡単な説明
Amazon Redshift クラスターに接続するには、次を確認します。
- Amazon Redshift クラスターがパブリックサブネットにあり、インターネット経由でアクセスする場合は、[パブリックにアクセス可能] が [はい] に設定されていることを確認してください。
- Amazon Redshift クラスターがプライベートサブネット内にある場合は、パブリックサブネット内のネットワークアドレス変換 (NAT) ゲートウェイを使用してインターネットにアクセスします。プライベートサブネット内のクラスターは、NAT ゲートウェイを使用してインターネットに接続できますが、インターネットはクラスターへの接続を開始できません。
- Amazon Redshift クラスターが別の Virtual Private Cloud (VPC) にあるリソースと通信するようにする場合は、VPC ピア接続を作成します。
解決方法
クラスターはパブリックサブネット内にありますが、自分のローカルコンピュータからインターネット経由で接続できません。
注意: 以下の手順を実行する前に、VPC にインターネットゲートウェイが接続されていることを確認してください。
- Amazon Redshift コンソールを開きます。
- クラスターを選択します。
- 接続しようとしているクラスターを選択します。
- [アクション] タブを選択し、[パブリックにアクセス可能な設定を変更] を選択します。
- VPC の外部のインスタンスとデバイスがクラスターエンドポイントを介してデータベースに接続するように許可するには、[はい] を選択します。
- Elastic IP アドレスを選択します。
- 確認を選択します。
クラスターはプライベートサブネット内にありますが、自分のローカルコンピュータから接続できません。
ローカルマシンに接続するには、クラスターがパブリックサブネットに存在する必要があります。
ローカルマシンからクラスターにアクセスするには、次の手順を実行します。
- Amazon Redshift コンソールを開きます。
- クラスターを選択します。
- 接続しようとしているクラスターを選択します。
- [構成] タブを選択して、[クラスタープロパティ] ページを開きます。
- [VPC を表示] を選択して、Amazon VPC コンソールを開きます。
- ナビゲーションペインで [ルートテーブル] を選択します。
- クラスターが存在するサブネットに関連付けられている [ルートテーブル] を選択します。
- [編集] を選択します。
- [ルートを追加] をクリックします。
IPv4 トラフィックの場合、送信先フィールド内で「0.0.0.0/0」と入力し、ターゲットフィールドにインターネットゲートウェイ ID を選択します。
IPv6 トラフィックの場合、送信先フィールド内で「::/0」と入力し、ターゲットフィールドにインターネットゲートウェイ ID を選択します。 - [保存] を選択します。
別の VPC にある Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから自分のクラスターにアクセスできません。
VPC 間に VPC ピアリング接続を作成します。VPC ピアリング接続により、2 つの VPC がプライベート IP アドレスを使用して互いに通信できるようになります。
- VPC ピアリング接続の作成と使用の手順通りに実行します。
注意: VPC が同じ AWS アカウントにある場合は、IPv4 CIDR ブロックが重ならないようにしてください。 - 両方のルートテーブルを更新します。
- セキュリティグループを更新して、ピア VPC グループを参照できるようにします。
- EC2 インスタンスで、ネットワークユーティリティ (netcat など) を使用し、VPC ピアリング接続をテストします。例:
nc -zv <hostname> <port>
VPC ピアリング接続に成功すると、次の出力が表示されます。
$ nc -zv example.123456789.us-east-1.redshift.amazonaws.com 5439
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif en0
src xx.xxx.xxx.xx port 53396
dst xx.xxx.xxx.xxx port 5439
rank info not available
TCP aux info available
Connection to example.123456789.us-east-1.redshift.amazonaws.com port 5439 [tcp/*] succeeded!