Amazon Redshift Serverless への接続
Amazon Redshift Serverless インスタンスをセットアップしたら、以下に示すさまざまな方法で接続できます。チームやプロジェクトが複数存在し、それらのコストを別々に管理したい場合は、個別に AWS アカウント を使用できます。
Amazon Redshift Serverless が利用できる AWS リージョン の一覧については、「Amazon Web Services 全般のリファレンス」の「Redshift Serverless API」に記載されているエンドポイントを参照してください。
Amazon Redshift Serverless は、現在の AWS リージョン で AWS アカウント 内のサーバーレス環境に接続します。Amazon Redshift Serverless は、5431-5455 と 8191-8215 のポート範囲内の VPC で実行されます。デフォルトは 5439 です。現在、ポートを変更できるのは API オペレーション UpdateWorkgroup
と AWS CLI オペレーション update-workgroup
のみです。
Amazon Redshift Serverless への接続
Amazon Redshift Serverless で次の構文を使ってデータベース (dev
という名前) に接続できます。
workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:port/dev
例えば、以下の接続文字列では、リージョンに us-east-1 が指定されます。
default.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439/dev
JDBC ドライバー経由での Amazon Redshift Serverless への接続
次のいずれかの方法で、好みの SQL クライアントから、Amazon RedShift が提供する JDBC ドライバーバージョン 2 を使用して Amazon Redshift Serverless に接続できます。
JDBC ドライバーバージョン 2.1.x 以降を使用して、データベース認証のサインイン認証情報で接続するには、次の構文を使用します。ポート番号はオプションです。含まれていない場合、Amazon Redshift Serverless のデフォルトのポート番号は 5439 です。5431-5455 または 8191-8215 のポート範囲から別のポートに変更できます。サーバーレスエンドポイントのデフォルトのポートを変更するには、AWS CLI と Amazon Redshift API を使用します。
jdbc:redshift://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev
例えば、次の接続文字列では、デフォルトのワークグループ、アカウント ID 123456789012、リージョン us-east-2 を指定しています。
jdbc:redshift://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev
JDBC ドライバのバージョン 2.1.x 以降を使用して IAM に接続するには、次の構文を使用します。ポート番号はオプションです。含まれていない場合、Amazon Redshift Serverless のデフォルトのポート番号は 5439 です。5431-5455 または 8191-8215 のポート範囲から別のポートに変更できます。サーバーレスエンドポイントのデフォルトのポートを変更するには、AWS CLI と Amazon Redshift API を使用します。
jdbc:redshift:iam://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev
例えば、次の接続文字列では、デフォルトのワークグループ、アカウント ID 123456789012、リージョン us-east-2 を指定しています。
jdbc:redshift:iam://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev
ODBC には、次の構文を使用します。
Driver={Amazon Redshift (x64)}; Server=workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com; Database=dev
バージョン 2.1.0.9 以前の JDBC ドライバーを使用して IAM に接続する場合は、次の構文を使用する必要があります。
jdbc:redshift:iam://redshift-serverless-<name>:aws-region/database-name
例えば、次の接続文字列では、デフォルトのワークグループとリージョン AWS リージョン us-east-1 を指定しています。
jdbc:redshift:iam://redshift-serverless-default:us-east-1/dev
ドライバーの詳細については、「Amazon Redshift での接続の設定」を参照してください。
JDBC と ODBC の接続文字列の検索
SQL クライアントツールでワークグループに接続するには、JDBC または ODBC 接続文字列が必要です。接続文字列は、Amazon Redshift Serverless コンソールの、ワークグループの詳細ページにあります。
ワークグループの接続文字列を見つけるには
-
AWS Management Console にサインインして https://console.aws.amazon.com/redshift/
で Amazon Redshift コンソールを開きます。 ナビゲーションメニューで、[Redshift Serverless] を選択します。
ナビゲーションメニューで、[ワークグループの設定] を選択してから、リストからワークグループ名を選択し、その詳細を開きます。
JDBC URL および ODBC URL 接続文字列は、追加の詳細とともに、[General information (一般情報)] セクションで手に入れることができます。各文字列はワークグループが実行される AWS リージョンに基づき決まります。適切な接続文字列の横にあるアイコンを選択して接続文字列をコピーします。
Data APIを使用した Amazon Redshift Serverless への接続
Amazon Redshift Data API を使用して、Amazon Redshift Serverless に接続することもできます。AWS CLI の呼び出しでは、cluster-identifier
パラメータではなく、workgroup-name
パラメータを使用します。
Data API の詳細については、「Amazon Redshift Data API の使用」を参照してください。Python で Data API を呼び出すコードの例やその他の例については、「Redshift Data API の開始方法quick-start
フォルダおよび use-cases
フォルダを GitHub で参照してください。
SSL での Amazon Redshift Serverless への接続
Amazon Redshift Serverless への安全な接続を設定する
Amazon Redshift では、クエリとデータを暗号化するために Secure Sockets Layer (SSL) 接続がサポートされています。安全な接続をセットアップするための構成も、プロビジョニングされた Redshift クラスターに対する接続をセットアップした際に使用したものと同様です。「接続のセキュリティオプションを設定する」の手順に従います。ここでは、利用可能な SSL 証明書バンドルをダウンロードしてインストールする方法について説明しています。このバンドルでは、サーバーレス Redshift インスタンス、そしてプロビジョニングされたクラスターの両方に接続できます。Amazon Redshift Serverless インスタンスに接続する場合、SSL 接続を受け入れるためのパラメータを設定する必要はありません。
Amazon Redshift マネージド VPC エンドポイントから Amazon Redshift Serverlessへの接続
他の VPC エンドポイントからの Amazon Redshift Serverless への接続
オンプレミスおよびパブリックを含む他の VPC エンドポイントから、Amazon Redshift Serverless に接続することが可能です。
Redshift マネージド VPC エンドポイントから Amazon Redshift Serverless への接続
Amazon Redshift Serverless は VPC でプロビジョニングされます。RedShift マネージド VPC エンドポイントを作成すると、別の VPC のクライアントアプリケーションから Amazon Redshift Serverless にプライベートにアクセスできます。これを行う際、トラフィックはインターネットを経由しないため、パブリック IP アドレスを使用する必要はありません。これにより、通信のプライバシーとセキュリティが向上します。
コンソールで RedShift マネージド VPC エンドポイントを作成する
コンソールで、[Workgroup configuration] (ワークグループの設定) を選択し、リストからワークグループを選択します。
[Redshift-managed VPC endpoints] (RedShift マネージド VPC エンドポイント) で、[Create endpoint] (エンドポイントの作成) を選択します。
エンドポイント名を入力します。組織にとってわかりやすい名前を作成してください。
AWS アカウント ID を選択します。これは 12 桁のアカウント ID またはアカウントのエイリアスです。
エンドポイントがある AWS VPC を選択します。その後、サブネット ID を選択します。最も一般的なユースケースでは、これは Amazon Redshift Serverless インスタンスに接続するクライアントがあるサブネットです。
追加する VPC のセキュリティグループを選択できます。 セキュリティグループは、それぞれが仮想ファイアウォールとして機能します。また、インスタンスにおける特定の仮想デスクトップインスタンスへのインバウンドトラフィックおよびアウトバウンドトラフィックを制御します。
[Create endpoint] (エンドポイントの作成) を選択します。
コンソールを使用して RedShift マネージド VPC エンドポイントを編集する
コンソールで、[Workgroup configuration] (ワークグループの設定) を選択し、リストからワークグループを選択します。
[Redshift-managed VPC endpoints] (RedShift マネージド VPC エンドポイント) で、[Edit] (編集) を選択します。
VPC のセキュリティグループを追加または削除します。これは、RedShift マネージド VPC エンドポイントを作成した後に変更できる唯一の設定です。
[Save changes] (変更の保存) をクリックします。
コンソールで RedShift マネージド VPC エンドポイントを削除する
コンソールで、[Workgroup configuration] (ワークグループの設定) を選択し、リストからワークグループを選択します。
[Redshift-managed VPC endpoints] (RedShift マネージド VPC エンドポイント) で、削除する VPC エンドポイントを選択します。
[Delete] (削除) を選択します。
パブリックにアクセス可能な Amazon Redshift Serverless インスタンスの作成と接続
パブリックにアクセス可能な Amazon Redshift Serverless インスタンスに接続する
Amazon Redshift Serverless インスタンスを設定して、パブリックインターネットの SQL クライアントからクエリを実行できます。ローカル VPC、またはファイアウォールの背後にあるサブネットから常に接続する必要はありません。
次の手順では、インターネットからの接続を受け入れるように Amazon Redshift Serverless を構成する手順を説明します。
Redshift コンソールで、Amazon Redshift Serverless のメインメニューに移動します。[Create workgroup] (ワークグループの作成) を選択してから、手順に従って名前を付けます。関連する VPC とサブネットを選択します。[Next] (次へ) をクリックします。
名前空間を作成する手順を完了します。このプロセスには、データベースの指定と、データベースタスクを実行する権限を持つ IAM ロールの割り当てが含まれます。
名前空間をすでに作成している場合、それも機能します。
Amazon VPC サービスコンソールで、VPC にインターネットゲートウェイがアタッチされ、カスタムルートテーブルが存在することを確認します。詳細については、「インターネットゲートウェイを使用してインターネットに接続する」を参照してください。
前の手順を完了した後、または名前空間とワークグループが既に存在する場合は、[Workgroup configuration] (ワークグループの設定) を選択します。リストからワークグループを選択します。[Network and Security] (ネットワークとセキュリティ) パネルで、[Edit] (編集) を選択します。
[Turn on Public Accessible] (パブリックアクセス可能をオンにする) を選択します。これを行うと、静的な IPv4 Elastic IP アドレスを割り当てることによって、Amazon Redshift Serverless インスタンスがパブリックになります。この IP アドレスは、AWS アカウントに割り当てられます。
パブリッククライアントからの接続を受け入れるように Amazon Redshift Serverless を設定したら、次の手順に従って接続します。
Amazon Redshift コンソールで、Serverless ダッシュボードを選択し、[Workgroup configuration] (ワークグループの設定) をクリックし、ワークグループを選択します。[Network and Security] (ネットワークとセキュリティ) 設定を表示するには、[Data access] (データアクセス) で [Edit] (編集) を選択します。ワークグループの VPC セキュリティグループをメモします。Amazon VPC に移動してメニューから [Security groups] (セキュリティグループ) を選択します。リストでセキュリティグループ ID を選択します。セキュリティグループには、[Inbound rules] (インバウンドルール) などの構成設定があります。[Edit inbound rules] (インバウンドルールの編集) を選択し、許可する送信元 IP アドレスとポートを指定するルールを作成します。
Amazon VPC サービスコンソールで、VPC にインターネットゲートウェイがアタッチされていることを確認します。インターネットゲートウェイのターゲットがソース 0.0.0.0/0、またはパブリック IP CIDR に設定されていることを確認します。ルートテーブルは、クラスターが存在する VPC サブネットに関連付ける必要があります。
クライアントで、ワークグループと名前空間の設定時に選択したポートでトラフィックを受け入れるように受信ファイアウォールルールを設定します。
Amazon Redshift RSQL などのクライアントツールを用いて接続します。Amazon Redshift Serverless のドメインをホストとして使用し、以下を入力します。
rsql -h
workgroup-name
.account-id
.region
.amazonaws.com -Uadmin
-d dev -p 5439
パブリックにアクセス可能な設定を有効にすると、Amazon Redshift Serverless は Elastic IP アドレスを作成します。これは AWS アカウントに関連付けられた静的 IP アドレスです。VPC 外部のクライアントはそれを使用して接続できます。これを使用すると、クライアント接続に影響を与えることなく、基盤となるネットワーク設定を変更することができます。
Amazon Redshift Serverless のフェデレーションユーザーに付与するデータベースロールの定義
Amazon Redshift Serverless でどのデータベースロールを付与するかを決定するロールを組織内で定義できます。詳細については、「Amazon Redshift Serverless のフェデレーションユーザーに付与するデータベースロールの定義」を参照してください。
その他のリソース
アクセス許可の付与、追加サービスへのアクセスの許可、IAM ロールの作成など、Amazon Redshift Serverless への安全な接続の詳細については、「Amazon Redshift Serverless での Identity and Access Management」を参照してください。