amazon redshift - クラスター管理ガイド · amazon redshift クラスター管理ガイド...

376
Amazon Redshift クラスター管理ガイド

Upload: others

Post on 31-Aug-2019

25 views

Category:

Documents


0 download

TRANSCRIPT

Amazon Redshiftクラスター管理ガイド

Amazon Redshift クラスター管理ガイド

Amazon Redshift: クラスター管理ガイドCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Amazon Redshift クラスター管理ガイド

Table of ContentsAmazon Redshift とは? ....................................................................................................................... 1

Amazon Redshift を初めてお使いになる方向けの情報 ...................................................................... 1Amazon Redshift 管理の概要 ........................................................................................................ 1

クラスターの管理 ............................................................................................................... 2クラスターのアクセスとセキュリティ .................................................................................... 2クラスターのモニタリング ................................................................................................... 3データベース ..................................................................................................................... 4

クラスター ........................................................................................................................................ 5概要 .......................................................................................................................................... 5クラスターおよびノード .............................................................................................................. 6

DC1 ノードタイプから DC2 ノードタイプへの移行 ................................................................. 7ノードタイプの詳細 ............................................................................................................ 8ノードの数の決定 ............................................................................................................... 9

クラスターのサイズ変更 ............................................................................................................ 10クラスターの起動用にサポートされているプラットフォーム ........................................................... 11

EC2-VPC プラットフォーム ............................................................................................... 11EC2-Classic プラットフォーム ............................................................................................ 12プラットフォームの選択 .................................................................................................... 12

リージョンとアベイラビリティゾーンの考慮事項 ........................................................................... 12クラスターのメンテナンス ......................................................................................................... 12

メンテナンスウィンドウ .................................................................................................... 13遅延メンテナンス .............................................................................................................. 14クラスターメンテナンストラックの選択 ............................................................................... 14クラスターバージョンの管理 .............................................................................................. 15クラスターバージョンのロールバック .................................................................................. 15

デフォルトのディスク容量アラーム ............................................................................................. 16クラスターの名前変更 ............................................................................................................... 16クラスターのシャットダウンと削除 ............................................................................................. 17クラスターステータス ............................................................................................................... 17コンソールを使ったクラスターの管理 .......................................................................................... 19

クラスターの作成 .............................................................................................................. 20クラスターの変更 .............................................................................................................. 29クラスターの削除 .............................................................................................................. 31クラスターの再起動 .......................................................................................................... 33クラスターのサイズ変更 .................................................................................................... 33クラスターリリースバージョンのアップグレード ................................................................... 34クラスター構成に関する情報の取得 ..................................................................................... 35クラスター状態の概要の取得 .............................................................................................. 35クラスターのスナップショットの作成 .................................................................................. 36デフォルトのディスク容量アラームの編集 ............................................................................ 37クラスターパフォーマンスデータの操作 ............................................................................... 38

AWS SDK for Java を使用したクラスターの管理 ........................................................................... 38Amazon Redshift CLI および API を使用してクラスターを管理する .................................................. 40Amazon Virtual Private Cloud (VPC) でクラスターを管理する ......................................................... 41

概要 ................................................................................................................................ 41VPC でクラスターを作成する ............................................................................................. 43クラスターの VPC セキュリティグループの管理 ................................................................... 44クラスターサブネットグループ ........................................................................................... 45

クラスターバージョンの履歴 ...................................................................................................... 51バージョン 1.0.9459、1.0.9734、または 1.0.9761 .................................................................. 51バージョン 1.0.9003 または 1.0.9041 .................................................................................. 52バージョン 1.0.8610、1.0.8727、1.0.8815、1.0.8901、または 1.0.8995 .................................... 52バージョン 1.0.8058、1.0.8123、1.0.8205、または 1.0.8360 ................................................... 52バージョン 1.0.7657、1.0.7767、1.0.7804、または 1.0.8187 ................................................... 53

iii

Amazon Redshift クラスター管理ガイド

バージョン 1.0.7287、1.0.7464、1.0.7562 ............................................................................ 53バージョン 1.0.6882、1.0.7075、1.0.7078、1.0.7152 ............................................................. 54バージョン 1.0.6527、1.0.6630、1.06670、1.0.6761、1.0.6805 ............................................... 54バージョン 1.0.6145、1.0.6230、1.0.6246、1.0.6431、1.0.6476、1.0.6754 ............................... 55バージョン 1.0.5749, 1.0.5833 ............................................................................................ 55バージョン 1.0.5494, 1.0.5671 ............................................................................................ 55バージョン 1.0.5122、1.0.5290、1.0.5463 ............................................................................ 56バージョン 1.0.4789、1.0.4852、1.0.4896、1.0.4936 ............................................................. 56バージョン 1.0.4349、1.0.4515 ........................................................................................... 57バージョン 1.0.3945、1.0.4081、1.0.4222 ............................................................................ 58バージョン 1.0.3639、1.0.3688 ........................................................................................... 58バージョン 1.0.3324、1.0.3359 ........................................................................................... 58バージョン 1.0.3025 .......................................................................................................... 59バージョン 1.0.2762、1.0.2819、10.2842 ............................................................................. 59バージョン 1.0.2524、1.0.2557、1.02610、1.0.2679、1.02719 ................................................ 60バージョン 1.0.2294、1.0.2369 ........................................................................................... 61バージョン 1.0.2058 .......................................................................................................... 61バージョン 1.0.2044 .......................................................................................................... 62バージョン 1.0.1792、1.0.1793、1.0.1808、1.0.1865 ............................................................. 62バージョン 1.0.1691 および 1.0.1703 .................................................................................. 63バージョン 1.0.1636 .......................................................................................................... 64

データベースのクエリ ....................................................................................................................... 65クエリエディタを使用してデータベースをクエリする .................................................................... 65

考慮事項 .......................................................................................................................... 65アクセスの有効化 .............................................................................................................. 66クエリエディタの使用 ....................................................................................................... 67

SQL クライアントツールを使用してクラスターに接続する ............................................................. 68Amazon Redshift での接続の設定 ........................................................................................ 69JDBC 接続を設定する ....................................................................................................... 70ODBC 接続を設定する ....................................................................................................... 87接続のセキュリティオプションを設定する .......................................................................... 107クライアントツールおよびコードからクラスターに接続する .................................................. 112Amazon Redshift での接続の問題のトラブルシューティング .................................................. 123

拡張された VPC のルーティング ....................................................................................................... 129VPC エンドポイントの使用 ...................................................................................................... 130拡張された VPC ルーティングの有効化 ...................................................................................... 130拡張された VPC のルーティングで Amazon Redshift Spectrum を使用する ...................................... 132

Redshift Spectrum に拡張された VPC のルーティングを使用する場合の考慮事項 ..................... 133パラメータグループ ......................................................................................................................... 136

概要 ...................................................................................................................................... 136パラメータグループについて ..................................................................................................... 136デフォルトパラメータ値 ........................................................................................................... 137AWS CLI によるパラメータ値の設定 .......................................................................................... 138ワークロード管理の設定 ........................................................................................................... 139

WLM の動的プロパティと静的プロパティ ........................................................................... 139wlm_json_configuration パラメータのプロパティ .................................................................. 139AWS CLI による wlm_json_configuration パラメータの設定 .................................................. 143

コンソールを使用したパラメータグループの管理 ......................................................................... 148パラメータグループを作成する ......................................................................................... 149パラメータグループを変更する ......................................................................................... 149コンソールを使用してクエリモニタリングルールを作成または変更する .................................. 151パラメータグループを削除する ......................................................................................... 154パラメータグループとクラスターを関連付ける .................................................................... 154

AWS SDK for Java を使用したパラメータグループの管理 ............................................................. 154Amazon Redshift CLI および API を使用したパラメータグループの管理 .......................................... 158

スナップショット ............................................................................................................................ 159概要 ...................................................................................................................................... 159

iv

Amazon Redshift クラスター管理ガイド

自動スナップショット .............................................................................................................. 160自動スナップショットのスケジュール ........................................................................................ 160スナップショットスケジュール形式 ........................................................................................... 160手動スナップショット .............................................................................................................. 162スナップショットストレージの管理 ........................................................................................... 162スナップショットのテーブルを除く ........................................................................................... 162別のリージョンにスナップショットをコピーする ......................................................................... 163スナップショットからのクラスターの復元 .................................................................................. 163スナップショットからのテーブルの復元 ..................................................................................... 164スナップショットの共有 ........................................................................................................... 166コンソールを使用したスナップショットの管理 ............................................................................ 168

スナップショットスケジュールの作成 ................................................................................ 169手動スナップショットの作成 ............................................................................................. 170手動スナップショット保持期間の変更 ................................................................................ 171手動スナップショットの削除 ............................................................................................. 173自動スナップショットのコピー ......................................................................................... 174スナップショットからのクラスターの復元 .......................................................................... 175クラスターのスナップショットの共有 ................................................................................ 177暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定する .......... 178AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定 ...................... 178クロスリージョンスナップショットのコピーの保持期間を修正する ........................................ 179クロスリージョンスナップショットのコピーを無効にする ..................................................... 179

AWS SDK for Java を使用したスナップショットの管理 ................................................................ 180Amazon Redshift CLI および API を使用したスナップショットの管理 ............................................. 182

リザーブドノードの購入 ................................................................................................................... 184概要 ...................................................................................................................................... 184

リザーブドノードサービスについて ................................................................................... 184リザーブドノードサービス間の価格の比較 .......................................................................... 185リザーブドノードの動作 ................................................................................................... 185リザーブドノードと一括請求 (コンソリデーティッドビリング) ............................................... 186リザーブドノードの例 ...................................................................................................... 186

コンソールを使用したリザーブドノードサービスの購入 ................................................................ 187リザーブドノードのアップグレード ................................................................................... 189

Java を使用したリザーブドノードサービスの購入 ........................................................................ 191AWS CLI および Amazon Redshift API を使用したリザーブドノードサービスの購入 ......................... 194

セキュリティ .................................................................................................................................. 195データ保護 ............................................................................................................................. 196

データの暗号化 ............................................................................................................... 196インターネットトラフィックのプライバシー ....................................................................... 211

Identity and Access Management .............................................................................................. 212認証 .............................................................................................................................. 212アクセスコントロール ...................................................................................................... 213アクセス管理の概要 ......................................................................................................... 213アイデンティティベースのポリシー (IAM ポリシー) を使用する ............................................. 218Amazon Redshift API のアクセス権限リファレンス .............................................................. 226サービスにリンクされたロールの使用 ................................................................................ 227IAM 認証を使用したデータベースユーザー認証情報の生成 .................................................... 229Amazon Redshift から AWS サービスにアクセスすることを許可する ...................................... 247

ログ記録とモニタリング ........................................................................................................... 256データベース監査ログ作成 ................................................................................................ 256

コンプライアンス検証 .............................................................................................................. 270耐障害性 ................................................................................................................................ 271インフラストラクチャセキュリティ ........................................................................................... 271

ネットワークの隔離 ......................................................................................................... 211個のセキュリティグループ ................................................................................................ 272

設定と脆弱性の分析 ................................................................................................................. 285Amazon Redshift 管理インターフェイスの使用 .................................................................................... 286

v

Amazon Redshift クラスター管理ガイド

Using the AWS SDK for Java ................................................................................................... 287Eclipse を使用した Java 実行例 ........................................................................................ 287コマンドラインからの Java 実行例 .................................................................................... 288エンドポイントの設定 ...................................................................................................... 289

HTTP リクエストへの署名 ........................................................................................................ 289署名の計算例 .................................................................................................................. 290

Amazon Redshift CLI のセットアップ ........................................................................................ 291インストール手順 ............................................................................................................ 291AWS コマンドラインインターフェイスの使用開始 ............................................................... 292

クラスターのパフォーマンスをモニタリングする ................................................................................. 296概要 ...................................................................................................................................... 296のパフォーマンスデータ ........................................................................................................... 297

Amazon Redshift メトリクス ............................................................................................ 297Amazon Redshift メトリクスのディメンション .................................................................... 301Amazon Redshift のクエリ/ロードパフォーマンスデータ ....................................................... 302

パフォーマンスデータを使用する .............................................................................................. 303クラスターのパフォーマンスデータを表示する .................................................................... 303同時実行スケーリングデータの表示 ................................................................................... 306クエリパフォーマンスデータの表示 ................................................................................... 307ロード操作中にクラスターメトリクスを表示する ................................................................. 316ワークロードパフォーマンスの分析 ................................................................................... 317アラームを作成する ......................................................................................................... 320Amazon CloudWatch コンソールでパフォーマンスメトリクスを使用する ................................ 322

イベント ........................................................................................................................................ 324概要 ...................................................................................................................................... 324コンソールを使ったイベントの表示 ........................................................................................... 324

イベントのフィルター ...................................................................................................... 325AWS SDK for Java を使ったイベントの表示 ............................................................................... 325Amazon Redshift CLI と API を使ったイベントの表示 .................................................................. 327イベント通知 .......................................................................................................................... 327

概要 .............................................................................................................................. 327Amazon Redshift イベントのカテゴリおよびイベントメッセージ ............................................ 329Amazon Redshift コンソールを使用してイベント通知を管理する ............................................ 338Amazon Redshift CLI および API を使用してイベント通知を管理する ..................................... 343

クラスターのサイズ変更 ................................................................................................................... 344伸縮自在なサイズ変更 .............................................................................................................. 344従来のサイズ変更 .................................................................................................................... 346スナップショット、リストア、およびサイズ変更 ......................................................................... 347コンソールを使用してクラスターをサイズ変更する ...................................................................... 348CLI と API を使用してクラスターをサイズ変更する ..................................................................... 349

制限 .............................................................................................................................................. 350クォータと制限 ....................................................................................................................... 350Spectrum の制限 ..................................................................................................................... 351命名に関する制約 .................................................................................................................... 351

タグ付け ........................................................................................................................................ 353タグ付けの概要 ....................................................................................................................... 353

タグ付け要件 .................................................................................................................. 354コンソールを使用したリソースタグの管理 .................................................................................. 354

[Manage Tags] ウィンドウを開く方法 ................................................................................ 355Amazon Redshift コンソールでタグを管理する方法 .............................................................. 356

Amazon Redshift API を使用したタグの管理 ............................................................................... 356ドキュメント履歴 ............................................................................................................................ 358

vi

Amazon Redshift クラスター管理ガイドAmazon Redshift を初めてお使いになる方向けの情報

Amazon Redshift とは?Amazon Redshift Cluster Management Guide へようこそ。Amazon Redshift は、クラウド内のフルマネージド型、ペタバイト規模のデータウェアハウスサービスです。数百ギガバイトのデータから開始して、ペタバイト以上まで拡張できます。これにより、お客様のビジネスと顧客のために新しい洞察を得る目的でデータを使用できるようになります。

データウェアハウスを作成する最初のステップは、Amazon Redshift クラスターと呼ばれる一連のノードを起動することです。クラスターをプロビジョニングした後、データセットをアップロードし、データ分析クエリを実行できます。データセットのサイズに関係なく、Amazon Redshift は現在使用しているのと同じ SQL ベースのツールとビジネスインテリジェンスアプリケーションを使用して、高速なクエリパフォーマンスを提供します。

Amazon Redshift を初めてお使いになる方向けの情報

Amazon Redshift を初めて使用する方には、次のセクションを初めに読むことをおすすめします。

• Amazon Redshift 管理の概要 (p. 1) – このトピックでは Amazon Redshift の概要を提供します。• サービスのハイライトと価格設定 – この製品詳細ページには、Amazon Redshift の価値提案、サービス

のハイライト、価格設定が掲載されています。• Amazon Redshift 入門ガイド – このガイドでは、クラスターの作成、データベーステーブルの作成、

データのアップロード、およびクエリのテストの手順を説明します。• Amazon Redshift Cluster Management Guide (このガイド) – このガイドでは、Amazon Redshift クラス

ターの作成と管理方法について説明します。• Amazon Redshift Database Developer Guide – このガイドでは、データベース開発者を対象に、データ

ウェアハウスを構成するデータベースの設計、構築、クエリ、および保守の方法について説明します。

クラスターを管理する方法は複数あります。クラスターをよりインタラクティブに管理する場合は、Amazon Redshift console または AWS Command Line Interface (AWS CLI) を使用できます。アプリケーション開発者は、Amazon Redshift クエリ API または AWS ソフトウェア開発キット (SDK) のライブラリを使用して、クラスターをプログラムから管理できます。Amazon Redshift Query API を使用する場合、署名することですべての HTTP または HTTPS リクエストを認証する必要があります。リクエストの署名に関する詳細については、「HTTP リクエストへの署名 (p. 289)」を参照してください。

CLI、API、および SDK の詳細については、次のリンクを参照してください。

• AWS CLI Command Reference• Amazon Redshift API Reference• SDK に関しては、「アマゾン ウェブ サービスのツール」を参照します。

Amazon Redshift 管理の概要Amazon Redshift サービスは、データウェアハウスを設定、操作、および拡張するためのすべての作業を管理します。これらのタスクには、クラスターの容量のプロビジョニング、モニタリング、およびバックアップのほか、Amazon Redshift エンジンへのパッチおよびアップグレードの適用が含まれます。

1

Amazon Redshift クラスター管理ガイドクラスターの管理

クラスターの管理Amazon Redshift クラスターは、リーダーノードと 1 つ以上のコンピューティングノードから構成される一連のノードです。必要なコンピューティングノードのタイプと数は、データのサイズ、実行するクエリの数、必要なクエリ実行のパフォーマンスに応じて異なります。

クラスターの作成と管理データウェアハウスのニーズに応じて、小規模な単一ノードのクラスターから始め、要件が変わったら、より規模の大きい複数ノードのクラスターに簡単に拡張できます。サービスを中断することなく、コンピューティングノードをクラスターに追加または削除できます。詳細については、「Amazon Redshift クラスター (p. 5)」を参照してください。

コンピューティングノードの予約クラスターを 1 年以上連続して実行する場合、1 年間または 3 年間コンピューティングノードを予約することでお金を節約できます。コンピューティングノードを予約すれば、要求に応じてコンピューティングノードをプロビジョニングするときに時間単位で支払う場合に比べて大幅な節約になります。詳細については、「Amazon Redshift リザーブドノードの購入 (p. 184)」を参照してください。

クラスタースナップショットの作成スナップショットはクラスターのポイントインタイムバックアップです。スナップショットには、自動と手動の 2 つのタイプがあります。Amazon Redshift は、暗号化された Secure Sockets Layer (SSL) 接続を使用して、これらのスナップショットを Amazon Simple Storage Service (Amazon S3) の内部に保存できます。スナップショットから復元する場合は、Amazon Redshift で新しいクラスターを作成し、指定したスナップショットからデータをインポートします。スナップショットの詳細については、AmazonRedshift スナップショット (p. 159) を参照してください。

クラスターのアクセスとセキュリティAmazon Redshift には、クラスターのアクセスとセキュリティに関連する複数の機能があります。これらの機能は、クラスターへのアクセスのコントロール、接続ルールの定義、データおよび接続の暗号化に役立ちます。これらの機能は、Amazon Redshift のデータベースアクセスおよびセキュリティに関連する機能に追加されています。データベースのセキュリティに関する詳細については、Amazon RedshiftDatabase Developer Guide の「データベースセキュリティの管理」を参照してください。

AWS アカウントと IAM 認証情報デフォルトで Amazon Redshift クラスターは、クラスターを作成する AWS アカウントにのみアクセスできます。クラスターは誰もアクセスできないようにロックされています。AWS アカウント内では、AWSIdentity and Access Management (IAM) サービスを使用してユーザーアカウントを作成し、それらのアカウントがクラスター操作をコントロールするためのアクセス許可を管理します。詳細については、「Amazon Redshift でのセキュリティ (p. 195)」を参照してください。

個のセキュリティグループデフォルトでは、作成するクラスターはすべてのユーザーに対して閉じられています。IAM 認証情報は、Amazon Redshift API 関連リソース、つまり Amazon Redshift console コマンドラインインターフェイス (CLI)、API および SDK へのアクセスのみコントロールします。JDBC または ODBC 経由で SQL クライアントツールからクラスターへのアクセスを有効にするには、セキュリティグループを使用します。

• Amazon Redshift クラスターに EC2-VPC プラットフォームを使用している場合、VPC セキュリティグループを使用する必要があります。クラスターは EC2-VPC プラットフォームで起動することをお勧めします。

2

Amazon Redshift クラスター管理ガイドクラスターのモニタリング

クラスターを EC2-Classic で起動した後に VPC に移行することはできません。ただし、AmazonRedshift コンソールを使用して EC2-Classic スナップショットを EC2-VPC クラスターに復元できます。詳細については、「スナップショットからのクラスターの復元 (p. 175)」を参照してください。

• Amazon Redshift クラスターに EC2-Classic プラットフォームを使用している場合、Amazon Redshiftセキュリティグループを使用する必要があります。

いずれの場合でも、CIDR/IP アドレスの特定の範囲に明示的なインバウンドアクセスを付与するためにセキュリティグループにルールを追加するか、SQL クライアントが Amazon EC2 インスタンスで実行されている場合には、Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグループにルールを追加します。詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

インバウンドアクセスルールに加えて、クラスター内でデータベース認証を行うための認証情報を提供するために、データベースのユーザーを作成します。詳細については、このトピックの「データベース (p. 4)」を参照してください。

暗号化クラスターをプロビジョニングする際には、オプションで、セキュリティ強化のためにクラスター暗号化オプションを選択できます。暗号化を有効にすると、Amazon Redshift は、暗号化されたフォーマットでユーザーが作成したテーブルにすべてのデータを保存します。Amazon Redshift 暗号化キーの管理には、AWS Key Management Service (AWS KMS) を使用できます。

暗号化は、クラスターの変更不可能なプロパティです。暗号化されたクラスターから、暗号化されていないクラスターに切り替える唯一の方法は、データをアンロードして新しいクラスターに再ロードすることです。暗号化は、クラスターとすべてのバックアップに適用されます。暗号化されたスナップショットからクラスターを復元すると、新しいクラスターも暗号化されます。

暗号化、キー、およびハードウェアセキュリティモジュールに関する詳細については、「AmazonRedshift データベース暗号化 (p. 197)」を参照してください。

SSL 接続SQL クライアントとクラスター間の接続を暗号化するには、Secure Sockets Layer (SSL) 暗号化を使用できます。詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

クラスターのモニタリングAmazon Redshift でのモニタリングに関連するさまざまな機能があります。ユーザーアクティビティログの生成、興味の情報を追跡するイベントや通知サブスクリプションの設定のために、データベース監査ログ作成を使用できます。さらに、Amazon Redshift および Amazon CloudWatch でメトリクスを使用して、クラスターとデータベースの状態やパフォーマンスに関する詳細を取得できます。

データベース監査ログ作成認証の試み、接続、切断、データベースユーザー定義の変更、データベースで実行されるクエリに関する情報を追跡するために、データベース監査ログ作成機能を使用できます。この情報は、Amazon Redshift内でセキュリティおよびトラブルシューティングの目的で役立ちます。このログは Amazon S3 バケットに格納されます。詳細については、「データベース監査ログ作成 (p. 256)」を参照してください。

イベントと通知Amazon Redshift はイベントを追跡し、AWS アカウントで数週間、そのイベントに関する情報を保持します。Amazon Redshift はイベントごとに、イベントが発生した日付、説明、イベントのソース (クラス

3

Amazon Redshift クラスター管理ガイドデータベース

ター、パラメータグループ、またはスナップショット)、ソース ID などの情報を報告します。一連のイベント フィルタを指定する、Amazon Redshift イベント通知サブスクリプションを作成できます。フィルター条件に一致するイベントが発生すると、Amazon Redshift は Amazon Simple Notification Service を使用してイベントが発生したことをアクティブに通知します。イベントのタイプと通知の詳細については、「Amazon Redshift イベント (p. 324)」を参照してください。

パフォーマンスAmazon Redshift では、クラスターとデータベースの状態やパフォーマンスを追跡できるようにするため、パフォーマンスメトリクスとデータが提供されます。Amazon Redshift は、Amazon CloudWatch メトリクスを使用して、CPU 使用率、レイテンシー、およびスループットなど、クラスターの物理的な側面をモニタリングします。Amazon Redshift は、クラスターのデータベースアクティビティをモニタリングできるように、クエリおよびロードパフォーマンスデータも提供します。パフォーマンスメトリクスとモニタリングの詳細については、「Amazon Redshift クラスターのパフォーマンスをモニタリングする (p. 296)」を参照してください。

データベースAmazon Redshift は、クラスターをプロビジョニングするときにデータベースを 1 つ作成します。これは、データをロードし、データのクエリを実行するために使用するデータベースです。必要に応じて SQLコマンドを実行することで、追加のデータベースを作成できます。追加のデータベースの作成に関する詳細については、Amazon Redshift Database Developer Guide の「ステップ 1: データベースの作成」を参照してください。

クラスターをプロビジョニングする際に、クラスター内に作成されるすべてデータベースにアクセスできるマスターユーザーを指定します。このマスターユーザーは、最初にデータベースにアクセスできる唯一のユーザーであるスーパーユーザーです。ただし、このユーザーは追加のスーパーユーザーとユーザーを作成できます。詳細については、Amazon Redshift Database Developer Guide の「スーパーユーザー」および「ユーザー」を参照してください。

Amazon Redshift はパラメータグループを使用して、日付のプレゼンテーションスタイルや小数点の精度など、クラスター内のすべてのデータベースの動作を定義します。クラスターをプロビジョニングする際にパラメータグループを指定しない場合、Amazon Redshift は、デフォルトのパラメータグループをクラスターに関連付けます。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

Amazon Redshift 内のデータベースに関する詳細については、Amazon Redshift Database DeveloperGuide を参照してください。

4

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift クラスター移行のセクションでは、Amazon Redshift クラスターと呼ばれる一連のコンピューティングノードを起動してデータウェアハウスを作成する方法の基本を学習します。

トピック• 概要 (p. 5)• Amazon Redshift のクラスターおよびノード (p. 6)• クラスターのサイズ変更 (p. 10)• クラスターの起動用にサポートされているプラットフォーム (p. 11)• リージョンとアベイラビリティゾーンの考慮事項 (p. 12)• クラスターのメンテナンス (p. 12)• デフォルトのディスク容量アラーム (p. 16)• クラスターの名前変更 (p. 16)• クラスターのシャットダウンと削除 (p. 17)• クラスターステータス (p. 17)• コンソールを使ったクラスターの管理 (p. 19)• AWS SDK for Java を使用したクラスターの管理 (p. 38)• Amazon Redshift CLI および API を使用してクラスターを管理する (p. 40)• Amazon Virtual Private Cloud (VPC) でクラスターを管理する (p. 41)• クラスターバージョンの履歴 (p. 51)

概要Amazon Redshift データウェアハウスは、ノードと呼ばれるコンピューティングリソースのコレクションであり、これらはクラスターと呼ばれるグループを構成します。各クラスターは、1 つの AmazonRedshift エンジンを実行し、1 つ以上のデータベースを含みます。

Note

現時点では、Amazon Redshift バージョン 1.0 エンジンを利用できます。ただし、エンジンの更新に伴い、複数の Amazon Redshift エンジンバージョンを選択できるようになる可能性があります。

コンソールの [Cluster Version (クラスターのバージョン)] フィールドで、クラスターの Amazon Redshiftエンジンとデータベースのバージョンを決定できます。数字の最初の 2 つのセクションはクラスターのバージョンで、最後のセクションはクラスターのデータベースの固有の改訂番号です。次の例では、クラスターバージョンが 1.0 で、データベースの改訂番号が 884 です。

5

Amazon Redshift クラスター管理ガイドクラスターおよびノード

Note

コンソールでは、1 つのフィールドにこの情報が表示されますが、Amazon Redshift API ではClusterVersion と ClusterRevisionNumber の 2 つのパラメータになります。詳細については、『Amazon Redshift API Reference』の「クラスター」を参照してください。

Amazon Redshift には [バージョンアップグレードの許可] という設定があり、クラスターの AmazonRedshift エンジンの新しいバージョンが利用可能になると、エンジンを自動的にアップグレードするかどうかを指定できます。この設定はデータベースバージョンのアップグレードには影響しません。データベースバージョンは、クラスターに指定したメンテナンス期間中にアップグレードされます。AmazonRedshift エンジンのアップグレードはメジャーバージョンのアップグレードで、Amazon Redshift データベースのアップグレードはマイナーバージョンアップグレードです。バージョンの自動アップグレードは、メジャーバージョンに対してのみ無効にできます。マイナーバージョンアップグレードのメンテナンスウィンドウの詳細については、「メンテナンスウィンドウ (p. 13)」を参照してください。

Amazon Redshift のクラスターおよびノードAmazon Redshift クラスターは、ノードで構成されています。クラスターごとに、リーダーノードと 1 つまたは複数のコンピューティングノードがあります。リーダーノードは、クライアントアプリケーションからクエリを受け取ってクエリを解析し、クエリ実行プランを作成します。次に、これらのプランの並列実行をコンピューティングノードと調整し、コンピューティングノードからの中間結果を集計します。最終的にクライアントアプリケーションに結果を返します。

コンピューティングノード、はクエリ実行プランを実行し、これらのクエリを処理するためにデータをコンピューティングノード間で伝送します。中間結果は、リーダーノードに送られて集計されてから、クライアントアプリケーションに送り返されます。リーダーノードおよびコンピューティングノードの詳細については、『Amazon Redshift Database Developer Guide』の「データウェアハウスシステムのアーキテクチャ」を参照してください。

Amazon Redshift コンソール (https://console.aws.amazon.com/redshift/) で [Redshift ダッシュボード] を使用し、ニーズに合った最適なクラスター設定を見つけることができます。このツールを使用すると、データのサイズを指定し、クラスターの推奨事項を受け取ることができます。その後、コンソールから直接このクラスターを起動します。

クラスターを起動するときに、オプションの 1 つとしてノードタイプを指定します。ノードタイプによって、各ノードの CPU、RAM、ストレージ容量、およびストレージデバイスでのタイプが決まります。高密度ストレージ (DS) ノードタイプはストレージに最適化されています。高密度コンピューティング (DC)ノードタイプはコンピューティングに最適化されています。

DS2 ノードタイプは、大容量データのワークロードに合わせて最適化されており、ハードディスクドライブ (HDD) ストレージを使用します。

DC2 ノードタイプおよび前世代の DC1 のノードタイプは、パフォーマンスを集中的に使用するワークロードに適しています。DC ノードタイプはソリッドステートドライブ (SSD) ストレージを使用するため、DS ノードタイプに比べて I/O が高速ですが、ストレージスペースは少なくなります。

DC2 ノードタイプを使用するクラスターは、Virtual Private Cloud (VPC) で起動します。DC2 クラスターを EC2 クラシックモードで起動することはできません。詳細については、「VPC でクラスターを作成する (p. 43)」を参照してください。

選択するノードタイプは、以下の 3 点に大きく依存します。

• Amazon Redshift 内にインポートするデータの量• データベースで実行するクエリとオペレーションの複雑さ

6

Amazon Redshift クラスター管理ガイドDC1 ノードタイプから DC2 ノードタイプへの移行

• これらのクエリとオペレーションからの結果に依存するダウンストリームシステムのニーズ

ノードタイプは、さまざまなサイズで使用できます。DS2 ノードは、xlarge サイズと 8xlarge サイズで使用できます。DC2 ノードは、large サイズと 8xlarge サイズで使用できます。ノードサイズとノードの数によって、クラスターのストレージ総容量が決まります。

ノードタイプに応じて、1 つのノード (単一ノード) または複数のノード (複数ノード) を使用できます。8xlarge クラスターの最小ノード数は 2 です。単一ノードクラスターでは、ノードは機能上リーダーとコンピューティングで共有されます。マルチノードクラスターでは、リーダーノードとコンピューティングノードは分かれています。

Amazon Redshift は、各リージョンの各 AWS アカウントのリソースにクォータを適用します。クォータは、アカウントがリージョン内の特定のリソースタイプに作成できるリソースの数を制限します (ノードやスナップショットなど)。Amazon Redshift リソースに適用するデフォルトのクォータの詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「Amazon Redshift の上限」を参照してください。上限緩和をご希望の場合は、Amazon Redshift 上限緩和申請を送信します。

クラスターのコストは、リージョン、ノードタイプ、ノードの数、ノードが事前に予約されているかどうかによって異なります。ノードのコストについては、「Amazon Redshift の料金表」ページを参照してください。

DC1 ノードタイプから DC2 ノードタイプへの移行DC1 クラスターを新しい DC2 ノードタイプに移行すると、向上したパフォーマンスを利用できます。

DC2 ノードタイプを使用するクラスターは、仮想プライベートクラウド (EC2-VPC) で起動する必要があります。クラスターが VPC にない場合 (つまり、EC2-Classic を使用している場合) は、最初にクラスターのスナップショットを作成し、次に以下のオプションのいずれかを選択します。

• dc1.large クラスターから、VPC の dc2.large クラスターに直接復元します。• EC2-Classic の dc1.8xlarge クラスターから、最初に VPC の dc1.8xlarge クラスターに復元し、次に

dc1.8xlarge クラスターのサイズを dc2.8xlarge クラスターのサイズに変更します。dc2.8xlarge ノードタイプのスライス数は dc1.8xlarge ノードタイプと異なるため、dc2.8xl クラスターに直接復元することはできません。

クラスターが VPC にある場合は、以下のオプションのいずれかを選択します。

• dc1.large クラスターから、VPC の dc2.large クラスターに直接復元します。• dc1.8xlarge クラスターから、dc1.8xl クラスターのサイズを dc2.8xlarge クラスターのサイズに変更し

ます。dc2.8xlarge ノードタイプのスライス数は dc1.8xlarge ノードタイプと異なるため、dc2.8xlargeクラスターに直接復元することはできません。

DC1 ノードから DC2 ノードに移行する場合は、以下の点を考慮してください。

• 100% 満杯の DC1 クラスターは、同等数の DC2 ノードに移行できない可能性があります。より多くのディスクスペースが必要な場合は、以下を試すことができます。• 使用可能なディスクスペースがより多い設定にサイズを変更します。• テーブルを切り詰めて不要なデータをクリーンアップします。• 行を削除し、テーブルのバキューム処理を行います。

• DC2 クラスターは EC2-Classic ネットワーキングをサポートしていません。DC1 クラスターが VPCで実行されていない場合は、DC2 の移行用にクラスターを作成します。詳細については、「AmazonVirtual Private Cloud (VPC) でクラスターを管理する (p. 41)」を参照してください。

• 移行中はクラスターを使用できない場合があります。クラスターのサイズを変更すると、オペレーション中は、クラスターが読み取り専用モードに設定される場合があります。Amazon Redshift コンソー

7

Amazon Redshift クラスター管理ガイドノードタイプの詳細

ルのクラスターリストから [cancel resize (サイズ変更をキャンセル)] を選択して、サイズ変更オペレーションが完了する前にキャンセルできます。詳細については、「Amazon Redshift でのクラスターのサイズ変更 (p. 344)」を参照してください。

詳細については、「Amazon Redshift スナップショット (p. 159)」および「クラスターのサイズ変更 (p. 344)」を参照してください。

ノードタイプの詳細以下のテーブルは、各ノードタイプとサイズのノード仕様をまとめたものです。最初の 2 つテーブルでは、以下の見出しに特定の意味があります。

• vCPU は各ノードの仮想 CPU の数です。• ECU は、各ノードの Amazon EC2 計算ユニットの数です。• RAM は、各ノードのギビバイト (GiB) 単位のメモリ量です。• 1 ノードあたりのスライスとは、コンピューティングノードでパーティション分割されたスライスの数

です。

伸縮自在なリサイズを使用してクラスターのサイズを変更すると、ノードあたりのスライス数が変わる可能性があります。

• ストレージは、各ノードのストレージの容量とタイプです。• ノード範囲は、Amazon Redshift がノードタイプとサイズに対してサポートするノードの最小数と最大

数です。

Note

前述のように、指定したリージョン内の AWS アカウントに適用されたクォータによっては、さらに少ないノードに制限されることがあります。

• 総容量とは、ノード範囲で指定されているノードの最大数をデプロイした場合のクラスターのストレージ合計容量です。

Important

DS1 ノードタイプは廃止されています。新しい DS2 ノードタイプは DS1 より高いパフォーマンスを追加料金なしで提供します。DS1 リザーブドノードを購入した場合は、DS2 ノードタイプに移行するためのサポートについて、[email protected] までお問い合わせください。

高密度ストレージノードタイプ

ノードサイズ vCPU ECU RAM(GiB)

1 ノードあたりのスライス

1 ノードあたりのストレージ

ノード範囲 総容量

ds2.xlarge 4 13 31 2 2 TB HDD 1–32 64 TB

ds2.8xlarge 36 119 244 16 16 TB HDD 2–128 2 PB

高密度コンピューティングノードタイプ

ノードサイズ vCPU ECU RAM(GiB)

1 ノードあたりのスライス

1 ノードあたりのストレージ

ノード範囲 総容量

dc1.large 2 7 15 2 160 GB SSD 1–32 5.12 TB

8

Amazon Redshift クラスター管理ガイドノードの数の決定

ノードサイズ vCPU ECU RAM(GiB)

1 ノードあたりのスライス

1 ノードあたりのストレージ

ノード範囲 総容量

dc1.8xlarge 32 104 244 32 2.56 TB SSD 2–128 326 TB

dc2.large 2 7 15.25 2 160 GBNVMe-SSD

1–32 5.12 TB

dc2.8xlarge 32 99 244 16 2.56 TBNVMe-SSD

2–128 326 TB

ノードタイプの以前の名前

Amazon Redshift の以前のリリースでは、ノードタイプは異なる名前でした。Amazon Redshift API および AWS Command Line Interface (AWS CLI) では古い名前を使用できます。ただし、古い名前を参照するスクリプトは更新し、現在の名前を使用することをお勧めします。現在の名前と以前の名前は、次のとおりです。

ノードタイプの以前の名前

現在の名前 以前の名前

ds2.xlarge ds1.xlarge、dw.hs1.xlarge、dw1.xlarge

ds2.8xlarge ds1.8xlarge、dw.hs1.8xlarge、dw1.8xlarge

dc1.large dw2.large

dc1.8xlarge dw2.8xlarge

ノードの数の決定選択するノードの数は、データセットのサイズおよび希望するクエリパフォーマンスによって決まります。例として高密度ストレージノードタイプを使用すると、32 TB のデータがある場合、16個の ds2.xlarge ノードか、2 個の ds2.8xlarge ノードを選択できます。データの増分が少ない場合は、ds2.xlarge ノードサイズを選択すると 2 TB ずつ拡張できます。一般的に、データの増分が多い場合は、ds2.8xlarge ノードサイズを選択することをお勧めします。

Amazon Redshift はクラスターのすべてのコンピューティングノードにクエリを分散し、並列で実行するので、クラスターにノードを追加するとクエリパフォーマンスを向上させることができます。また、Amazon Redshift はクラスター内のすべてのコンピューティングノードにデータも分散します。2 つ以上のコンピューティングノードを持つクラスターを実行する場合は、各ノードのデータが常に別のノードのディスクにミラーリングされ、データ損失が発生するリスクが減少します。

どちらを選択しても、Amazon Redshift consoleと Amazon CloudWatch メトリクスのクエリパフォーマンスをモニタリングできます。また、必要に応じてノードを追加または削除して、最適に動作するようにストレージとパフォーマンスのバランスをとることもできます。追加のノードをリクエストしたときは、Amazon Redshift でデプロイメント、ロードバランシング、およびデータメンテナンスの詳細がすべて管理されます。クラスターパフォーマンスの詳細については、「Amazon Redshift クラスターのパフォーマンスをモニタリングする (p. 296)」を参照してください。

より長い期間 (1 年以上など)、継続してクラスターの実行を維持する予定の場合、1 年間または 3 年間、コンピューティングノードを予約することで、料金を大幅に節約することができます。コンピューティングノードを予約するには、リザーブドノードというサービスをご購入ください。予約する個々のコンピューティングノードについて、1 つのサービスを購入します。コンピューティングノードを予約した場

9

Amazon Redshift クラスター管理ガイドクラスターのサイズ変更

合、クラスターが実行されているかどうかにかかわらず、固定の前払い料金と時間料金をお支払いいただきます。ただし、時間料金は、オンデマンドの使用料金よりも大幅に安くなります。詳細については、「Amazon Redshift リザーブドノードの購入 (p. 184)」を参照してください。

クラスターのサイズ変更最初にクラスターをプロビジョニングした後にストレージとパフォーマンスの要件が変更された場合、クラスターのサイズを変更できます。ノードを追加または削除してクラスターをスケールインまたはスケールアウトできます。また、別のノードタイプを指定してクラスターを拡大または縮小することもできます。

たとえば、さらにノードを追加したり、ノードタイプを変更したり、単一ノードクラスターをマルチノードクラスターに変更したり、マルチノードクラスターを単一ノードクラスターに変更したりすることができます。ただし、変更後のクラスターが、現在のデータを保持するのに十分な大きさであることを確認する必要があります。変更後のサイズが不十分な場合、サイズの変更は失敗します。API を使用するときは、ノードタイプ、ノードサイズ、ノードの数のいずれかのみを変更する場合でもすべて指定する必要があります。

以下にリサイズプロセスを示します。

1. リサイズプロセスを開始すると、Amazon Redshift はリサイズリクエストを承認するイベント通知を送信し、新しい (ターゲット) クラスターのプロビジョニングを開始します。

2. 新しい (ターゲット) クラスターがプロビジョニングされると、Amazon Redshift はリサイズが開始されたというイベント通知を送信し、読み取り専用モードで既存の (ソース) クラスターを再開します。再起動すると、クラスターへの既存の接続はすべて終了します。すべての完了しなかったトランザクション(コピーも含めて)は、ロールバックされます。クラスターが読み取り専用モードの場合、クエリの読み取りはできますが、クエリの書き込みはできません。

3. Amazon Redshift は、ソースクラスターからターゲットクラスターにデータをコピーし始めます。4. リサイズプロセスが完了間近になると、Amazon Redshift はターゲットクラスターのエンドポイントを

更新し、ソースクラスターへのすべての接続は終了します。5. リサイズが完了すると、Amazon Redshift はリサイズが完了したというイベント通知を送信します。

ターゲットクラスターに接続し、クエリの読み取りと書き取りの実行を再開できます。

クラスターのサイズを変更するとき、サイズ変更が完了するまでは読み取り専用モードのままです。Amazon Redshift consoleのクラスターの [ステータス] タブでサイズ変更の進捗を確認することができます。クラスターのサイズ変更にかかる時間は、各ノードのデータ量に左右されます。通常、サイズ変更処理には数時間から 1 日かかります。ただし、データ量が多いクラスターではさらに時間がかかることもあります。これは、データが元のクラスターの各ノードからコピー先のクラスターのノードに並列コピーされるためです。クラスターのサイズ変更の詳細については、「Amazon Redshift でのクラスターのサイズ変更 (p. 344)」および「クラスターのサイズ変更 (p. 33)」を参照してください。

サイズ変更の操作中、Amazon Redshift はテーブルをソートしません。クラスターのサイズを変更すると、Amazon Redshift は分散方式に基づいてデータベースのテーブルを新しいコンピューティングノードに分散し、ANALYZE を実行して統計を更新します。削除対象としてマークされた行は転送されないため、テーブルの再ソートが必要な場合は VACUUM のみを実行する必要があります。詳細については、『Amazon Redshift Database Developer Guide』の「テーブルのバキューム処理」を参照してください。

クラスターがパブリックであり、VPC 内に存在する場合、サイズ変更後もリーダーノードの elastic IP アドレス (EIP) は変更されません。クラスターがプライベートであり、VPC 内に存在する場合、サイズ変更後もリーダーノードのプライベート IP アドレスは変更されません。クラスターが VPC 内に存在しない場合、サイズ変更オペレーションの一部として、新しいパブリック IP アドレスがリーダーノードに割り当てられます。

クラスターのリーダーノード IP アドレスを取得するには、以下に示すように dig ユーティリティを使用します。

10

Amazon Redshift クラスター管理ガイドクラスターの起動用にサポートされているプラットフォーム

dig mycluster.abcd1234.us-west-2.redshift.amazonaws.com

リーダーノード IP アドレスは、以下に示すように結果の ANSWER SECTION の末尾にあります。

クラスターの起動用にサポートされているプラットフォーム

Amazon Redshift クラスターは、選択した Amazon Redshift のノードタイプとサイズ用に構成されたAmazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されます。EC2-VPC または EC2-Classic のどちらかのプラットフォームで Amazon Redshift クラスターを起動できます。これらのプラットフォームは、Amazon EC2 インスタンスに対してサポートされています。クラスターは、EC2-Classicプラットフォームではなく EC2-VPC プラットフォームで起動することをお勧めします。これらのプラットフォームの詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「サポートされているプラットフォーム」を参照してください。利用可能なプラットフォームは、ご利用の AWS アカウントの設定によって異なります。

Note

SQL クライアントツールと Amazon Redshift データベースとの接続問題を防止するには、以下の 2 つの方法のいずれかを実行することをお勧めします。パケットサイズの交渉をホストに許可する着信ルールを設定できます。または、Amazon EC2 インスタンスのネットワークインターフェイス (NIC) で最大転送単位 (MTU) を 1500 に設定して、TCP/IP ジャンボフレームを無効化できます。上記の方法の詳細については、「クエリがハングして、クラスターに達しない場合がある (p. 126)」を参照してください。

EC2-VPC プラットフォームEC2-VPC プラットフォームでは、クラスターは論理的に AWS アカウントに限定された Virtual PrivateCloud (VPC) 内で稼働します。EC2-VPC プラットフォームのクラスターをプロビジョニングする場合は、クラスターに 1 つ以上の VPC のセキュリティグループを関連付けて、クラスターへのアクセスを制御します。詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティグループ」を参照してください。

VPC でクラスターを作成するには、最初に VPC のサブネット情報を指定して Amazon Redshift クラスターサブネットグループを作成してから、クラスターの起動時にサブネットグループを指定する必要があります。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 45)」を参照してください。

11

Amazon Redshift クラスター管理ガイドEC2-Classic プラットフォーム

Amazon Virtual Private Cloud (Amazon VPC) に関する詳細については、Amazon VPC の製品詳細ページを参照してください。

EC2-Classic プラットフォームEC2-Classic プラットフォームでは、クラスターは他の AWS ユーザーと共有する単一のフラットネットワーク内で稼働します。EC2-Classic プラットフォームでクラスターをプロビジョニングする場合は、クラスターに 1 つ以上の Amazon Redshift クラスターセキュリティグループを関連付けて、クラスターへのアクセスを制御します。詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

プラットフォームの選択AWS アカウントは、インスタンスを両方のプラットフォームで起動できるか、EC2-VPC だけで起動できるかが、リージョンごとに決まっています。アカウントがサポートしているプラットフォームを確認し、クラスターを起動するには、次の操作を行います。

1. クラスターをデプロイする AWS リージョンを決定します。Amazon Redshift を利用できる AWS リージョンのリストについては、『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエンドポイント」を参照してください。

2. 選択した AWS リージョンでアカウントがサポートしている Amazon EC2 プラットフォームを確認します。この情報は、Amazon EC2 コンソールで確認できます。手順については、『Linux インスタンス用Amazon EC2 ユーザーガイド』の「サポートされているプラットフォーム」を参照してください。

3. アカウントが両方のプラットフォームをサポートしている場合は、Amazon Redshift クラスターをデプロイするプラットフォームを選択します。アカウントが EC2-VPC のみをサポートしている場合は、VPC にクラスターをデプロイする必要があります。

4. Amazon Redshift クラスターをデプロイします。Amazon Redshift consoleを使用して、または AmazonRedshift API、CLI、SDK ライブラリを使用してプログラムでクラスターをデプロイすることができます。これらのオプションや関連ドキュメントへのリンクについては、「Amazon Redshift とは? (p. 1)」を参照してください。

リージョンとアベイラビリティゾーンの考慮事項Amazon Redshift は、複数の AWS リージョンで利用できます。デフォルトでは、Amazon Redshift は、選択した AWS リージョン内のランダムに選択されたアベイラビリティーゾーン (AZ) にクラスターをプロビジョニングします。すべてのクラスターノードが同じ AZ にプロビジョニングされます。

Amazon Redshift が特定の AZ で使用できる場合、オプションでその AZ をリクエストできます。たとえば、1 つの AZ で Amazon EC2 インスタンスが既に実行されている場合、同じ AZ 内に Amazon Redshiftクラスターを作成して、レイテンシーを低減させることができます。また、可用性を高めるために別の AZを選択することもできます。Amazon Redshift は AWS リージョンの一部の AZ では利用できない可能性があります。

Amazon Redshift クラスターをプロビジョニングすることができる、サポートされている AWS リージョンのリストについては『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエンドポイント」を参照してください。

クラスターのメンテナンスAmazon Redshift は定期的にメンテナンスを実行して、クラスターにアップグレードを適用します。更新中は Amazon Redshift クラスターで通常のオペレーションを実行することはできません。クラスターのメンテナンス方法を制御する方法がいくつかあります。たとえば、クラスターにアップデートをいつ展開す

12

Amazon Redshift クラスター管理ガイドメンテナンスウィンドウ

るかを制御できます。また、クラスターが常に最新のリリースバージョンを実行するのか、以前にリリースされたバージョンから最新のリリースバージョンを実行するのかを選択することもできます。最後に、必須ではないメンテナンスアップデートをしばらく延期することもできます。

トピック• メンテナンスウィンドウ (p. 13)• 遅延メンテナンス (p. 14)• クラスターメンテナンストラックの選択 (p. 14)• クラスターバージョンの管理 (p. 15)• クラスターバージョンのロールバック (p. 15)

メンテナンスウィンドウAmazon Redshift により、1 週間 (月曜日から日曜日まで) のうちのランダムな日に、リージョンごとに決められた 8 時間のうちのランダムな 30 分間、メンテナンスウィンドウが割り当てられます。

デフォルトの メンテナンスウィンドウ次のリストは、デフォルトでメンテナンスウィンドウが割り当てられる各リージョンの時間を示します。

• 米国東部(バージニア北部) リージョン: 03:00–11:00 UTC• 米国東部 (オハイオ) リージョン: 03:00–11:00 UTC• 米国西部 (北カリフォルニア) リージョン: 06:00–14:00 UTC• 米国西部 (オレゴン) リージョン: 06:00–14:00 UTC• アジアパシフィック (香港) リージョン: 13:00–21:00 UTC• アジアパシフィック (ムンバイ) リージョン: 16:30–00:30 UTC• アジアパシフィック (大阪: ローカル) リージョン: 13:00–21:00 UTC• アジアパシフィック (ソウル) リージョン: 13:00–21:00 UTC• アジアパシフィック (シンガポール) リージョン: 14:00–22:00 UTC• アジアパシフィック (シドニー) リージョン: 12:00–20:00 UTC• アジアパシフィック (東京) リージョン: 13:00–21:00 UTC• カナダ (中部) リージョン: 03:00–11:00 UTC• 中国 (北京) リージョン: 13:00–21:00 UTC• 中国 (寧夏) リージョン: 13:00–21:00 UTC• 欧州 (フランクフルト) リージョン: 06:00–14:00 UTC• 欧州 (アイルランド) リージョン: 22:00–06:00 UTC• 欧州 (ロンドン) リージョン: 22:00–06:00 UTC• EU (パリ) リージョン: 23:00–07:00 UTC• 欧州 (ストックホルム) リージョン: 23:00–07:00 UTC• 中東 (バーレーン) リージョン: 13:00~21:00 UTC• 南米 (サンパウロ) リージョン: 19:00–03:00 UTC

メンテナンスイベントが特定の週に予定されている場合、割り当てられた 30 分のメンテナンスウィンドウ中に開始されます。メンテナンスの実行中、Amazon Redshift で実行中のクエリまたはその他の操作は終了します。ほとんどのメンテナンスは 30 分のメンテナンスウィンドウ中に完了しますが、メンテナンスタスクの一部はウィンドウが閉じた後も実行を続ける場合があります。スケジュールされたメンテナンスウィンドウの間に実行されるメンテナンスタスクがない場合、クラスターは次にスケジュールされたメンテナンスウィンドウまで通常どおり稼働します。

13

Amazon Redshift クラスター管理ガイド遅延メンテナンス

クラスターをプログラムで、または Amazon Redshift consoleを使用して変更すると、スケジュールされたメンテナンスウィンドウを変更できます。ウィンドウは 30 分以上、24 時間以内である必要があります。詳細については、「コンソールを使ったクラスターの管理 (p. 19)」を参照してください。

遅延メンテナンスクラスターのメンテナンスウィンドウを変更する必要がある場合、メンテナンスを最長 45 日まで遅延できます。たとえば、クラスターのメンテナンスウィンドウが水曜日の 8:30 ~ 9:00 (UTC) に設定されていて、その時間にクラスターにアクセスする必要がある場合、メンテナンスを後の時間に遅らせることができます。ハードウェアをアップデートする必要がある場合を除き、遅延を指定した場合は、クラスターのメンテナンスは一切行われません。

遅延期間中にハードウェアを更新する必要がある、または他の必須の更新を行う必要がある場合、通知して必要な変更を行います。更新中は、クラスターを使用できません。

クラスターのメンテナンスを遅らせる場合、遅延期間後のメンテナンスウィンドウは必須です。これは遅らせることはできません。

Note

メンテナンスが開始した後で遅らせることはできません。

詳細については、「遅延メンテナンス (p. 30)」を参照してください。

クラスターメンテナンストラックの選択Amazon Redshift が新しいクラスターバージョンをリリースすると、メンテナンスウィンドウ中にクラスターが更新されます。クラスターを最新の承認済みリリースに更新するか、前のリリースに更新するか制御できます。

メンテナンストラックは、メンテナンスウィンドウ中にどのクラスターバージョンを適用するかを制御します。Amazon Redshift が新しいクラスターバージョンをリリースすると、そのバージョンは最新のトラックに割り当てられ、以前のバージョンは前のトラックに割り当てられます。クラスターのメンテナンストラックを設定します。次の値のいずれかを指定してください。

• 最新 – 最新の承認済みクラスターバージョンを使用します。• 前 – 最新バージョンの前のクラスターバージョンを使用します。

たとえば、現在クラスターはバージョン 1.0.2762 を実行しており Amazon Redshift の最新バージョンが1.0.3072 であるとします。メンテナンストラック値を [最新] に設定した場合、クラスターは次のメンテナンス期間中に 1.0.3072 (次の承認済みリリース) に更新されます。メンテナンストラック値を [Trailing (前)]に設定した場合、クラスターは 1.0.3072 以降の新しいリリースが公開されるまでは更新されません。

メンテナンストラックの切り替え

通常、クラスターのトラック変更は 1 回のみの決定事項です。トラックを変更するときは注意が必要です。メンテナンストラックを [Trailing (前)] から [最新] に変更すると、クラスターは次のメンテナンス期間中に [最新] トラックリリースバージョンに変更されます。ただし、クラスターのメンテナンストラックを[Trailing (前)] に変更すると、[最新] トラックリリースバージョン後に新しいリリースが出るまで、クラスターは更新されません。

メンテナンストラックと復元

スナップショットはソースクラスターのメンテナンストラックを継承します。スナップショットの作成後にソースクラスターのメンテナンストラックを変更した場合、スナップショットとソースクラスターは別のトラックにあります。スナップショットから復元すると、新しいクラスターは、ソースクラスターから継承されたメンテナンストラックに配置されます。メンテナンストラックは、復元オペレーションが完了

14

Amazon Redshift クラスター管理ガイドクラスターバージョンの管理

した後で変更できます。クラスターのサイズ変更によるクラスターのメンテナンストラックへの影響はありません。

詳細については、クラスターのメンテナンストラックの設定 (p. 30) を参照してください。

クラスターバージョンの管理メンテナンストラックは一連のリリースです。クラスターが最新のトラックにあるか前のトラックにあるかを判断できます。クラスターを最新のトラックに配置する場合、メンテナンス期間中は、常に最新のクラスターリリースバージョンにアップグレードされます。クラスターを前のトラックに配置する場合、最後にリリースされたバージョンの直前にリリースされたクラスターリリースバージョンが常に実行されます。

Amazon Redshift コンソールリストの [Release Status (リリースステータス)] では、アップグレードできるクラスターがあるかどうかが示されます。

クラスターバージョンのロールバッククラスターが最新のクラスターバージョンになっている場合、以前のバージョンまでロールバックすることを選択できます。

各クラスターバージョンに含まれる特徴や改善点の詳細については、「クラスターバージョンの履歴 (p. 51)」を参照してください。

以前のクラスターバージョンにロールバックするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. ロールバックするクラスターを選択し、[ステータス] タブを選択します。

ロールバック先のバージョンが利用できる場合、そのバージョンが詳細ページの [ステータス] タブに表示されます。

15

Amazon Redshift クラスター管理ガイドデフォルトのディスク容量アラーム

4. [リリースするロールバック (リリース番号)] を選択します。

デフォルトのディスク容量アラームAmazon Redshift クラスターを作成するとき、クラスターのすべてのノードで使用されているディスク容量の平均比率を監視するように Amazon CloudWatch アラームを任意で設定できます。このアラームをデフォルトのディスク容量アラームと言います。

デフォルトのディスク容量アラームの目的は、クラスターのストレージ容量を監視することです。このアラームは、データウェアハウスのニーズを基に設定できます。たとえば、クラスターのサイズを変更する必要性の指標として警告を使用できます。別のノードタイプにするかノードを追加するため、または今後の拡張に備えてリザーブドノードを購入するためにサイズを変更できます。

ディスクの使用量が、指定した期間、特定の回数の指定した割合に達したとき、または超えたとき、デフォルトのディスク容量アラームがトリガーされます。デフォルトでは、指定した割合に達し、かつ 5 分以上その割合かそれ以上の状態が続いたとき、このアラームがトリガーされます。デフォルトの値は、クラスターを起動した後編集できます

CloudWatch アラームがトリガーされると、Amazon Simple Notification Service (Amazon SNS) により、指定された受取人に、割合がしきい値に達したことを警告する通知が送信されます。Amazon SNS は、トピックを使用して通知を送信する受取人とメッセージを指定します。既存の Amazon SNS トピックを使用できますが、クラスターの起動時に指定した設定に基づいてトピックを作成することもできます。このアラームのトピックは、クラスターを起動した後編集できます。Amazon SNS トピック作成の詳細については、「Amazon Simple Notification Service の使用開始」を参照してください。

クラスターを起動した後、[CloudWatch アラーム] の下のクラスターの [ステータス] ウィンドウからアラームを表示したり編集したりすることができます。名前は percentage-disk-space-used-default-<string> です。アラームを開いて、関連付けられている Amazon SNS トピックを表示し、アラームの設定を編集することができます。既存の Amazon SNS トピックを使用するように選択していない場合、作成されるトピックの名前は、<clustername>-default-alarms (<recipient>) です。たとえば、examplecluster-default-alarms ([email protected]) のようになります。

デフォルトのディスク容量アラームを設定して編集する方法については、「クラスターの作成 (p. 20)」および「デフォルトのディスク容量アラームの編集 (p. 37)」を参照してください。

Note

クラスターを削除すると、クラスターに関連付けられているアラームは削除されませんが、トリガーされることもありません。必要がなくなったら、CloudWatch コンソールからアラームを削除できます。

クラスターの名前変更クラスターに別の名前を使用する必要がある場合は、クラスターの名前を変更できます。クラスターのエンドポイントには、クラスター名 (クラスター識別子とも呼ばれる) が含まれているため、名前の変更が完了した後、新しい名前を使用するようにエンドポイントを変更します。たとえば、既存の examplecluster という名前のクラスターを、newcluster という名前に変更した場合は、newcluster 識別子を使用するようにエンドポイントを変更します。このクラスターに接続するアプリケーションは、新しいエンドポイントで更新する必要があります。

アプリケーションのエンドポイントを変更せずにアプリケーションの接続先のクラスターを変更する場合は、クラスターの名前を変更できます。この場合は、最初に元のクラスターの名前を変更してから、新しい接続先のクラスターを元のクラスターの名前に変更する必要があります。クラスター識別子はアカウントとリージョン内で一意にする必要があり、元のクラスターと変更後のクラスターを同じ名前にできない

16

Amazon Redshift クラスター管理ガイドクラスターのシャットダウンと削除

ため、この操作が必要になります。スナップショットからクラスターを復元するときに、依存アプリケーションの接続プロパティを変更したくない場合も、この操作を行います。

Note

元のクラスターを削除する場合は、不要なクラスターのスナップショットを削除してください。

クラスターの名前を変更すると、クラスターの状態は、このプロセスが終了するまで renaming に変わります。クラスターに使用していた古い DNS 名は直ちに削除されますが、キャッシュには数分間残っています。名前を変更したクラスターの新しい DNS 名は、10 分以内で有効になります。名前を変更したクラスターは、新しい名前が有効になるまで使用できません。クラスターが再起動され、クラスターへの既存の接続は削除されます。これが完了すると、新しい名前を使用するようにエンドポイントが変更されます。そのため、名前の変更を開始する前にクエリの実行を停止し、名前の変更後に再起動する必要があります。

クラスターのスナップショットは保持され、クラスターに関連付けられたすべてのスナップショットは、クラスターの名前を変更した後も関連付けを維持します。たとえば、本番稼働用データベースにサービスを提供するクラスターがあり、そのクラスターに複数のスナップショットがあるとします。クラスターの名前を変更し、スナップショットのある本番環境に置き換えると、名前を変更したクラスターに既存のスナップショットが関連付けられます。

Amazon CloudWatch アラームおよび Amazon Simple Notification Service (Amazon SNS) イベントの通知は、クラスター名に関連付けられます。クラスターの名前を変更した場合、それに応じてこれらの通知も更新する必要があります。[イベント] ペインの CloudWatch コンソールで CloudWatch アラームを、Amazon Redshift コンソールで Amazon SNS イベント通知を更新できます。クラスターのロードおよびクエリデータには、名前変更前と名前変更後のデータが引き続き表示されます。ただし、パフォーマンスデータは、名前変更プロセスの完了後にリセットされます。

詳細については、「クラスターの変更 (p. 29)」を参照してください。

クラスターのシャットダウンと削除クラスターの実行を停止して料金の発生を防ぐ場合は、クラスターをシャットダウンできます。シャットダウンするときに、オプションで最終スナップショットを作成できます。最終スナップショットを作成する場合、Amazon Redshift はクラスターの手動スナップショットを作成した後、クラスターをシャットダウンします。後でクラスターの実行とデータのクエリを再開する場合は、そのスナップショットを復元できます。

クラスターとそのデータが不要になった場合は、最終スナップショットを作成しないでシャットダウンすることができます。この場合、クラスターとデータは完全に削除されます。クラスターのシャットダウンと削除の詳細については、「クラスターの削除 (p. 31)」を参照してください。

クラスターのシャットダウン時に最終的な手動スナップショットを作成するかどうかにかかわらず、クラスターのシャットダウン後、クラスターに関連付けられた自動スナップショットはすべて削除されます。クラスターに関連付けられた手動スナップショットは保持されます。オプションの最終スナップショットも含めて、保持された手動スナップショットは、クラスターをシャットダウンするときに実行中のクラスターが他にない場合、または、実行中の Amazon Redshift クラスターで利用できる無料ストレージ枠を超えている場合、Amazon Simple Storage Service ストレージ料金が課金されます。スナップショットのストレージ料金の詳細については、Amazon Redshift の料金表ページを参照してください。

クラスターステータスクラスター状態は、クラスターの現在のステータスを表示します。次の表では、各クラスターステータスについて説明します。

17

Amazon Redshift クラスター管理ガイドクラスターステータス

ステータス 説明

available クラスターは実行されていて、利用可能です。

available, prep-for-resize

クラスターは伸縮自在なサイズ変更の準備をしています。クラスターは稼働しており、読み取りクエリや書き込みクエリに使用できますが、スナップショットの作成などのクラスターオペレーションは使用できません。

available, resize-cleanup

伸縮自在なサイズ変更オペレーションは、新しいクラスターのノードへのデータ転送を完了します。クラスターは稼働しており、読み取りクエリや書き込みクエリに使用できますが、スナップショットの作成などのクラスターオペレーションは使用できません。

creating Amazon Redshift はクラスターを作成しています。詳細については、「クラスターの作成 (p. 20)」を参照してください。

deleting Amazon Redshift はクラスターを削除しています。詳細については、「クラスターの削除 (p. 31)」を参照してください。

final-snapshot Amazon Redshift は、クラスターを削除する前に最後のスナップショットを取得しています。詳細については、「クラスターの削除 (p. 31)」を参照してください。

hardware-failure クラスターにハードウェア障害が生じました。

単一ノードクラスターがある場合、そのノードを置き換えることはできません。クラスターを復元するには、スナップショットを使います。詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。

incompatible-hsm Amazon Redshift は、ハードウェアセキュリティモジュール (HSM) に接続できません。クラスターと HSM 間の HSM 設定を確認してください。詳細については、「Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化 (p. 199)」を参照してください。

incompatible-network

基本的なネットワーク設定に問題があります。クラスターを起動する VPCが存在すること、そして設定が正しいことを確認してください。詳細については、「Amazon Virtual Private Cloud (VPC) でクラスターを管理する (p. 41)」を参照してください。

incompatible-parameters

関連付けられたパラメータグループの 1 つ以上のパラメータ値に問題があり、パラメータ値の適用ができません。パラメータグループを変更し、無効な値を更新してください。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

incompatible-restore

スナップショットからクラスターを復元時に問題が発生しました。別のスナップショットでクラスターの復元を再度お試しください。詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。

modifying Amazon Redshift は、クラスターへの変更を加えています。詳細については、「クラスターの変更 (p. 29)」を参照してください。

rebooting Amazon Redshift は、クラスターを再起動しています。詳細については、「クラスターの再起動 (p. 33)」を参照してください。

renaming Amazon Redshift は、クラスターに新しい名前を適用しています。詳細については、「クラスターの名前変更 (p. 16)」を参照してください。

18

Amazon Redshift クラスター管理ガイドコンソールを使ったクラスターの管理

ステータス 説明

resizing Amazon Redshift は、クラスターのサイズを変更しています。詳細については、「クラスターのサイズ変更 (p. 33)」を参照してください。

rotating-keys Amazon Redshift は、クラスターの暗号化キーを更新しています。詳細については、「Amazon Redshift での暗号化キーの更新 (p. 200)」を参照してください。

storage-full クラスターがストレージ容量限に達しました。ノードを追加するためにクラスターのサイズ変更をするか、または別のノードサイズを選択してください。詳細については、「クラスターのサイズ変更 (p. 33)」を参照してください。

updating-hsm Amazon Redshift は HSM 設定を更新しています。

コンソールを使ったクラスターの管理クラスターを作成、変更、サイズ変更、再起動、バックアップするには、Amazon Redshift console の [クラスター] セクションを使用します。

AWS リージョンにクラスターがないときに [クラスター] ページを開くと、クラスターを起動するオプションが表示されます。次のスクリーンショットでは、AWS リージョンは 米国東部 (バージニア北部)リージョン で、このアカウントにクラスターはありません。

AWS リージョンに少なくとも 1 つのクラスターがあると、[クラスター] セクションに、アカウントのそのAWS リージョンにあるすべてのクラスターに関する情報のサブセットが表示されます。次のスクリーンショットでは、選択した AWS リージョンにこのアカウントで作成したクラスターが 1 つあります。

19

Amazon Redshift クラスター管理ガイドクラスターの作成

クラスターを展開すると、エンドポイントの詳細、クラスターとデータベースのプロパティ、タグなど、クラスターの詳細を表示することができます。次のスクリーンショットでは、examplecluster が展開され、クラスターに関する情報の概要が表示されています。

トピック• クラスターの作成 (p. 20)• クラスターの変更 (p. 29)• クラスターの削除 (p. 31)• クラスターの再起動 (p. 33)• クラスターのサイズ変更 (p. 33)• クラスターリリースバージョンのアップグレード (p. 34)• クラスター構成に関する情報の取得 (p. 35)• クラスター状態の概要の取得 (p. 35)• クラスターのスナップショットの作成 (p. 36)• デフォルトのディスク容量アラームの編集 (p. 37)• クラスターパフォーマンスデータの操作 (p. 38)

クラスターの作成クラスターを作成する前に、必ずクラスターのトピック 概要 (p. 5) および Amazon Redshift のクラスターおよびノード (p. 6) を読んでください。

クラスターは AWS マネジメントコンソール で 2 つの方法のいずれかで作成できます。

20

Amazon Redshift クラスター管理ガイドクラスターの作成

• Amazon Redshift を初めて使用する場合、または基本的なクラスターが必要な場合、[Quick launchcluster (クイック起動クラスター)] を使用します。この方法では、ノードタイプ、ノードの数、ユーザー名、パスワード、アクセスに使用する AWS Identity and Access Management (IAM) ロールのみを指定します。詳細については、「[Quick Launch Cluster (クイック起動クラスター)] を使用したクラスターの作成 (p. 21)」を参照してください。

• 既存のユーザーである場合またはクラスターをカスタマイズする場合、[クラスターの起動] を使用します。たとえば、特定の仮想プライベートクラウド (VPC) を使用したり、クラスター内のデータを暗号化したりするには、[クラスターの起動] を使用します。詳細については、「[クラスターの起動] を使用したクラスターの作成 (p. 22)」を参照してください。

[Quick Launch Cluster (クイック起動クラスター)] を使用したクラスターの作成Amazon Redshift を初めて使用する場合、または基本的なクラスターが必要な場合、この効率的な方法を使用します。既存のユーザーである場合またはクラスターをカスタマイズする場合、「[クラスターの起動]を使用したクラスターの作成 (p. 22)」を参照してください。

[Quick Launch Cluster (クイック起動クラスター)] を使用してクラスターを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

Important

IAM ユーザー認証情報を使う場合は、そのユーザーにクラスターオペレーションを実行するために必要なアクセス許可があることを確認してください。詳細については、『AmazonRedshift Cluster Management Guide』の「IAM ユーザーへのアクセスの制御」をご覧ください。

2. クラスターを作成する AWS リージョン (例: 米国西部 (オレゴン)) を選択します。3. Amazon Redshift ダッシュボードで、[Quick launch cluster (クイック起動クラスター)] を選択しま

す。4. [Cluster Specifications] ページで、次の値を入力してから [Launch cluster (クラスターの起動)] をク

リックします。

• [Node type (ノードの種類)]: [dc2.large] を選択します。• [Number of compute nodes (コンピューティングノードの数)]: デフォルト値 [2] を保持します。• [マスターユーザー名]: デフォルト値 [awsuser] を保持します。• [マスターユーザーのパスワード] と [パスワードの確認]: マスターユーザーアカウントのパスワード

を入力します。• [Database port (データベースポート)]: デフォルト値 [5439] を保持します。• [Available IAM roles (利用可能な IAM ロール)]: [myRedshiftRole] を選択します。

確認ページが表示されます。クラスターは数分で作成されます。[Close (閉じる)] を選択して、クラスターのリストに戻ります。

5. [クラスター] ページで、先ほど起動したクラスターを選択し、[クラスターステータス] 情報を確認します。データベースに接続する前に、[クラスターステータス] が available に、[データベースの状態]が healthy になっていることを確認します。

21

Amazon Redshift クラスター管理ガイドクラスターの作成

[クラスターの起動] を使用したクラスターの作成既存の Amazon Redshift ユーザーである場合またはクラスターをカスタマイズする場合、次の手順を使用してクラスターを起動します。Amazon Redshift を初めて使用する場合、または基本的なクラスターが必要な場合、「[Quick Launch Cluster (クイック起動クラスター)] を使用したクラスターの作成 (p. 21)」を参照してください。

[クラスターの起動] を使用してクラスターを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [クラスターの起動] を選択します。3. [クラスターの詳細] ページで、以下のオプションの値を入力し、[次へ] を選択します。

Cluster Identifier

クラスターの一意の名前を入力します。

クラスター識別子は、次の条件を満たしている必要があります。• 1~63 文字の英数字またはハイフンを使用する必要があります。• 英字は小文字を使用する必要があります。• 1 字目は文字である必要があります。• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。• AWS アカウントのすべてのクラスター間で一意である必要があります。

データベース名

カスタム名を使ってデータベースを作成する場合に名前を入力します (mydb など)。このフィールドはオプションです。カスタムデータベース名を指定するかどうかにかかわらず、クラスターには dev というデフォルトデータベースが作成されます。

データベース名は、次の条件を満たしている必要があります。• 1~64 文字の英数字を使用する必要があります。• 小文字のみを使用する必要があります。• データベース名に予約語は使用できません。詳細については、Amazon Redshift Database

Developer Guide の「予約語」を参照してください。Database Port

クライアントアプリケーションからデータベースに接続する予定のポート番号を入力します。クラスター内のデータベースへの JDBC または ODBC 接続を開く場合、接続文字列にポート番号を含める必要があります。

ポート番号は、次の条件を満たしている必要があります。• すべて数字である必要があります。• 1150~65535 の範囲である必要があります。デフォルトのポート番号は 5439 です。

22

Amazon Redshift クラスター管理ガイドクラスターの作成

• ファイアウォールの内側にいる場合は、受信接続を受け入れる開いているポートを指定する必要があります。

マスターユーザー名

データベースのマスターユーザーのアカウント名を入力します。

マスターユーザー名は、次の条件を満たしている必要があります。• 1~128 文字の英数字を使用する必要があります。• 1 字目は文字である必要があります。• マスターユーザー名を予約語にすることはできません。詳細については、Amazon Redshift

Database Developer Guide の「予約語」を参照してください。[マスターユーザーのパスワード] と [パスワードの確認]

マスターユーザーアカウントのパスワードを入力し、確認のためにもう一度パスワードを入力します。

パスワードは以下の条件を満たす必要があります。• 8~64 文字の長さにする必要があります。• 最低 1 個の大文字を含める必要があります。• 最低 1 個の小文字を含める必要があります。• 少なくとも 1 つの数字を含める必要があります。• 表示可能な ASCII 文字 (ASCII コード 33~126) のうち、' (一重引用符)、" (二重引用

符)、\、/、@ または空白を除く任意の文字を使用できます。

次のスクリーンショットでは、examplecluster がクラスターの識別子、カスタムデータベース名は未指定、5439 がポート番号、masteruser がマスターユーザー名です。

4. [Node Configuration (ノードの構成)] ページで、以下のオプションの値を入力し、[次へ] を選択します。

ノードタイプ

ノードタイプを選択します。ノードタイプを選択すると、[CPU]、[メモリ]、[ストレージ]、[I/Oパフォーマンス] など、選択したノードタイプに対応した情報が表示されます。

23

Amazon Redshift クラスター管理ガイドクラスターの作成

クラスタータイプ

クラスタータイプを選択します。選択すると、選択したノードタイプとクラスタータイプにおけるコンピューティングノードの最大数が [最大] ボックスに表示され、最小数が [最小] ボックスに表示されます。

[単一ノード] を選択した場合は、リーダーノードとコンピューティングノードの機能をあわせもつノードが 1 つ作成されます。

[マルチノード] を選択した場合は、[コンピューティングノードの数] でクラスターに必要なコンピューティングノードの数を指定します。

次のスクリーンショットでは、[dc1.large] ノードタイプが選択され、[マルチノード] クラスターに 2つのコンピューティングノードが指定されています。

5. [Additional Configuration (追加設定)] ページで、以下のオプションの値を入力し、[次へ] を選択します。

a. [Provide the optional additional configuration details below (必要に応じて以下で追加の構成の詳細を指定します)] で、以下のオプションを設定します。

[Cluster Parameter Group]

クラスターに関連付けるパラメータグループを選択します。選択しない場合、デフォルトのパラメータグループが使用されます。

データベースの暗号化

クラスターとスナップショット内のデータをすべて暗号化するかどうかを選択します。デフォルト設定の [なし] のままにしておくと、暗号化は有効になりません。暗号化を有効にする場合は、AWS Key Management Service (AWS KMS) またはハードウェアセキュリティモジュール (HSM) のどちらを使用するか選択して、関連する設定を指定します。AmazonRedshift の暗号化の詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。• KMS

暗号化を有効にし、AWS KMS を使って暗号化キーを管理する場合は、[KMS] を選択します。[マスターキー] で、[(default) aws/redshift] を選択してデフォルトのカスタマーマスターキー (CMK) を使用するか、AWS アカウントから別のキーを選択します。

Note

別の AWS アカウントのキーを使用する場合は、[マスターキー] から [キーの ARNを入力] を選択します。その後、使用する Amazon リソースネーム (ARN) を入力します。キーを使用するアクセス権限が必要です。AWS KMS でのキーのアク

24

Amazon Redshift クラスター管理ガイドクラスターの作成

セスの詳細については、『AWS Key Management Service Developer Guide』の「キーへのアクセスの制御」を参照してください。

Amazon Redshift で AWS KMS 暗号化キーを使用する方法の詳細については、「AmazonRedshift での AWS KMS を使用したデータベース暗号化 (p. 197)」を参照してください。

• HSM

暗号化を有効にし、ハードウェアセキュリティモジュール (HSM) を使用して暗号化キーを管理する場合は、[HSM] を選択します。

[HSM] を選択した場合は、[HSM 接続] と [HSM クライアント証明書] から値を選択します。これらの値は、Amazon Redshift と HSM がクラスターキーを渡すことができる信頼された接続を確立するために必要です。HSM 接続とクライアント証明書は、クラスターを起動する前に Amazon Redshift でセットアップする必要があります。HSM 接続とクライアント証明書のセットアップの詳細については、「Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化 (p. 199)」を参照してください。

b. [Configure Networking Options (ネットワークオプションの設定)] で、クラスターを仮想プライベートクラウド (VPC) で起動するか、VPC の外部で起動するかを設定します。ここで選択したオプションによって、このセクションで使用できる追加のオプションが影響を受けます。AmazonRedshift は EC2-VPC および EC2-Classic プラットフォームを使ってクラスターを起動します。AWS アカウントによって、クラスターで使用できるプラットフォームが決まります。詳細については、「」の「サポートされているプラットフォーム」を参照してください。

Choose a VPC• クラスターを仮想プライベートクラウド (VPC) で起動するには、使用する VPC を選択し

ます。少なくとも 1 つの Amazon Redshift サブネットグループが VPC を使用するようにセットアップされている必要があります。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 45)」を参照してください。

• クラスターを VPC の外部で起動するには、[VPC にありません] を選択します。このオプションは、EC2-Classic プラットフォームをサポートする AWS アカウントでのみ使用できます。それ以外の場合、クラスターは VPC で起動する必要があります。

25

Amazon Redshift クラスター管理ガイドクラスターの作成

クラスターサブネットグループ

クラスターを起動する Amazon Redshift サブネットグループを選択します。

Note

このオプションは、VPC のクラスターの場合にのみ使用できます。パブリックアクセス可能

クラスターを起動する VPC の外部からクラスターに接続可能にするには、[はい] を選択します。クラスターへの接続を VPC 内部からのみに制限する場合は、[いいえ] を選択します。

Note

このオプションは、VPC のクラスターの場合にのみ使用できます。パブリック IP アドレスの選択

[パブリックアクセス可能] を [はい] に設定した場合、ここで [いいえ] を選択すると、Amazon Redshift によってクラスターに Elastic IP (EIP) が与えられます。または、自分で作成して管理する EIP を使用する場合は、[はい] をクリックします。Amazon Redshift に作成させた場合、EIP は Amazon Redshift によって管理されます。

Note

このオプションは [パブリックアクセス可能] が [はい] に設定された VPC のクラスターでのみ使用できます。

Elastic IP

VPC の外部からクラスターに接続するときに使用する EIP を選択します。

Note

このオプションは [パブリックアクセス可能] と [パブリック IP アドレスの選択] が[はい] に設定された VPC のクラスターでのみ使用できます。

アベイラビリティーゾーン

クラスターが作成されるアベイラビリティーゾーンを Amazon Redshift に選択させるには、[指定なし] を選択します。そうでない場合、特定のアベイラビリティーゾーンを選択します。

拡張された VPC のルーティング

拡張された VPC のルーティングを有効にするには、[はい] を選択します。拡張された VPCのルーティングには、追加設定が必要になる場合があります。詳細については、「AmazonRedshift 拡張された VPC のルーティング (p. 129)」を参照してください。

c. [Optionally, associate your cluster with one or more security groups (必要に応じて、クラスターを1 つ以上のセキュリティグループに関連付けます)] で、以下のオプションの値を指定します。

VPC セキュリティグループ 

クラスターの VPC セキュリティグループを選択します。デフォルトで選択されているセキュリティグループは、デフォルトの VPC セキュリティグループです。VPC のセキュリティグループの詳細については、『Amazon VPC ユーザーガイド』の 「VPC のセキュリティグループ」を参照してください。

Note

このオプションは、EC2 VPC プラットフォームでクラスターを起動する場合にのみ使用できます。 26

Amazon Redshift クラスター管理ガイドクラスターの作成

クラスターセキュリティグループ

クラスターの Amazon Redshift セキュリティグループを選択します。デフォルトで選択されているセキュリティグループは、デフォルトセキュリティグループです。クラスターセキュリティグループの詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

Note

このオプションは、EC2-Classic プラットフォームでクラスターを起動する場合にのみ使用できます。

d. [Optionally create a basic alarm for this cluster (必要に応じてこのクラスターの基本アラームを作成する)] で、以下のオプションを設定し、[次へ] を選択します。

CloudWatch アラームの作成

クラスターのディスク使用状況をモニタリングするアラームを作成する場合は、[はい] を選択して、該当するオプションの値を指定します。アラームを作成しない場合は、[いいえ] を選択します。

[ディスク使用のしきい値]

平均ディスク使用率を選択します。この値以上になると、アラームがトリガーされます。[既存のトピックの使用]

このアラームのために新しい Amazon Simple Notification Service (Amazon SNS) トピックを作成する場合は、[いいえ] を選択します。[トピック] ボックスでは、必要に応じてデフォルト名を編集します。[受取人] に、アラームがトリガーした場合に通知を受け取る必要があるすべての受信者のメールアドレスを入力します。

既存の Amazon SNS トピックをこのアラームで使用する場合、[はい] を選択して、[トピック] リストで使用するトピックを選択します。

27

Amazon Redshift クラスター管理ガイドクラスターの作成

e. [必要に応じて、このクラスターのメンテナンストラックを選択します] で、[最新] または [Trailing(前)] を選択します。

[最新] を選択した場合、クラスターはメンテナンス期間中に承認済みの最新リリースで更新されます。[Trailing (前)] を選択した場合、クラスターは以前に承認されたリリースで更新されます。

6. [確認] ページで、クラスターの詳細を確認します。すべてに問題がないことを確認したら、[クラスターの起動] を選択して、作成プロセスを開始します。問題がある場合は、[戻る] を選択して必要な変更を行い、[次へ] を選択して [確認] ページに戻ります。

Note

[データベースポート] や [マスターユーザー名] の値など、一部のクラスタープロパティは変更できません。変更する必要がある場合は、[戻る] を選択して、変更します。

次のスクリーンショットは、クラスター起動プロセスで選択したさまざまなオプションの概要を示しています。

7. 作成プロセスを開始した後、[閉じる] を選択します。クラスターの使用準備ができるまで、数分かかることがあります。

28

Amazon Redshift クラスター管理ガイドクラスターの変更

パフォーマンスダッシュボードで操作の状態をモニタリングできます。

クラスターの変更クラスターを変更すると、以下のオプションに対する変更が直ちに適用されます。

• VPC セキュリティグループ • パブリックアクセス可能• マスターユーザのパスワード• HSM 接続• [HSM Client Certificate]• メンテナンス設定• スナップショット設定

以下のオプションに対する変更は、クラスターを再起動した後に限り、有効になります。

• Cluster Identifier

[クラスター識別子] を変更すると、Amazon Redshift はクラスターを自動的に再起動します。• 拡張された VPC のルーティング

[拡張された VPC のルーティング] を変更すると、Amazon Redshift はクラスターを自動的に再起動します。

• [Cluster Parameter Group]

自動作成されたスナップショットの保持期間を短縮すると、新しい保持期間に含まれなくなった、既存の自動作成されたスナップショットは削除されます。詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。

クラスターを変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、変更するクラスターを選択します。

3. クラスターの詳細ページの [設定] タブで、[クラスター] を選択し、[変更] を選択します。

29

Amazon Redshift クラスター管理ガイドクラスターの変更

4. [クラスターの変更] ウィンドウで、クラスターを変更し、[変更] を選択します。表示されたウィンドウには、クラスターを変更するために使用できるオプションが表示されます。[Cluster settings (クラスター設定)]、[Maintenance settings (メンテナンス設定)]、および [Snapshot settings (スナップショット設定)] を更新するオプションがあるタブを含みます。

クラスターのメンテナンストラックの設定クラスターのメンテナンストラックは、コンソールで設定できます。詳細については、「クラスターメンテナンストラックの選択 (p. 14)」を参照してください。

クラスターのメンテナンストラックを設定するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、変更するクラスターを選択します。3. [Maintenance settings (メンテナンス設定)] タブを選択します。4. [最新] または [Trailing (前)] を選択します。5. [Modify] を選択します。

遅延メンテナンスクラスターのメンテナンスウィンドウを変更する必要がある場合、メンテナンスを最長 45 日まで遅延できます。

メンテナンス時間を遅延するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、変更するクラスターを選択します。3. [Maintenance settings (メンテナンス設定)] タブを選択します。4. [メンテナンス] セクションを選択し、遅延メンテナンスの日時を設定します。5. [Modify] を選択します。

30

Amazon Redshift クラスター管理ガイドクラスターの削除

クラスターの削除クラスターが不要になった場合には、それを削除することができます。削除したクラスターと同じデータと構成を使って新しいクラスターをプロビジョニングする場合、この手動スナップショットが必要になります。手動スナップショットを使用すると、後でスナップショットを復元して、クラスターの使用を再開できます。クラスターを削除して最終手動スナップショットを作成しなかった場合、クラスターデータは削除されます。どちらの場合も、クラスターの削除後、自動スナップショットは削除されますが、手動スナップショットはユーザーが削除するまで保持されます。手動スナップショットには、クラスターのAmazon Redshift スナップショットで使用できるストレージ量に応じて、Amazon Simple Storage Serviceストレージ料金が課金されます。詳細については、「クラスターのシャットダウンと削除 (p. 17)」を参照してください。

クラスターを削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、削除するクラスターを選択します。

3. クラスターの詳細ページの [設定] タブで、[クラスター] を選択し、[削除] を選択します。4. [クラスターの削除] ダイアログボックスで、次のいずれかを実行します。

31

Amazon Redshift クラスター管理ガイドクラスターの削除

• クラスターを削除して最終スナップショットを作成するには、[スナップショットの作成] で [はい]を選択します。[スナップショット名] に最終スナップショットの名前を入力して、[削除] を選択します。

• 最終スナップショットを作成しないでクラスターを削除するには、[スナップショットの作成] で [いいえ] を選択して、[削除] を選択します。

クラスターの削除を開始した後、クラスターが削除されるまで数分かかることがあります。次のスクリーンショットに示すように、クラスターリストでステータスをモニタリングできます。最終スナップショットを要求した場合、[クラスターステータス] には [final-snapshot] が表示され、その後、[deleting] が表示されます。

次のスクリーンショットには、ステータスが final-snapshot (削除される前) のクラスターが表示されています。

次のスクリーンショットには、ステータスが deleting のクラスターが表示されています。

プロセスが終了すると、クラスターが [クラスター] ページのクラスターのリストに表示されなくなったことにより削除されたことを確認できます。

32

Amazon Redshift クラスター管理ガイドクラスターの再起動

クラスターの再起動クラスターを再起動すると、クラスターの状態が rebooting に設定されます。再起動が終了すると、クラスターイベントが作成されます。保留されていたクラスターへの変更はすべて、この再起動時に適用されます。

クラスターを再起動するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、再起動するクラスターを選択します。3. クラスターの詳細ページの [設定] タブで、[クラスター] を選択し、[再起動] を選択します。4. [Reboot Clusters (クラスターの再起動)] ウィンドウで、このクラスターを再起動することを確認し

て、[再起動] を選択します。

クラスターが使用可能になるまで、数分かかることがあります。次のスクリーンショットに示すように、クラスターリストで再起動の状態をモニタリングできます。

クラスターのサイズ変更クラスターのサイズを変更する場合、クラスターの現在の設定と異なっているノード数またはノードタイプを指定します。クラスターのサイズ変更処理が実行中の間は、クラスターに対する書き込みクエリまたは読み取り/書き込みクエリは実行できません。読み込みクエリのみ実行できます。

さまざまな方法を使用してクラスターのサイズを変更するチュートリアルも含めて、クラスターのサイズ変更方法の詳細については、「Amazon Redshift でのクラスターのサイズ変更 (p. 344)」を参照してください。

クラスターのサイズを変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、サイズ変更するクラスターを選択します。

3. クラスターの詳細ページの [設定] タブで、[クラスター] を選択し、[サイズ変更] を選択します。4. [クラスターのサイズ変更] ウィンドウで、[ノードタイプ]、[クラスタータイプ]、[ノードの数] など、

サイズ変更パラメータを設定し、[サイズ変更] を選択します。

33

Amazon Redshift クラスター管理ガイドクラスターリリースバージョンのアップグレード

[ステータス] タブでサイズ変更の進捗状況をモニタリングすることができます。

クラスターリストから [cancel resize (サイズ変更をキャンセル)] を選択して、サイズ変更オペレーションが完了する前にキャンセルできます。

クラスターリリースバージョンのアップグレード[リリースステータス] 値が [新しいリリースが利用可能] になっているクラスターのリリースメンテナンスバージョンをアップグレードできます。メンテナンスバージョンをアップグレードすると、すぐにアップグレードするか、次のメンテナンス期間にアップグレードするかを選択できます。

Important

すぐにアップグレードする場合、アップグレードが完了するまでクラスターがオフラインになります。

クラスターリリースバージョンをアップグレードするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、アップグレードするクラスターを選択します。3. [クラスター] タブで、[クラスター] を選択し、[アップグレード] を選択します。4. [アップグレード] ウィンドウでは、[現在のリリース] と [新しいリリース] のバージョン番号、クラス

ターバージョンの履歴 (p. 51) に関する詳細へのリンク、[メンテナンスウィンドウのスケジュール]

34

Amazon Redshift クラスター管理ガイドクラスター構成に関する情報の取得

を確認できます。[はい、今すぐアップグレードします] を選択した場合、アップグレード時にクラスターがオフラインでなることに同意する必要があります。できない場合は、[いいえ、メンテナンスウィンドウでアップグレードします] を選択できます。

アップグレードが完了すると、[リリースステータス] 列に新しいステータスが表示されます。

クラスター構成に関する情報の取得クラスター構成の詳細を取得するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択し、設定情報を表示するクラスターを選択します。

3. クラスターの詳細ページの [設定] タブで、設定情報を確認します。クラスターのプロパティ、ステータス、データベース、容量、バックアップ、監査ログ、メンテナンス、SSH 処理設定に関する情報を表示できます。

クラスター状態の概要の取得クラスターの [ステータス] タブには、クラスターの状態の概要およびクラスターに関連するイベントの概要が表示されます。また、クラスターに関連付けられた Amazon CloudWatch アラームのリストも表示されます。

クラスター状態の概要を取得するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択し、ステータス情報を表示するクラスターを選択します。

3. [ステータス] タブを選択します。

次のスクリーンショットのような、ステータスの概要ページが表示されます。

35

Amazon Redshift クラスター管理ガイドクラスターのスナップショットの作成

クラスターのスナップショットの作成次に示すように、クラスターの [設定] タブから、クラスターのスナップショットを作成できます。また、Amazon Redshift コンソールのスナップショットパートから、クラスターのスナップショットを作成することもできます。詳細については、「コンソールを使用したスナップショットの管理 (p. 168)」を参照してください。

クラスターのスナップショットを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択し、スナップショットを作成するクラスターを選択します。

3. クラスターの詳細ページの [設定] タブで、[バックアップ] を選択し、[スナップショットの取得] を選択します。

4. [スナップショットの作成] ダイアログボックスで、次の操作を行います。

36

Amazon Redshift クラスター管理ガイドデフォルトのディスク容量アラームの編集

a. [クラスター識別子] ボックスで、スナップショットを作成するクラスターを選択します。b. [スナップショット識別子] ボックスに、スナップショットの名前を入力します。

5. [Create] を選択します。

作成したスナップショットに関する詳細情報と、AWS アカウントのその他のスナップショットを表示するには、Amazon Redshift コンソールの「スナップショット」セクションに移動します。詳細については、「コンソールを使用したスナップショットの管理 (p. 168)」を参照してください。

デフォルトのディスク容量アラームの編集Amazon Redshift クラスターの作成時にデフォルトのディスク容量アラームの作成を選択した場合、アラームを編集できます。たとえば、アラームをトリガーする割合を変更したり、または期間の設定を変更する必要のある場合があります。

デフォルトのディスク容量アラームを編集するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択し、編集するアラームに関連付けられているクラスターを選択します。

3. [ステータス] タブを選択します。4. [CloudWatch アラーム] セクションで、編集するアラームを選択します。

クラスターを起動した際に作成されたデフォルトのディスクアラームは、percentage-disk-space-used-default-<string> で指定されています。 string は Amazon Redshift によってランダムに生成されます。

5. [アラームの編集] ウィンドウで、割合や分など、変更する任意の値を編集します。

37

Amazon Redshift クラスター管理ガイドクラスターパフォーマンスデータの操作

6. アラームが関連付けられている Amazon SNS トピックを変更するには、次のいずれかを実行します。

• 別の既存のトピックを選択する場合は、[Send a notification to (通知の送信先)] リストからトピックを選択します。

• 新しいトピックを作成する場合、[トピックの作成] を選択して、新しいトピック名と受信者のメールアドレスを指定します。

7. [Save] を選択します。

クラスターパフォーマンスデータの操作[パフォーマンス]、[クエリ]、[ロード] の各タブを使って、クラスターパフォーマンスデータを操作できます。クラスターパフォーマンスの操作方法の詳細については、「Amazon Redshift コンソールでパフォーマンスデータを使用する (p. 303)」を参照してください。

AWS SDK for Java を使用したクラスターの管理次の Java コードの例では、下記に示すような一般的なクラスター管理操作をデモンストレーションします。

• クラスターの作成• クラスターに関するメタデータの一覧表示• 構成オプションの変更

作成対象のクラスターに対する要求を開始すると、変更可能になるまで、クラスターは available 状態になります。この例ではループを使用して、describeClusters 方式を使用しているクラスターの状態を定期的にチェックします。クラスターが使用可能になると、クラスターの優先保守ウィンドウが変更されます。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードをアップデートして、クラスターの識別子を指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of

38

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したクラスターの管理

* the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */

// snippet-sourcedescription:[CreateAndModifyCluster demonstrates how to create and modify an Amazon Redshift cluster.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[CreateCluster]// snippet-keyword:[DescribeClusters]// snippet-keyword:[ModifyCluster]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-02-01]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.CreateAndModifyCluster.complete]

package com.amazonaws.services.redshift;

import java.io.IOException;

import com.amazonaws.services.redshift.AmazonRedshift;import com.amazonaws.services.redshift.AmazonRedshiftClientBuilder;import com.amazonaws.services.redshift.model.*;

public class CreateAndModifyCluster {

public static AmazonRedshift client; public static String clusterIdentifier = "***provide a cluster identifier***"; public static long sleepTime = 20;

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient();

try { createCluster(); waitForClusterReady(); describeClusters(); modifyCluster(); describeClusters(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static void createCluster() { CreateClusterRequest request = new CreateClusterRequest() .withClusterIdentifier(clusterIdentifier) .withMasterUsername("masteruser") .withMasterUserPassword("12345678Aa") .withNodeType("ds2.xlarge") .withNumberOfNodes(2) .withClusterSubnetGroupName("subnetgroup1");

Cluster createResponse = client.createCluster(request); System.out.println("Created cluster " + createResponse.getClusterIdentifier());

39

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI および API を

使用してクラスターを管理する

}

private static void describeClusters() { DescribeClustersRequest request = new DescribeClustersRequest() .withClusterIdentifier(clusterIdentifier);

DescribeClustersResult result = client.describeClusters(request); printResult(result); }

private static void modifyCluster() { ModifyClusterRequest request = new ModifyClusterRequest() .withClusterIdentifier(clusterIdentifier) .withPreferredMaintenanceWindow("wed:07:30-wed:08:00");

client.modifyCluster(request); System.out.println("Modified cluster " + clusterIdentifier);

}

private static void printResult(DescribeClustersResult result) { if (result == null) { System.out.println("Describe clusters result is null."); return; }

System.out.println("Cluster property:"); System.out.format("Preferred Maintenance Window: %s\n", result.getClusters().get(0).getPreferredMaintenanceWindow()); }

private static void waitForClusterReady() throws InterruptedException { Boolean clusterReady = false; System.out.println("Wating for cluster to become available."); while (!clusterReady) { DescribeClustersResult result = client.describeClusters(new DescribeClustersRequest() .withClusterIdentifier(clusterIdentifier)); String status = (result.getClusters()).get(0).getClusterStatus(); if (status.equalsIgnoreCase("available")) { clusterReady = true; } else { System.out.print("."); Thread.sleep(sleepTime*1000); } } }}// snippet-end:[redshift.java.CreateAndModifyCluster.complete]

Amazon Redshift CLI および API を使用してクラスターを管理する

次の Amazon Redshift CLI オペレーションを使用して、クラスターを管理できます。

• create-cluster

40

Amazon Redshift クラスター管理ガイドAmazon Virtual Private Cloud

(VPC) でクラスターを管理する

• delete-cluster• describe-clusters• describe-cluster-versions• describe-orderable-cluster-options• modify-cluster• reboot-cluster

次の Amazon Redshift API オペレーションを使用して、クラスターを管理できます。

• CreateCluster• DeleteCluster• DescribeClusters• DescribeClusterVersions• DescribeOrderableClusterOptions• ModifyCluster• RebootCluster

Amazon Virtual Private Cloud (VPC) でクラスターを管理する

トピック• 概要 (p. 41)• VPC でクラスターを作成する (p. 43)• クラスターの VPC セキュリティグループの管理 (p. 44)• Amazon Redshift のクラスターサブネットグループ (p. 45)

概要Amazon Redshift は、クラスターの起動用に EC2-VPC プラットフォームと EC2-Classic プラットフォームの両方をサポートしています。詳細については、「クラスターの起動用にサポートされているプラットフォーム (p. 11)」を参照してください。

Note

Amazon Redshift は、専用テナンシー VPC へのクラスターの起動をサポートします。詳細については、『Amazon VPC ユーザーガイド』の「専有インスタンス」を参照してください。

VPC にクラスターをプロビジョニングするときは、次の操作を行います。

• VPC 情報を指定する

VPC 内にクラスターを作成するように Amazon Redshift にリクエストするときは、まずクラスターサブネットグループを作成してから、VPC ID などの VPC 情報、および VPC 内のサブネットのリストを指定する必要があります。クラスターの起動時に、Amazon Redshift が VPC 内のいずれかのサブネットにクラスターをプロビジョニングできるように、クラスターサブネットグループを指定します。AmazonRedshift でサブネットグループを作成する方法の詳細については、『Amazon Redshift のクラスターサ

41

Amazon Redshift クラスター管理ガイド概要

ブネットグループ (p. 45)』を参照してください。VPC の設定の詳細については、『Amazon VPC 入門ガイド』の「Amazon VPC の使用開始」を参照してください。

• オプションで、パブリックにアクセス可能にするオプションを設定します。

パブリックにアクセス可能となるようにクラスターを設定する場合、外部 IP アドレスで使用するために、Elastic IP アドレス (EIP) をオプションで選択できます。EIP は AWS アカウントに関連付けられた静的 IP アドレスです。VPC 外からクラスターに接続するために EIP を使用できます。EIP を使用すると、クライアントがクラスターに接続するために使用する IP アドレスに影響を与えることなく、基本的な設定を変更することができます。このアプローチは、障害発生後の復旧などの状況に役立ちます。

独自の AWS アカウントに関連付けられている EIP を使用する場合、Amazon Redshift クラスターを起動する前に Amazon EC2 で作成する必要があります。そうしない場合、起動プロセスで使用できません。Amazon Redshift に、VPC で使用する EIP を設定させることもできますが、割り当てられる EIP はAmazon Redshift サービスによって管理されるため、AWS アカウントに関連付けられません。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Elastic IP アドレス (EIP)」を参照してください。

VPC にパブリックにアクセス可能なクラスターがあり、VPC 内からプライベート IP アドレスを使用して接続する場合は、次の VPC パラメータを true に設定する必要があります。• DNS resolution

• DNS hostnames

VPC にパブリックにアクセス可能なクラスターがあっても、VPC 内でそれらのパラメータを true に設定しない場合は、VPC 内からの接続はプライベート IP アドレスではなくクラスターの EIP に解決されます。VPC 内から接続する際には、これらのパラメータを true に設定し、パブリックにアクセス可能なクラスターにプライベート IP アドレスを使用することをお勧めします。詳細については、『Amazon VPC ユーザーガイド』の「VPC での DNS の使用」を参照してください。

Note

VPC 内にパブリックにアクセス可能な既存のクラスターがある場合は、VPC 内からの接続は、クラスターのサイズを変更するまで、それらのパラメータが設定されていてもそのクラスターに接続するために EIP を使用し続けます。すべての新しいクラスターは、同じ VPC 内からパブリックにアクセス可能なクラスターに接続する際にプライベート IP アドレスを使用する、という新しい動作に従います。

EIP は、VPC の外にあるクラスターにアクセスするための IP アドレスですが、[SSH 取り込み設定] の下の Amazon Redshift console に表示されているクラスターノードパブリック IP アドレスおよびプライベート IP アドレスに関連していません。パブリックおよびプライベートクラスターノードの IP アドレスは、クラスターがパブリックにアクセス可能であるかどうかに関係なく表示されます。それらは、Amazon EC2 インスタンスまたは Secure Shell (SSH) の接続を使用するその他のリモートホストからデータをロードする際に、リモートホスト上で Ingress ルールを設定するための特定の状況でのみ使用されます。詳細については、『Amazon Redshift Database Developer Guide』の「ステップ 1: クラスターのパブリックキーとクラスターノードの IP アドレスの取得」を参照してください。

クラスターを EIP に関連付けるオプションは、クラスターを作成するときは、スナップショットからクラスターを復元するときのみ使用できます。クラスターが作成または復元された後、EIP をアタッチすることはできません。クラスターを EIP に関連付けたり、クラスターに関連付けられた EIP を変更する場合、スナップショットからクラスターを復元し、その時点で EIP を指定する必要があります。

• VPC セキュリティグループを関連付けます。

次に、VPC セキュリティグループを使用してインバウンドアクセスを許可します。この VPC セキュリティグループは、SQL クライアント ツールを使用して接続できるように、クラスターへのデータベースポート経由でのアクセスを許可する必要があります。これは、事前に設定するか、クラスターを起動した後ルールを追加できます。詳細については、『Amazon VPC ユーザーガイド』の「VPC のセキュリティ」を参照してください。Amazon Redshift クラスターセキュリティグループを使用して、クラスターへのインバウンドアクセスを許可することはできません。

42

Amazon Redshift クラスター管理ガイドVPC でクラスターを作成する

VPC 内でのクラスターの使用に関する詳細については、「VPC でクラスターを作成する (p. 43)」を参照してください。

VPC 内のクラスターのスナップショットを復元する

VPC 内のクラスターのスナップショットは、VPC の外部ではなく VPC の内部でのみ復元できます。これらは、アカウント内の同じ VPC または別の VPC 内で復元できます。スナップショットの詳細については、Amazon Redshift スナップショット (p. 159) を参照してください。

VPC でクラスターを作成するVPC 内にクラスターをデプロイするための通常のステップは、次のとおりです。

VPC でクラスターを作成するには

1. VPC を設定します。

クラスターは、アカウントのデフォルトの VPC 内 (アカウント内に VPC がある場合)、または作成した VPC 内に作成できます。詳細については、「クラスターの起動用にサポートされているプラットフォーム (p. 11)」を参照してください。VPC を作成するには、『Amazon Virtual Private Cloud 入門ガイド』のステップ 2 および 3 を実行してください。VPC 識別子、サブネット、およびサブネットのアベイラビリティーゾーンを書きとめておきます。クラスターの起動時にこれらの情報が必要になります。

Note

次のステップでサブネットをクラスターサブネットグループに追加できるように、VPC 内に少なくとも 1 つのサブネットが定義されている必要があります。VPC ウィザードを使用する場合は、VPC のサブネットが自動的に作成されます。VPC へのサブネットの追加の詳細については、「サブネットを VPC に追加するには」を参照してください。

2. Amazon Redshift クラスターで使用できる VPC 内のサブネットを指定する Amazon Redshift クラスターサブネットグループを作成します。

クラスターサブネットグループは、Amazon Redshift コンソールを使用するか、またはプログラムで作成することができます。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 45)」を参照してください。

3. クラスターに関連付ける VPC セキュリティグループ内のインバウンド接続に対して、アクセスを許可します。

VPC の外部 (パブリックインターネット上) のクライアントがクラスターに接続できるようにするには、クラスターの起動時に使用したポートへのインバウンドアクセスを許可する VPC セキュリティグループに、クラスターを関連付ける必要があります。セキュリティグループルールの例については、『Amazon VPC ユーザーガイド』の「セキュリティグループのルール」を参照してください。

4. VPC でクラスターを起動します。

入門ガイドで説明されている手順を使用して、VPC でクラスターを起動できます。詳細については、「ステップ 2: クラスターを起動する」を参照してください。ウィザードに従って、[ADDITIONALCONFIGURATION (追加設定)] ページの [Configure Network Options (ネットワークオプションの設定)] に次の情報を指定します。

• [VPC の選択]: ドロップダウンリストから VPC を選択します。• [クラスターサブネットグループ]: ステップ 2 で作成したクラスターサブネットグループを選択しま

す。• [パブリックアクセス可能]: パブリックインターネットからアクセスできるパブリック IP アドレスを

クラスターに指定する場合は [はい]、VPC 内からのみアクセスできるプライベート IP アドレスをクラスターに指定する場合は [いいえ] を選択します。AWS アカウントで EC2-Classic クラスターを作成できる場合、デフォルトは「No」、それ以外の場合、デフォルトは「Yes」になります。

43

Amazon Redshift クラスター管理ガイドクラスターの VPC セキュリティグループの管理

• [パブリック IP アドレスの選択] 既に設定した Elastic IP (EIP) アドレスを選択する場合は、[ はい]を選択します。それ以外の場合、Amazon Redshift にインスタンス の EIP を作成させるために、[いいえ] を選択します。

• [Elastic IP ] VPC の外からクラスターへの接続に使用するために EIP を選択します。• [アベイラビリティーゾーン] Amazon Redshift にクラスターが作成されるアベイラビリティーゾー

ンを選択させるには、[指定なし ] を選択します。そうでない場合、特定のアベイラビリティーゾーンを選択します。

• クラスターへの承認済みデバイスのアクセスを許可する VPC セキュリティグループを選択します。

以下は、[ADDITIONAL CONFIGURATION (追加設定)] ページの [Configure Networking Options (ネットワークオプションの設定)] セクションのスクリーンショットの例です。

これで、クラスターを使用する準備ができました。入門ガイドのステップに従って、サンプルデータをアップロードし、サンプルクエリを試行することにより、クラスターをテストできます。

クラスターの VPC セキュリティグループの管理Amazon Redshift クラスターをプロビジョニングすると、デフォルトではロックされているため、誰もアクセスすることはできません。他のユーザーに Amazon Redshift クラスターへのインバウンドアクセスを許可するには、クラスターをセキュリティグループに関連付けます。EC2-VPC プラットフォームでは、既存の Amazon VPC セキュリティグループを使用するか、次に示すように新しいグループを定義してクラスターに関連付けることができます。EC2-Classic プラットフォームでは、クラスターセキュリティグループを定義し、そのグループをクラスターに関連付けます。EC2-Classic プラットフォームでのクラスターセキュリティグループの使用の詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

VPC セキュリティグループは、使用中のクラスターなど、VPC 上のインスタンスへのアクセスを制御しているルールのセットで構成されます。個別のルールのセットは、IP アドレスの範囲または他の VPC セキュリティグループに基づいてアクセスします。VPC セキュリティグループをクラスターに関連付けると、VPC セキュリティグループで定義されているルールがクラスターへのアクセスを制御します。

EC2-VPC プラットフォーム上でプロビジョニングする各クラスターには、1 つ以上の Amazon VPC セキュリティグループが関連付けられます。Amazon VPC は、デフォルトという VPC セキュリティグループを提供します。これは VPC を作成するときに自動的に作成されます。VPC で起動するクラスターは、そのクラスターの作成時に別の VPC セキュリティグループを指定しない限り、それぞれがデフォルトのVPC セキュリティグループに自動的に関連付けられます。クラスターの作成時にクラスターに VPC セキュリティグループを関連付けるか、または後でクラスターを変更して VPC セキュリティグループを関連付けることができます。VPC セキュリティグループとクラスターの関連付けの詳細については、「[クラスターの起動] を使用したクラスターの作成 (p. 22)」および「クラスターを変更するには (p. 29)」を参照してください。

次の表では、デフォルトの VPC セキュリティグループ用のデフォルトルールについて説明します。

44

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

Amazon Redshift クラスターで、必要に応じてデフォルトの VPC セキュリティグループのルールを変更できます。

デフォルトの VPC セキュリティグループだけで十分であれば、さらにグループを作成する必要はありません。ただし、オプションでクラスターへのインバウンドアクセスをより適切に管理するために、追加のVPC セキュリティグループを作成できます。たとえば、Amazon Redshift クラスターでサービスを実行していて、顧客に複数の異なるサービスレベルを提供しているとします。すべてのサービスレベルに同じアクセス権を与えたくない場合は、サービスレベルごとに別の VPC セキュリティグループ (サービスレベルごとに 1 つ) を作成することをお勧めします。その後、それらの VPC セキュリティグループをクラスターに関連付けることができます。

VPC あたり最大 100 の VPC セキュリティグループを作成でき、VPC セキュリティグループは多くのクラスターと関連付けることができますが、特定のクラスターに関連付けることができる VPC セキュリティグループは、最大 5 つのみであることに注意してください。

Amazon Redshift では、VPC セキュリティグループへの変更は直ちに適用されます。そのため、VPC セキュリティグループをクラスターに関連付けると、更新された VPC セキュリティグループのインバウンドクラスターアクセスルールは即座に適用されます。

VPC セキュリティグループの作成と変更は、https://console.aws.amazon.com/vpc/ で行うことができます。AWS CLI、AWS EC2 CLI、および Windows PowerShell 用 AWS ツールを使用して、VPC セキュリティグループをプログラムで管理することもできます。VPC セキュリティグループの操作の詳細については、『Amazon VPC ユーザーガイド』の「VPC のセキュリティグループ」を参照してください。

Amazon Redshift のクラスターサブネットグループ概要Virtual Private Cloud (VPC) でクラスターをプロビジョニングする場合は、クラスターサブネットグループを作成します。VPC に関する詳細については、Amazon Virtual Private Cloud (Amazon VPC) の製品詳細ページを参照してください。

VPC は、セキュリティおよびオペレーションのニーズに基づいたリソースのグループ化を可能にする 1つまたは複数のサブネット (VPC 内の IP アドレスのサブセット) を持つことができます。クラスターサブネットグループにより、VPC 内にサブネットセットを指定できます。クラスターをプロビジョニングするとき、サブネットグループを指定すると、Amazon Redshift によってグループ内のサブネットの 1 つにクラスターが作成されます。

VPC の作成の詳細については、Amazon VPC ユーザーガイド ドキュメントを参照してください。

サブネットグループを作成したら、以前に追加したサブネットを削除したり、サブネットを追加したりできます。Amazon Redshift は、クラスターサブネットグループを作成、変更、または削除するための APIを提供します。これらの操作はコンソールで実行することもできます。

コンソールを使用したクラスターサブネットグループの管理このセクションでは、Amazon Redshift コンソールを使用してクラスターサブネットグループを管理する方法について説明します。クラスターサブネットグループの作成、既存のクラスターサブネットグループの管理、またはクラスターサブネットグループの削除を行うことができます。このようなタスクはすべ

45

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

て、クラスターサブネットグループリストから開始されます。管理を行う場合は、対象とするクラスターサブネットグループを選択する必要があります。

以下に例示したクラスターサブネットグループリストには、クラスターサブネットグループが 1 つ表示されています。デフォルトでは、AWS アカウントに対して定義されたクラスターサブネットグループは存在しません。my-subnet-group が選択(強調表示)されているので、編集または削除ができます。選択したクラスターサブネットグループの詳細は、[Cluster Subnet Group Details (クラスターサブネットグループの詳細)] の下に表示されます。

クラスターサブネットグループの作成

VPC でクラスターをプロビジョニングするには、クラスターサブネットグループが少なくとも 1 つ定義されている必要があります。

クラスターサブネットグループを作成する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] をクリックします。3. [サブネットグループ] タブで、[サブネットグループ] をクリックします。

4. [クラスターサブネットグループの作成] ダイアログボックスで、グループにサブネットを追加します。

a. クラスターサブネットグループの [名前]、[説明]、および [VPC ID] を指定します。b. 以下のいずれかの操作を実行して、グループにサブネットを追加します。

• [すべてのサブネットを追加] リンクをクリックするか、

46

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

• [アベイラビリティーゾーン] および [サブネット ID] のボックスを使用して特定のサブネットを選択し、[追加] をクリックします。

以下の例に、1 つのサブネットグループで定義されたクラスターサブネットグループを示します。

5. [はい、作成する] をクリックします。

クラスターサブネットグループのリストに新しいグループが表示されます。

クラスターサブネットグループの変更

クラスターサブネットグループを変更する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] をクリックします。3. クラスターサブネットグループリストの [サブネットグループ] タブで、変更するグループの行をク

リックし、[編集] をクリックします。

以下の例では、subnetgroup2 が変更対象のクラスターサブネットグループです。

4. [Cluster Subnet Group Details (クラスターサブネットグループの詳細)] で、以下の操作のいずれかを実行します。

目的 操作

1 つまたは複数のサブネットをグループに追加します。

個々のサブネットを選択するには、[アベイラビリティーゾーン]および [サブネット ID] のボックスを使用するか、[すべてのサブネットを追加] をクリックします。

47

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

目的 操作

[Save] をクリックします。

グループからサブネットを削除します。

グループで使用しているサブネットのリストで、削除するサブネットの横にある [削除] をクリックします。

[Save] をクリックします。

クラスターサブネットグループの削除

クラスターで使用されているクラスターサブネットグループは削除できません。

クラスターサブネットグループを削除する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] をクリックします。3. クラスターサブネットグループリストの [サブネットグループ] タブで、削除するグループの行をク

リックします。

以下の例では、my-subnet-group が削除対象のクラスターサブネットグループです。

4. [クラスターサブネットグループの削除] ダイアログボックスで、[削除] をクリックします。

48

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

AWS SDK for Java を使用したクラスターサブネットグループの管理以下の Java コードの例では、クラスターサブネットに対する一般的な操作を示します。

• クラスターサブネットグループの作成• クラスターサブネットグループに関するメタデータの一覧表示• クラスターサブネットグループの変更

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードを更新し、クラスターサブネットグループ名と 2 つのサブネット識別子を指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[CreateAndModifyClusterSubnetGroup demonstrates how to create and modify an Amazon Redshift subnet group.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[CreateClusterSubnetGroup]// snippet-keyword:[DescribeClusterSubnetGroups]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-02-01]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.CreateAndModifyClusterSubnetGroup.complete]package com.amazonaws.services.redshift;

import java.io.IOException;import java.util.ArrayList;import java.util.List;

import com.amazonaws.services.redshift.model.*;

public class CreateAndModifyClusterSubnetGroup {

public static AmazonRedshift client; public static String clusterSubnetGroupName = "subnet-group-name"; // You can use the VPC console to find subnet IDs to use. public static String subnetId1 = "***provide a subnet ID****"; public static String subnetId2 = "***provide a subnet ID****";

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain}

49

Amazon Redshift クラスター管理ガイドクラスターサブネットグループ

client = AmazonRedshiftClientBuilder.defaultClient();

try { createClusterSubnetGroup(); describeClusterSubnetGroups(); modifyClusterSubnetGroup(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static void createClusterSubnetGroup() { CreateClusterSubnetGroupRequest request = new CreateClusterSubnetGroupRequest() .withClusterSubnetGroupName(clusterSubnetGroupName) .withDescription("my cluster subnet group") .withSubnetIds(subnetId1); client.createClusterSubnetGroup(request); System.out.println("Created cluster subnet group: " + clusterSubnetGroupName); }

private static void modifyClusterSubnetGroup() { // Get existing subnet list. DescribeClusterSubnetGroupsRequest request1 = new DescribeClusterSubnetGroupsRequest() .withClusterSubnetGroupName(clusterSubnetGroupName); DescribeClusterSubnetGroupsResult result1 = client.describeClusterSubnetGroups(request1); List<String> subnetNames = new ArrayList<String>(); // We can work with just the first group returned since we requested info about one group. for (Subnet subnet : result1.getClusterSubnetGroups().get(0).getSubnets()) { subnetNames.add(subnet.getSubnetIdentifier()); } // Add to existing subnet list. subnetNames.add(subnetId2);

ModifyClusterSubnetGroupRequest request = new ModifyClusterSubnetGroupRequest() .withClusterSubnetGroupName(clusterSubnetGroupName) .withSubnetIds(subnetNames); ClusterSubnetGroup result2 = client.modifyClusterSubnetGroup(request); System.out.println("\nSubnet group modified."); printResultSubnetGroup(result2); }

private static void describeClusterSubnetGroups() { DescribeClusterSubnetGroupsRequest request = new DescribeClusterSubnetGroupsRequest() .withClusterSubnetGroupName(clusterSubnetGroupName);

DescribeClusterSubnetGroupsResult result = client.describeClusterSubnetGroups(request); printResultSubnetGroups(result); }

private static void printResultSubnetGroups(DescribeClusterSubnetGroupsResult result) { if (result == null) { System.out.println("\nDescribe cluster subnet groups result is null."); return; }

for (ClusterSubnetGroup group : result.getClusterSubnetGroups()) { printResultSubnetGroup(group); }

50

Amazon Redshift クラスター管理ガイドクラスターバージョンの履歴

} private static void printResultSubnetGroup(ClusterSubnetGroup group) { System.out.format("Name: %s, Description: %s\n", group.getClusterSubnetGroupName(), group.getDescription()); for (Subnet subnet : group.getSubnets()) { System.out.format(" Subnet: %s, %s, %s\n", subnet.getSubnetIdentifier(), subnet.getSubnetAvailabilityZone().getName(), subnet.getSubnetStatus()); } }}// snippet-end:[redshift.java.CreateAndModifyClusterSubnetGroup.complete]

Amazon Redshift の CLI および API を使用したクラスターサブネットグループの管理以下の Amazon Redshift CLI 操作を使用してクラスターサブネットグループを管理できます。

• create-cluster-subnet-group• delete-cluster-subnet-group• describe-cluster-subnet-groups• modify-cluster-subnet-group

以下の Amazon Redshift API を使用してクラスターサブネットグループを管理できます。

• CreateClusterSubnetGroup• DeleteClusterSubnetGroup• DescribeClusterSubnetGroups• ModifyClusterSubnetGroup

クラスターバージョンの履歴クラスターバージョンについてのメモを Amazon Redshift で確認します。

バージョン 1.0.9459、1.0.9734、または 1.0.9761期間: 2019 年 8 月 22 日~9 月 12 日

特徴と改善点

• Amazon Redshift: 自動ワークロード管理 (自動 WLM) でクエリ優先度がサポートされるようになり、ユーザーはワークロードまたはユーザーグループの相対的な重要性に基づいて、クエリの受け入れとリソースの割り当てに優先度を付けることができます。

• Amazon Redshift: テーブルがすべてのコンピューティングノードに配信されるときの結合オペレーションを含むクエリのパフォーマンスの向上。

• Redshift Spectrum: 列リストを指定する AWS Lake Formation の外部テーブルの GRANT およびREVOKE ステートメントの構文を更新。

修正内容

• クエリがで 100 を超える列を指定する PARTITION BY 句を持つウィンドウ関数を使用する場合のエラーを修正。

51

Amazon Redshift クラスター管理ガイドバージョン 1.0.9003 または 1.0.9041

バージョン 1.0.9003 または 1.0.9041期間: 2018 年 7 月 31 日~8 月 22 日

特徴と改善点

• Amazon Redshift: ワークロード管理 (WLM) キューでクエリの待機にかかった合計時間をモニタリングするための新しいメトリクス、WLMQueueWaitTime を追加。

• Amazon Redshift: スナップショットの復元と並行して実行する場合の COPY パフォーマンスの強化。• Amazon Redshift: APPROXIMATE COUNT (DISTINCT <column>) を使用するクエリのパフォーマンス

の強化。

修正内容

• stl_querytext、stl_utilitytext、stl_ddltext、svl_statementtext などのシステムテーブルまたはビューのいずれかから元の SQL ステートメントを正しく再構築するための修正。

• 列データ形式からの COPY では、テーブル名に特殊文字を使用できます。• PG_TABLE_DEF が誤ってインデックスを一覧表示する問題を修正。

バージョン1.0.8610、1.0.8727、1.0.8815、1.0.8901、または1.0.8995期間: 2019 年 7 月 10 日~7 月 31 日

特徴と改善点

• Amazon Redshift: Advisor は、最もメリットが得られるテーブルに適切な分散キーを適用するための推奨事項を提供するため、パフォーマンスが大幅に向上します。

• Amazon Redshift: スナップショットの復元と並行して実行する場合の COPY パフォーマンスの強化。• Amazon Redshift: Amazon Redshift では、SQL ストアドプロシージャ内のトランザクション (例:

COMMIT および ROLLBACK) がサポートされるようになりました。• Amazon Redshift: 空のテーブルで、以前は統計がなかったため、EXPLAIN コマンドには、ANALYZE を

実行することを推奨していました。誤解を招く推奨事項に対処しました。• Amazon Redshift: Amazon Redshift では、JDBC での SHOW PROCEDURE コマンドのサポートを追

加。• Redshift Spectrum: 外部テーブルにアクセスするときに述語でパラメータを使用する準備済みステート

メントのパフォーマンスが向上。

修正内容

• Amazon Redshift では percentile_disc を集計としてサポートしていないことをユーザーに示すエラーメッセージを修正。現在、ユーザーは percentile_disc を使用するか、ウィンドウ関数percentile_disc と空のパーティショニング関数を併用できます。

バージョン 1.0.8058、1.0.8123、1.0.8205、または1.0.8360

52

Amazon Redshift クラスター管理ガイドバージョン 1.0.7657、1.0.7767、1.0.7804、

または 1.0.8187

期間: 2019 年 6 月 13 日〜7 月 10 日

特徴と改善点

• Amazon Redshift: COMPUPDATE PRESET を新しいデフォルトのパラメータとして提供して COPY コマンドを使用し、空のテーブルへの取り込みのパフォーマンスを強化しました。

• Amazon Redshift: クエリの実行中に分散を必要とする複数のテーブル間の結合のパフォーマンスを強化しました。

• Amazon Redshift: クラスターで負荷の大きいワークロードを処理する際の Amazon Redshift コンソールの [クエリ] タブのパフォーマンスが向上しました。

• Amazon Redshift: 大きな VARCHAR 列を含む集約クエリに対するパフォーマンスを大幅に強化しました。

• Amazon Redshift: ALTER TABLE を使用して既存の EVEN および KEY 分散テーブルに新しい分散キーを適用できます。

• Amazon Redshift: ALTER TABLE コマンドを使用して、VARCHAR 列のサイズを小さくできるようになりました。

バージョン 1.0.7657、1.0.7767、1.0.7804、または1.0.8187期間: 2019 年 5 月 22 日〜6 月 12 日

特徴と改善点

• Amazon Redshift: ALTER TABLE コマンドを使用して、VARCHAR 列のサイズを大きくできるようになりました。

• Amazon Redshift: コンパイルされたコードセグメントを大規模にキャッシュしたことで、クエリパフォーマンスが大幅に向上しました。

• Amazon Redshift: クラスターで負荷の大きいワークロードを処理する際の Amazon Redshift コンソールの [クエリ] タブのパフォーマンスが向上しました。

• Amazon Redshift: 多くの列で DISTINCT を含むクエリのパフォーマンスが向上しました。• Redshift Spectrum: Spectrum を使用して外部テーブルを参照する UNLOAD およびクエリが同時実行ス

ケーリングの対象になりました。

修正内容

• JDBC ドライバを使用して外部データベースを削除する場合の DROP DATABASE を修正。

バージョン 1.0.7287、1.0.7464、1.0.7562期間: 2019 年 4 月 24 日~5 月 22 日

特徴と改善点

• Amazon Redshift: ワークロード管理 (WLM) は、デフォルトキューのクエリを実行するために必要なリソースを自動的に管理するようになりました。自動 WLM は、今後のリリースで、すべてのリージョンにデプロイされる予定です。

• Amazon Redshift: PL/pgSQL 言語でのストアドプロシージャのサポート。• Amazon Redshift: EXTRACT()、DATEPART()、および DATEDIFF() を使用する際の日付およびタイムス

タンプ値のパフォーマンス向上。

53

Amazon Redshift クラスター管理ガイドバージョン 1.0.6882、1.0.7075、1.0.7078、1.0.7152

修正内容

• 特定のデータタイプで集計プッシュダウンが UNION ALL 演算子の下になる問題を修正しました。• REGEXP_REPLACE() のエラー処理を改善しました。

バージョン 1.0.6882、1.0.7075、1.0.7078、1.0.7152期間: 2019 年 4 月 3 日~5 月 1 日

特徴と改善点

• Amazon Redshift: Amazon S3 にアンロードされたテキストファイルおよび CSV ファイルに Zstandard圧縮を適用するための UNLOAD コマンドが拡張されました。

• Amazon Redshift: ORDER BY 句に定数があるときの ORDER BY 処理のパフォーマンスが向上しました。

• Redshift Spectrum: Amazon Redshift クラスターとは異なるリージョンの Amazon S3 データにアクセスするときのエラーレポートが改善されました。

• Redshift Spectrum: ファイルレベルの統計を使用して、Amazon S3 の ORC 形式の外部テーブルに対するクエリのパフォーマンスが機能強化されました。

修正内容

• クエリプランニング中のユーザー割り込みの処理が改善されました。• 遅延バインドビューでの「ERROR: テーブル <id> が同時トランザクションによって削除されました」

が許容されます。• 特定のクエリの IS NOT NULL ハンドリングの問題を修正しました。• LEFT OUTER JOIN クエリのカーディナリティの問題を修正しました。

バージョン1.0.6527、1.0.6630、1.06670、1.0.6761、1.0.6805期間: 2019 年 3 月 13 日~4 月 5 日

特徴と改善点

• Amazon Redshift: 伸縮自在にクエリ処理力を自動でスケーリングして一貫性のある高速パフォーマンスを提供し、何百ものクエリを同時に処理できるようになりました。同時実行スケーリングのリソースが増加するにつれ、ご利用の Amazon Redshift クラスターに数秒で透過的に追加されるため、待機することなくクエリを処理できます。

• Amazon Redshift: CSV 形式の 1 つ以上のテキストファイルに対するクエリの結果を Amazon S3 にUNLOAD できるようになりました。

• Amazon Redshift: COPY コマンドを使用して、ZSTD 圧縮ファイルからデータをロードできます。• Amazon Redshift: TO_DATE() および TO_TIMESTAMP() 関数で、新しい形式フィールドが受け入れられ

るようになりました。

修正内容

• ユーザー定義関数の引数が NULL の場合のクエリの問題を修正しました。• LIKE 述語が使用された場合のクエリの問題を修正しました。• SET オペレーションを使用したクエリのデータ型が一致しない問題を修正しました。

54

Amazon Redshift クラスター管理ガイドバージョン

1.0.6145、1.0.6230、1.0.6246、1.0.6431、1.0.6476、1.0.6754

バージョン1.0.6145、1.0.6230、1.0.6246、1.0.6431、1.0.6476、1.0.6754期間: 2019 年 2 月 20 日~3 月 21 日

特徴と改善点

• Amazon Redshift: NOT IN ハッシュ結合を含むクエリの Redshift オプティマイザを強化することで、パフォーマンスが大幅に向上しました。

• Amazon Redshift: 定数入力式での LEAST() および GREATEST() の処理が最適化されました。• Amazon Redshift: 最適化されたデータ転送プロトコルによって従来のサイズ変更が高速なりました。• Amazon Redshift: Bloom フィルターによって一致しない行を早期に削除することで結合パフォーマンス

が向上しました。• Amazon Redshift Spectrum: Spectrum Request Accelerator が自動的かつ透過的に有効になり、Amazon

S3 のデータに対するクエリのパフォーマンスが大幅に向上しています。

修正内容

• 外部結合の述語プッシュダウン処理に関する問題を修正しました。

バージョン 1.0.5749, 1.0.5833期間: 2019 年 1 月 23 日~2 月 20 日

特徴と改善点

• Amazon Redshift: 自動分析により、テーブルデータの変更範囲に基づいてテーブルの統計の収集が優先されるようになりました。最新の統計により、システムの全体的なパフォーマンスが向上します。

• Amazon Redshift: APPROXIMATE COUNT DISTINCT アルゴリズムの精度が向上しました。• Amazon Redshift:クエリの同時実行数が 0 に設定されている場合の ROLLBACK 処理の弾力性が向上し

ました。

修正内容

• REGEXP_SUBSTR() などの REGEX 関数を処理するときの問題を修正しました。• SET オペレーションを使用したクエリのデータ型が一致しない問題を修正しました。• 関数 pg_get_late_binding_view_cols() の問題を修正しました。

バージョン 1.0.5494, 1.0.5671期間: 2019 年 1 月 2 日~1 月 23 日

特徴と改善点

• Amazon Redshift: Amazon Redshift 通信レイヤーのパフォーマンスが大幅に向上しました。• Amazon Redshift: クエリ実行中に内部一時テーブルを作成する、複雑なクエリのパフォーマンスが大幅

に向上しました。• Redshift Spectrum: Spectrum は対象ファイルに埋め込まれた統計に基づいて、Parquet ファイルと ORC

ファイルの行グループのフィルタリングをサポートするようになりました。

55

Amazon Redshift クラスター管理ガイドバージョン 1.0.5122、1.0.5290、1.0.5463

• Redshift Spectrum: Parquet ファイル形式から SMALLINT 列タイプをコピーすることができます。

修正内容

• UNLOAD コマンドを MANIFEST オプションと一緒に使用した場合の問題を修正しました。• 外部結合の述語プッシュダウン処理に関する問題を修正しました。

バージョン 1.0.5122、1.0.5290、1.0.5463期間: 2018 年 12 月 3 日–12 月 24 日

特徴と改善点

• Amazon Redshift: より効果的なメモリ利用により、ハッシュベースの集計パフォーマンスが向上しました。

• Amazon Redshift: 冗長な IN サブクエリを排除することにより、クエリのパフォーマンスが向上しました。

• Amazon Redshift: 外部結合を使用するクエリのパフォーマンスが向上しました。• Amazon Redshift: 大規模クラスターのサイズ変更のパフォーマンスが向上しました。• Amazon Redshift: ハッシュ結合オペレーション中に、大規模なハッシュテーブルを作成する必要がある

クエリのパフォーマンスが向上しました。• Redshift Spectrum: Amazon Redshift は DROP SCHEMA コマンドで DROP EXTERNAL DATABASE 句

を含めることにより、外部データベースの削除をサポートするようになりました。• Redshift Spectrum: RedshiftSpectrum は対象ファイルに埋め込まれた統計に基づいて、Parquet ファイ

ルと ORC ファイルの行グループのフィルタリングをサポートするようになりました。

修正内容

• 最大長の varchar 列を含むテーブルの S3 への UNLOAD に関する問題を修正しました。• 基礎となるテーブル構造が 'ALTER TABLE ADD COLUMN' によって変更されたときに、ビューに対する

特定のクエリが失敗する可能性がある問題を修正しました。• 50 パーセンタイルを計算するときの PERCENTILE_CONT() ウィンドウ関数の問題を修正しました。• 特定のサブクエリで LIMIT 句が無視されていたクエリの問題を修正しました。• Parquet ファイルをコピーするときの VARCHAR 列の NULL 値の処理に関する問題を修正しました。

バージョン 1.0.4789、1.0.4852、1.0.4896、1.0.4936期間: 2018 年 10 月 31 日–11 月 21 日

特徴と改善点

• Amazon Redshift:Amazon Redshift は、新しい自動分析機能を介して、クラスター上のテーブル統計を自動的に更新するようになりました。最新の統計は、クエリプランナーが最適なプランを選択し、クエリをより速く実行するのに役立ちます。自動分析は今後のリリースで、すべてのリージョンで展開される予定です。

• Amazon Redshift: 新規に作成されたテーブルのデフォルトに DISTSTYLE AUTO 配信スタイルが追加されました。DISTSTYLE AUTO で、Amazon Redshift テーブルサイズに基づいて最適な配信スタイルを判断するようになりました。

• Amazon Redshift: VACUUM DELETE は行の削除により解放された容量を取り戻すために、バックグラウンドで自動的に実行するようになりました。自動 VACUUM DELETE は今後のリリースで、すべてのリージョンで展開される予定です。

56

Amazon Redshift クラスター管理ガイドバージョン 1.0.4349、1.0.4515

• Amazon Redshift: 内部テーブル結合キー列が主キーである場合の、特定のハッシュ結合のパフォーマンスが向上しました。

• Amazon Redshift: 選択的結合をサブクエリにプッシュダウンするクエリ書き直しを使用することにより、パフォーマンスが大幅に向上しました。

• Amazon Redshift: 情報制約を利用して GROUP BY 処理を最適化しました。• Amazon Redshift: REGION パラメータを使用したクロスリージョン UNLOAD のサポートを追加しまし

た。• Amazon Redshift: MANIFEST VERBOSE オプションが UNLOAD コマンドで使用されている場合に、マ

ニフェストの著者が Redshift であることとマニフェストのバージョン情報を示す追加情報をマニフェストに追加しました。

• Amazon Redshift: 実行中のサイズ変更のキャンセルサポートを追加しました。• Amazon Redshift: タイムゾーン情報を Time Zone Database バージョン 2018 に更新しました。• Redshift Spectrum: ネストされたデータのクエリサポートが拡張され、配列の配列とマップの配列をサ

ポートします。• Redshift Spectrum: 配列を含めるために Redshift Spectrum でマップデータ型のサポートを追加しまし

た。

修正内容

• SVV_COLUMNS を介したクエリを使用して、複雑なビューが多数処理されるときのメモリ使用率が向上しました。

• ネストされた外部テーブルで 'orc.schema.resolution' テーブルプロパティを使用するときの問題を修正しました。

• ネストされた外部テーブルをスキャンする INSERT INTO クエリに関する問題を修正しました。

バージョン 1.0.4349、1.0.4515期間: 2018 年 10 月 10 日–10 月 31 日

特徴と改善点

• Amazon Redshift: UNLOAD コマンドで VERBOSE オプションを指定して、マニフェスト内に追加のスキーマおよびメタデータ情報を生成できるようになりました。

• Amazon Redshift: AWS コンソールでのマルチパートクエリのコンポーネントを管理 (参照とキャンセル) できるようになりました。

• Amazon Redshift: クエリプランニング中のデータ再分散戦略の最適化により、パフォーマンスが大幅に向上しました。

• Redshift Spectrum: 拡張された VPC のルーティングを使用する用設定された Amazon Redshift クラスターを持つ Redshift Spectrum を使用できるようになりました。

• Redshift Spectrum: 遅延バインドビューのメタデータを取得するときのパフォーマンスが向上しました。

• Redshift Spectrum: Redshift Spectrum クエリで ILIKE および NOT ILIKE 関数を使用する際のパフォーマンスが向上しました

• Redshift Spectrum: ALTER TABLE ADD PARTITION で複数のパーティションの一括作成をサポートするようになりました。これにより、多くのパーティションを持つテーブルをより速くより便利に管理できます。

修正内容

• クラスターに結合ビューがある場合に svv_columns に対するクエリがエラーを返す可能性があった問題を修正しました。

57

Amazon Redshift クラスター管理ガイドバージョン 1.0.3945、1.0.4081、1.0.4222

• TIMESTAMP から CHAR または VARCHAR への特定の変換でミリ秒が切り捨てられる可能性があった問題を修正しました。

• 非常に大規模な Redshift Spectrum クエリでメモリ不足エラーが発生する可能性があった問題を修正しました。

バージョン 1.0.3945、1.0.4081、1.0.4222期間: 2018 年 9 月 19 日–10 月 10 日

特徴と改善点

• Amazon Redshift: UNLOAD コマンドで HEADER オプションを指定して、作成された各出力ファイルに特定のヘッダー行を追加できるようになりました。ヘッダー行には、unload クエリによって作成された列名が含まれます。

• Amazon Redshift: LIKE 述語を使用したクエリパフォーマンスが大幅に向上しました。• Amazon Redshift: 読み取りと書き込みが混在するワークロードのクエリパフォーマンスが向上しまし

た。

修正内容

• 非常に要求が厳しいワークロードを持つクラスターに対する、カタログアクセスのパフォーマンスを強化しました。

• 横方向の列エイリアス参照がウィンドウ関数で使用されるときの問題を修正しました。• LEAST() および GREATEST() 関数で NULL 値を評価する際の問題を修正しました。• LIMIT 0 を指定する特定のクエリの問題を修正しました。• セッションがデータを返している間に pg_terminate_backend でセッションを終了する際の問題を修正

しました。

バージョン 1.0.3639、1.0.3688期間: 2018 年 8 月 29 日–9 月 19 日

特徴と改善点

• Amazon Redshift: クエリ実行中に内部一時テーブルを作成する、複雑なクエリのパフォーマンスが大幅に向上しました。

• Amazon Redshift: rank 関数を持ついくつかのクエリ (サブクエリ内のrank()、dense_rank()、row_number() のパフォーマンスが大幅に向上しました。

• Redshift Spectrum: ネストされたデータに対するクエリサポートが、EXISTS および NOT EXISTS サブクエリをサポートするように拡張されました。

• Redshift Spectrum: Redshift Spectrum スキャンにおける IN リスト述語処理のパフォーマンスが向上しました。

修正内容

• LIMIT 句の要件を超えて実行し続ける UDF を使用したクエリの問題を修正しました。• 通常のビューが遅延バインドビューを参照している場合のアクセス許可の問題を修正しました。

バージョン 1.0.3324、1.0.3359

58

Amazon Redshift クラスター管理ガイドバージョン 1.0.3025

期間: 2018 年 8 月 9 日~8 月 28 日

特徴と改善点

• Amazon Redshift: クラスターのメンテナンス期間中にシステムメタデータのローカリティを自動的に強化することにより、書き込みおよび更新ワークロードのパフォーマンスが向上しました。

• Amazon Redshift: 複雑な EXCEPT サブクエリのパフォーマンスが大幅に向上しました。• Amazon Redshift: 結合キー列で大量の NULL 値を含む結合のパフォーマンスが大幅に向上しました。• Amazon Redshift: 定数式による安定した関数を参照するクエリのパフォーマンスが向上しました。• Amazon Redshift: 配信できる中間サブクエリの結果を使用したクエリのパフォーマンスが向上しまし

た。• Redshift Spectrum: 外部テーブルのパーティション列の式を使用したクエリのパフォーマンスが向上し

ました。• Redshift Spectrum: S3 バケットのルートを外部テーブルのデータソースとして指定できるようになりま

した。

修正内容

• 標準ビューの定義が遅延バインドビューの場合に生じるアクセス許可エラーが修正されました。• 一部のクエリに影響する「サブプランターゲットリストで変数が見つかりません」エラーが修正されま

した。

バージョン 1.0.3025期間: 2018 年 7 月 19 日~8 月 8 日

特徴と改善点

• Amazon Redshift: クエリで、宣言された直後に同じクエリ内で列のエイリアスを参照できるようになり、複雑な SQL クエリの読みやすさが向上しました。

• Amazon Redshift: DC1 リザーブドノードを無料で DC2 に移行できるようになりました。期間の長さに変更はありません。

• Amazon Redshift: 新しい Amazon CloudWatch メトリクスでは、現在待機中のクエリの数がワークロード管理 (WLM) キューごとに追跡されます。

• Amazon Redshift: テーブルへの 1 つの行の挿入のパフォーマンスが大幅に向上しました。• Amazon Redshift: CHAR および VARCHAR 列で操作するクエリのパフォーマンスが大幅に向上しまし

た。• Amazon Redshift: 内部結合または右外部結合で、フィルタリングディメンションを持つハッシュ結合の

パフォーマンスが向上しました。• Amazon Redshift: 定数式の安定した関数を参照するクエリのパフォーマンスが向上しました。• Redshift Spectrum: SVV_COLUMNS カタログビューを拡大して、結合ビューの列に関する情報を提供し

ます。

修正内容

• 横長のテーブルのスキャンまたは集計のプリフェッチのメモリ管理が改善されました。• 多数の小さなファイルを持つ Redshift Spectrum 外部テーブルに対して長時間実行されるクエリの動作

が改善されました。

バージョン 1.0.2762、1.0.2819、10.2842

59

Amazon Redshift クラスター管理ガイドバージョン

1.0.2524、1.0.2557、1.02610、1.0.2679、1.02719

期間: 2018 年 6 月 27 日〜7 月 18 日

特徴と改善点

• Amazon Redshift: 競合の低減とシステム使用率の向上に向けて短い読み取りクエリの処理を向上しました。

• Amazon Redshift: Redshift クラスターのサイズ変更機能が大幅に強化され、サイズ変更オペレーション中に一時テーブルを作成できるようになりました。

• Amazon Redshift: コンパイル済みコードのキャッシュを改善し、再コンパイルを要するセグメントの数を減らすことで、クエリパフォーマンス全体が向上しました。

• Amazon Redshift: Parquet および ORC ファイル形式からデータを取り込む際の COPY オペレーションのパフォーマンスが向上しました。

• Redshift Spectrum: サイズ変更オペレーション中に外部列に対してクエリを実行できるようになりました。

• Redshift Spectrum: パーティション列の集計で Redshift Spectrum クエリのパフォーマンスを改善しました。

修正内容

• 短いクエリキューからユーザーキューへのクエリの再割り当てに伴う問題を修正しました。• クエリを書き直すときの述語のプッシュダウンに伴う問題を修正しました。• DST タイムゾーンでの DATE_TRUNC 関数に伴う問題を修正しました。• 特定のマルチバイト文字シーケンスにおける LOWER 関数の評価に伴う問題を修正しました。• CREATE TABLE AS (CTAS) ステートメントでのデータ型の派生に伴う問題を修正しました。• 外部テーブル数が Redshift テーブル列の合計数の上限を超えた場合のエラーメッセージングを強化しま

した。

バージョン1.0.2524、1.0.2557、1.02610、1.0.2679、1.02719期間: 2018 年 6 月 7 日〜7 月 5 日

特徴と改善点

• Amazon Redshift: クエリモニタリングルール (QMR) でサポートされるルール数が 3 倍 (最大 25) になりました。QMR では、WLM キューのクエリ実行の境界に基づいて Amazon Redshift クラスターのリソース割り当てを管理し、これらの境界をクエリが超えたときに自動的に対処できます。

• Amazon Redshift: Amazon CloudWatch の新しいメトリクスとして QueryRuntimeBreakdown を使用できるようになりました。このメトリクスでは、クエリ実行の段階別の詳細を取得できます。詳細については、「Amazon Redshift のパフォーマンスデータ (p. 297)」を参照してください。

• Redshift Spectrum: 外部列の名前を変更できるようになりました。• Redshift Spectrum: 外部テーブルのファイル圧縮タイプを指定できるようになりました。• Amazon Redshift: クエリで大規模な結合が必要な場合の、ハッシュ結合のパフォーマンスを強化しまし

た。一部の複雑なクエリの実行が 3 倍高速になりました。• Amazon Redshift: VACUUM DELETE コマンドの大幅な拡張により、追加のディスク容量が解放され、

パフォーマンスが改善しました。• Amazon Redshift: 遅延実体化で DELETE オペレーションと UPDATE オペレーションがサポートされ、

クエリパフォーマンスが向上しました。• Amazon Redshift: クラスターのサイズ変更オペレーションのパフォーマンスを改善しました。

60

Amazon Redshift クラスター管理ガイドバージョン 1.0.2294、1.0.2369

• Redshift Spectrum: Redshift Spectrum の単一の外部テーブルにおける追加オペレーションとドロップオペレーションのサポート数が増えました。

• Redshift Spectrum: タイムスタンプ列で DATE_TRUNC を使用する際の述語フィルタリングの効率が強化されました。

修正内容

• 定数の特定のビューに基づくクエリの問題を修正しました。• スキーマの名前変更後に特定の遅延バインドビューにアクセスする際の問題を修正しました。• サポートされていない結合タイプに関連する問題を修正しました。• Amazon Redshift ワークロード管理の一環としてのクエリホッピングに伴う問題を修正しました。• 特定の非常に大きなクエリのコンパイルに伴う問題を修正しました。• TO_DATE 関数の書式設定文字列における空白の処理を修正しました。• 一部のクエリのキャンセルに伴う問題を修正しました。• CHAR 型や DECIMAL 型のパーティション列における結合に伴う問題を修正しました。

バージョン 1.0.2294、1.0.2369期間: 2018 年 5 月 17 日〜6 月 14 日

特徴と改善点

• Amazon Redshift: Amazon Redshift に対する Parquet および ORC 列フォーマットでのデータのロードが COPY コマンドでサポートされるようになりました。

• Amazon Redshift: ショートクエリアクセラレーションで、短いクエリの最大実行時間がワークロードに基づいて自動的および動的に決定されるようになり、クエリパフォーマンスが強化されました。

• Redshift Spectrum: 外部テーブルの ALTER TABLE ADD/DROP COLUMN が標準の JDBC 呼び出しを使用してサポートされるようになりました。

• Redshift Spectrum: Amazon Redshift で LENGTH() 文字列関数を Redshift Spectrum にプッシュできるようになり、パフォーマンスが強化されました。

• Amazon Redshift: コンパイル済みコードのキャッシュの有効性が大幅に改善され、再コンパイルを要するセグメントの数が減り、クエリパフォーマンス全体が向上しました。

• Amazon Redshift: 特定の UNION ALL クエリのパフォーマンスが向上しました。• Amazon Redshift: 順序が正しくないネットワークパケットを処理する際の通信レイヤーのパフォーマン

スが向上しました。

修正内容

• 特定のクエリにおける NULL 値の生成に伴う問題を修正しました。

バージョン 1.0.2058期間: 2018 年 4 月 19 日〜5 月 8 日

特徴と改善点

• モニタリング機能とパフォーマンスの強化– Amazon Redshift の Amazon CloudWatch メトリクスは、クラスターのヘルスとパフォーマンスに関する詳細情報を提供します。Amazon Redshift で追加されたクエリスループットとクエリレイテンシーのメトリクスを使用できるようになりました。

61

Amazon Redshift クラスター管理ガイドバージョン 1.0.2044

• クエリプラン実行の詳細に関するコンソールのパフォーマンスが大幅に改善されました –詳細については、「Amazon Redshift のパフォーマンスデータ (p. 297)」を参照してください。

• Amazon Redshift: 集計クエリのパフォーマンスが強化されました。• Amazon Redshift: キープアライブが承諾されなかった場合にクライアント接続を終了するサポートを追

加しました。• Redshift Spectrum: Redshift Spectrum の単一の外部テーブルにおける追加オペレーションとドロップオ

ペレーションのサポート数が増えました。• Redshift Spectrum: タイムスタンプ列で DATE_TRUNC を使用する際の述語フィルタリングの効率が強化

されました。

修正内容

• EXISTS 句を持つ特定の複雑なクエリの最適化に伴う問題を修正しました。• 一部の遅延バインドビューが標準ビュー内にネストされている場合のアクセス許可エラーを修正しまし

た。• 作成する遅延バインドビューで 'WITH NO SCHEMA BINDING' を指定する場合、その基盤となるビュー

の定義に WITH 句があるときの問題を修正しました。• UNION ALL クエリを必要とする特定の CREATE TABLE AS SELECT ステートメントの列でデータ型を

派生させる場合の問題を修正しました。• テーブルが存在しない場合の DROP TABLE IF EXISTS に伴う Redshift Spectrum の問題を修正しまし

た。

バージョン 1.0.2044対象期間: 2018 年 3 月 16 日〜4 月 18 日

特徴と改善点

• 8xlarge クラスタータイプで作成できるテーブル数が 20,000 に増えました – テーブル数が 2 倍に増えたことでデータのコントロールと詳細度が向上しました。

• REGEXP_INSTR と REGEXP_SUBSTR の新しい検索パターン – 正規表現パターンの特定の発生を検索したり、大文字と小文字を区別して指定したりできるようになりました。

• Amazon Redshift: 8xlarge クラスターでウィンドウ関数のパフォーマンスが大幅に向上しました。• Amazon Redshift: サイズ変更オペレーションのパフォーマンスが改善しました。• Redshift Spectrum: アジアパシフィック (ムンバイ) リージョンと南米 (サンパウロ) リージョンで利用可

能になりました。• Redshift Spectrum: 外部テーブルでの ALTER TABLE ADD/DROP COLUMN がサポートされるようにな

りました。• Redshift Spectrum: stl_s3query、svl_s3query および svl_s3query_summary に外部テーブルの

ファイル形式を示す新しい列が追加されました。

修正内容

• クエリのキャンセルに伴う問題を修正しました。• 一時テーブルのドロップに伴う問題を修正しました。• テーブルの変更に伴う問題を修正しました。

バージョン 1.0.1792、1.0.1793、1.0.1808、1.0.1865対象期間: 2018 年 2 月 22 日〜3 月 15 日

62

Amazon Redshift クラスター管理ガイドバージョン 1.0.1691 および 1.0.1703

特徴と改善点

• Amazon Redshift: 複数のサブクエリに分解された複雑なクエリの応答時間を短縮するために、開始時刻のスケジューリングを追加しました。

• Redshift Spectrum 外部テーブルのスカラー JSON および ION ファイル形式を Amazon S3 で処理できるようになりました。

• Amazon Redshift: ショートクエリアクセラレーション: 非常に選択的なクエリの ML 分類子の精度が強化されました。

• Amazon Redshift: ハッシュ結合の実行時間が短縮されました。• Amazon Redshift: DISTALL テーブルに対する VACUUM DELETE オペレーションのランタイムが改善さ

れました。• Redshift Spectrum: 複数の小さいファイルから成る外部テーブルに対するクエリのランタイムが改善さ

れました。• Redshift Spectrum: svv_external_tables と svv_external_columns に対するクエリのパフォー

マンスが改善されました。

修正内容

• クエリを書き直すときのブール述語の処理が改善されました。• 一時テーブルの状態が一貫しない問題を修正しました。• DROP ステートメントと SELECT ステートメントとの競合状態を修正しました。• 準備されたステートメントを持つ一部のクエリについて、キャンセル時の回復性を強化しました。• 一部のクエリについて書き直し時の回復性を強化しました。

バージョン 1.0.1691 および 1.0.1703期間: 2018 年 2 月 1 日〜2 月 23 日

特徴と改善点

• Amazon Redshift: 正規表現のサポートが拡張されました。REGEXP_INSTR() と REGEXP_SUBSTR() では、正規表現パターンの特定の発生を検索したり、大文字と小文字を区別したパターンマッチングを実行したりできるようになりました。

• Amazon Redshift: カーソルのクエリと準備されたステートメントをサポートするように結果のキャッシュが強化されました。

• Amazon Redshift: 短いクエリのバーストを処理するためにショートクエリアクセラレーションが強化されました。

• Amazon Redshift: 複数のアカウントにわたるロールを引き受けるために IAM ロールの連鎖のサポートが追加されました。

• Redshift Spectrum: F_TIMESTAMP_PL_INTERVAL、T_CoalesceExpr、および DATE 関連の関数をRedshift Spectrum にプッシュします。

修正内容

• S3 における非常に小さなファイルのタイムアウトの計算を修正しました。• PSQL-c は TRUNCATE の自動コミット動作を優先するように変更されました。• クエリのコンパイル失敗エラーを修正しました。• 遅延バインドビューで 3 つのパートから成る列名のサポートを追加しました。• 複雑な表現内でのブール述語のクエリを修正しました。• Redshift Spectrum: 小さな分割サイズを使用して並列処理を拡張しました。

63

Amazon Redshift クラスター管理ガイドバージョン 1.0.1636

バージョン 1.0.1636期間: 2018 年 1 月 11 日〜1 月 25 日

特徴と改善点

• Amazon Redshift: 伸縮自在なショートクエリアクセラレーションをリリースしました。これにより、ワークロードで短いクエリのバーストが発生した場合にシステムの応答が改善されます。

• Amazon Redshift: トランザクションブロック内で読み取りクエリの結果のキャッシュを有効にしました。

• Redshift Spectrum: Parquet ファイルの DATE 列に対するサポートと、DATE 列での CREATEEXTERNAL TABLE コマンドの実行に対するサポートを追加しました。

• Redshift Spectrum: ADD PARTITION コマンドで IF NOT EXISTS に対するサポートを追加しました。• Amazon Redshift: DISTSTYLE の属性として KET または ALL を持つテーブルに対する一部の短いクエリ

が 3 倍高速になりました。

修正内容

•• クエリ処理中に断続的に発生するアサートエラーを修正しました。アサートメッセージの形式は、「p -

id=380 not in rowsets list」です。• 特定のクエリの例外処理に伴うメモリリークを修正しました。• CTAS と INSERT との一貫しない結果に対処しました。

64

Amazon Redshift クラスター管理ガイドクエリエディタを使用してデータベースをクエリする

データベースのクエリAmazon Redshift クラスターによってホストされているデータベースをクエリする方法は 2 つあります。

• クラスターに接続し、クエリエディタで AWS マネジメントコンソール に対してクエリを実行します。

クエリエディタを使用する場合、SQL クライアントアプリケーションをダウンロードしてセットアップする必要はありません。

• SQL Workbench/J などの SQL クライアントツールを介してクラスターに接続します。

Amazon Redshift は、Java Database Connectivity (JDBC) および Open Database Connectivity (ODBC)を介して接続する SQL クライアントツールをサポートします。Amazon Redshift は、SQL クライアントツールまたはライブラリを提供もインストールもしないため、それらを使用してクラスター内のデータを操作するには、クライアントコンピュータまたは Amazon EC2 インスタンスにインストールする必要があります。JDBC または ODBC ドライバーをサポートするほとんどの SQL クライアントツールを使用できます。

トピック• クエリエディタを使用してデータベースをクエリする (p. 65)• SQL クライアントツールを使用して Amazon Redshift クラスターに接続する (p. 68)

クエリエディタを使用してデータベースをクエリする

Amazon Redshift によってホストされているデータベースに対してクエリを実行するには、クエリエディタを使用することが最も簡単な方法です。クラスターを作成したあと、Amazon Redshift コンソールでクエリエディタを使用することで、すぐにクエリを実行できます。

次のクラスターノードタイプはクエリエディタをサポートしています。

• DC1.8xlarge• DC2.large• DC2.8xlarge• DS2.8xlarge

クエリエディタを使用して、以下の操作を実行できます。

• 単一の SQL ステートメントクエリを実行する。• 最大 100 MB の結果セットをカンマ区切り値 (CSV) ファイルにダウンロードする。• 再利用するためにクエリを保存する。EU (パリ) リージョン または アジアパシフィック (大阪: ローカ

ル) リージョン にクエリを保存することはできません。• ユーザー定義テーブルのクエリ実行の詳細を表示する。

クエリエディタの考慮事項クエリエディタを使用するときは、次の考慮事項に注意してください。

65

Amazon Redshift クラスター管理ガイドアクセスの有効化

• 同時に最大 50 名のユーザーがクエリエディタを使用してクラスターに接続することができます。• クラスターに接続するユーザの最大数には、クエリエディタを介して接続するユーザーが含まれます。• 同時に最大 50 のワークロード管理 (WLM) クエリスロットをアクティブにできます。クエリスロットの

詳細については、「ワークロード管理の実装」を参照してください。• クエリエディタは、2 分以内に完了する短いクエリのみを実行します。• クエリ結果セットはページごとに 100 行で分割されています。• 拡張された VPC のルーティングではクエリエディタを使用できません。詳細については、「Amazon

Redshift 拡張された VPC のルーティング (p. 129)」を参照してください。• クエリエディタでトランザクションを使用することはできません。トランザクションの詳細について

は、Amazon Redshift Database Developer Guide の「BEGIN」を参照してください。• クエリは最大 3,000 文字保存することができます。

クエリエディタへのアクセスの有効化クエリエディタにアクセスするには、アクセス許可が必要です。アクセスを有効化するには、AWS Identity and Access Management (IAM) の AmazonRedshiftQueryEditor およびAmazonRedshiftReadOnlyAccess ポリシーを、クラスターにアクセスするために使用する IAM ユーザーアカウントにアタッチします。

すでに Amazon Redshift にアクセスするために IAM ユーザーを作成している場合、AmazonRedshiftQueryEditor および AmazonRedshiftReadOnlyAccess ポリシーをそのユーザーにアタッチできます。まだ IAM ユーザーを作成していない場合、作成し、ポリシーを IAM ユーザーにアタッチします。

Note

AWS 管理ポリシー AmazonRedshiftQueryEditor では、redshift:GetClusterCredentials アクションが許可されます。このアクションは、デフォルトでデータベースユーザースーパーユーザーがデータベースにアクセスできるようにします。アクセスを制限するには、次のいずれかの項目を実行します。

• redshift:GetClusterCredentials を呼び出してリソースを DbUser に制限するカスタムポリシーを作成します。

• redshift:GetClusterCredentials へのアクセス許可を拒否するポリシーをユーザーに追加した後、クエリエディタのユーザーに一時的な認証情報を使用してサインインすることを求めます。たとえば、拒否ポリシーは次のようなポリシーになります。

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "redshift:GetClusterCredentials", "Resource": "*" }}

詳細については、「GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールまたはユーザーを作成する (p. 232)」を参照してください。

クエリエディタに必要な IAM ポリシーをアタッチするには

1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

2. [ユーザー] を選択します。

66

Amazon Redshift クラスター管理ガイドクエリエディタの使用

3. クエリエディタへのアクセスが必要なユーザーを選択します。4. [Add permissions] を選択します。5. [Attach existing policies directly] を選択します。6. [Policy names (ポリシー名)] には、 [AmazonRedshiftQueryEditor] および

[AmazonRedshiftReadOnlyAccess] を選択します。7. [Next: Review] を選択します。8. [Add permissions] を選択します。

クエリエディタの使用次の例では、クエリエディタを使用して次のタスクを実行します。

• SQL コマンドを実行する。• クエリ実行の詳細を表示する。• クエリを保存する。• クエリの結果セットをダウンロードする。

次の例を完了するには、既存の Amazon Redshift クラスターが必要です。クラスターがない場合は、「クラスターの作成 (p. 20)」に記載されている手順に従ってクラスターを作成します。

クエリエディタを使用するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインでクエリエディタを選択します。

3. [Schema (スキーマ)] には、[public (パブリック)] を選択し、そのスキーマに基づいた新しいテーブルを作成します。

4. 次をクエリエディタウィンドウに入力し、[Run Query (クエリ実行)] を選択して新しいテーブルを作成します。

create table shoes( shoetype varchar (10), color varchar(10));

5. [クリア] を選択します。6. 次のコマンドをクエリエディタウィンドウに入力し、[Run Query (クエリ実行)] を選択してテーブルに

行を追加します。

67

Amazon Redshift クラスター管理ガイドSQL クライアントツールを使用してクラスターに接続する

insert into shoes values ('loafers', 'brown'),('sandals', 'black');

7. [クリア] を選択します。8. 次のコマンドをクエリエディタウィンドウに入力し、[Run Query (クエリ実行)] を選択して新しいテー

ブルをクエリします。

select * from shoes;

次の結果が表示されます。

9. 実行の詳細を表示するには、[View execution (実行の表示)] を選択します。10. クエリ結果を CSV ファイルとしてダウンロードするには、[CSV のダウンロード] を選択します。

SQL クライアントツールを使用して AmazonRedshift クラスターに接続する

Java Database Connectivity (JDBC)、Open Database Connectivity (ODBC) 接続を介して SQL クライアントツールから Amazon Redshift クラスターに接続できます。Amazon Redshift は、SQL クライアントツールまたはライブラリを提供もインストールもしないため、それらを使用してクラスター内のデータを操作するには、クライアントコンピュータまたは Amazon EC2 インスタンスにインストールする必要があります。JDBC または ODBC ドライバーをサポートするほとんどの SQL クライアントツールを使用できます。

このセクションでは、クライアントコンピューターまたは Amazon EC2 インスタンスが JDBC またはODBC 接続を使用するように設定するプロセスと、クライアントをサーバーに接続するための関連するセキュリティオプションについて説明します。さらに、このセクションには、まだビジネスインテリジェ

68

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の設定

ンスツールを使用していない場合に、2 つのサンプルサードパーティ SQL クライアントツールと SQLWorkbench/J および psql をセットアップする方法とそこから接続する方法に関する情報もあります。また、このセクションでは、クラスターにプログラムにより接続する方法を理解することもできます。最後に、クラスターに接続しようとしたときに問題が発生した場合は、このセクションのトラブルシューティング情報を確認して、考えられる解決策を見つけることができます。

トピック• Amazon Redshift での接続の設定 (p. 69)• JDBC 接続を設定する (p. 70)• ODBC 接続を設定する (p. 87)• 接続のセキュリティオプションを設定する (p. 107)• クライアントツールおよびコードからクラスターに接続する (p. 112)• Amazon Redshift での接続の問題のトラブルシューティング (p. 123)

Amazon Redshift での接続の設定このセクションでは、SQL クライアントツールからクラスターに接続するように JDBC および ODBC 接続を設定する方法を学習できます。また、JDBC および ODBC 接続をセットアップする方法と、SecureSockets Layer (SSL) およびサーバー証明書を使用してクライアント/サーバー間の通信を暗号化する方法について説明します。

トピック• Amazon Redshift の JDBC および ODBC ドライバー (p. 69)• クラスター接続文字列を検索する (p. 69)

Amazon Redshift の JDBC および ODBC ドライバークラスター内のデータを操作するには、クライアントコンピューターまたはインスタンスから接続できるようにするために JDBC または ODBC ドライバーが必要です。JDBC または ODBC データアクセス APIを使用し、JDBC または ODBC をサポートする SQL クライアントツールを使用するようにアプリケーションを記述します。

Amazon Redshift では JDBC および ODBC ドライバーをダウンロードできます。以前、Amazon Redshiftでは JDBC および ODBC の代わりに PostgreSQL ドライバーが推奨されていました。現在 PostgreSQL ドライバーを使用している場合は、今後のためにも新しい Amazon Redshift– 固有のドライバーに移行することを推奨します。JDBC および ODBC ドライバーをダウンロードし、クラスタへの接続を設定する方法の詳細については、「JDBC 接続を設定する (p. 70)」と「ODBC 接続を設定する (p. 87)」を参照してください。

クラスター接続文字列を検索するSQL クライアントツールでクラスターに接続するには、クラスター接続文字列が必要です。クラスター接続文字列は、Amazon Redshift コンソールのクラスターの設定ページにあります。

クラスター接続文字列を取得するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [Clusters (クラスター)] ページで、接続文字列を取得する対象のクラスターの名前をクリックします。3. そのクラスターの [Configuration (設定)] タブの [JDBC URL] または [ODBC URL] で、接続文字列をコ

ピーします。

69

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

次の例は米国西武リージョンで起動されたクラスターの接続文字列を示しています。別のリージョンで起動しているクラスターの場合、接続文字列はそのリージョンのエンドポイントに基づくものになります。

JDBC 接続を設定するJDBC 接続を使用すると、多くのサードパーティ SQL クライアントツールから Amazon Redshift クラスターに接続できます。これを行うには、JDBC ドライバーをダウンロードする必要があります。JDBC 接続を使用する場合、このセクションの手順に従います。

トピック• Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 70)• JDBC URL を取得する (p. 71)• JDBC ドライバー設定オプション (p. 72)• Apache Maven を使用して JDBC 接続を設定する (p. 77)• 前バージョンの JDBC ドライバ (p. 80)

Amazon Redshift JDBC ドライバーをダウンロードします。Amazon Redshift には、JDBC 4.2 API、JDBC 4.1 API、または JDBC 4.0 API と互換性のあるツール用のドライバが用意されています。これらのドライバーでサポートされる機能については、「AmazonRedshift JDBC ドライバーリリースノート」を参照してください。

JDBC ドライバーバージョン 1.2.27.1051 以降では Amazon Redshift のストアドプロシージャをサポートしています。詳細については、「Amazon Redshift Database Developer Guide ストアドプロシージャの作成」を参照してください。

JDBC ドライバーバージョン 1.2.8.1005 以降では、AWS Identity and Access Management (IAM) の認証情報または ID プロバイダ (IdP) の認証情報を使用したデータベース認証をサポートしています。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成 (p. 229)」を参照してください。

70

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

データベース認証用に Amazon Redshift JDBC ドライバーを使用する場合、Java クラスパスに AWS SDKfor Java 1.11.118 以降が必要です。AWS SDK for Java がインストールされていない場合、AWS SDK が含まれているドライバーを使用できます。詳細については、「旧バージョンの JDBC ドライバーと AWSSDK for Java (p. 82)」を参照してください。

Important

可能であれば、AWS SDK が含まれていない Amazon Redshift JDBC ドライバーを使用することを強くお勧めします。以下のリストのドライバーには、AWS SDK が含まれていません。

SQL クライアントツールまたはアプリケーションで使用されている JDBC API のバージョンに応じて、次のいずれかをダウンロードします。不明な場合は、JDBC 4.2 API ドライバーの最新バージョンをダウンロードします。

Note

ドライバーのクラス名として、com.amazon.redshift.jdbc.Driver を使用するか、以下のドライバーごとに示しているバージョン別のクラス名を使用します。

• JDBC 4.2 互換ドライバー: https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/RedshiftJDBC42-no-awssdk-1.2.34.1058.jar

このドライバーのクラス名は com.amazon.redshift.jdbc42.Driver です。• JDBC 4.1 互換ドライバー: https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/

RedshiftJDBC41-no-awssdk-1.2.34.1058.jar。

このドライバーのクラス名は com.amazon.redshift.jdbc41.Driver です。• JDBC 4.0 互換ドライバー: https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/

RedshiftJDBC4-no-awssdk-1.2.34.1058.jar

このドライバーのクラス名は com.amazon.redshift.jdbc4.Driver です。

次に、Amazon Redshift JDBC ドライバーのライセンス契約 をダウンロードして確認します。

ツールに特定のバージョンのドライバーが必要な場合は、「前バージョンの JDBC ドライバ (p. 80)」を参照してください。

これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。

JDBC URL を取得するSQL クライアントツールから Amazon Redshift クラスターに接続する前に、クラスターの JDBC URL を確認しておく必要があります。JDBC の URL 形式を次に示します。

jdbc:redshift://エエエエエエエ:エエエ/エエエエエエ

Note

jdbc:postgresql://エエエエエエエ:エエエ/エエエエエエ という旧形式で指定されている JDBC URL は、まだ動作します。

フィールド 値

jdbc 接続用のプロトコルです。

Redshift データベースに接続するために Amazon Redshift ドライバを使用するよう指定するサブプロトコルです。

71

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

フィールド 値

endpoint Amazon Redshift クラスターのエンドポイント。

port クラスターを起動したときに指定したポート番号。ファイアウォールがある場合、このポートが開いていて使用できることを確認します。

エエエエエエ クラスター用に作成したデータベース。

JDBC URL の例を次に示します。jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev

JDBC URL を取得するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. 右上で、クラスターを作成したリージョンを選択します。

Amazon Redshift 入門ガイド に従って、[US West (Oregon) (米国西部 (オレゴン))] を選択します。3. 左のナビゲーションペインの [Clusters (クラスター)] をクリックし、クラスターをクリックします。

Amazon Redshift 入門ガイド に従った場合は、[examplecluster] をクリックします。4. [Configuration (設定)] タブで、[Cluster Database Properties (クラスターデータベースプロパティ)] の下

にある、クラスターの JDBC URL をコピーします。

クライアントコンピューターがデータベースに接続できない場合、考えられる問題をトラブルシューティングすることができます。詳細については、「Amazon Redshift での接続の問題のトラブルシューティング (p. 123)」を参照してください。

JDBC ドライバー設定オプションAmazon Redshift JDBC ドライバーの動作を制御するには、次の表で説明する設定オプションを JDBCURL に付加します。たとえば、以下の JDBC URL は、Secure Socket Layer (SSL)、ユーザー (UID)、パスワード (PWD) を使用してクラスターに接続します。

72

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true&UID=your_username&PWD=your_password

SSL オプションの詳細については、「SSL を使用して接続する (p. 107)」を参照してください。

JDBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

AccessKeyID いいえ null IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー ID。AccessKeyIDオプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC および ODBC のオプション (p. 241)」を参照してください。AccessKeyID および SecretAccessKey は一緒に指定する必要があります。

AuthMech いいえ DISABLE 廃止.デフォルトでは、Amazon Redshift ドライバーはSSL を使用します。または、ssl と sslmode を使用します。

AutoCreate いいえ false DbUser に指定した名前でデータベースユーザーを作成するには (存在しない場合)、true を指定します。AutoCreate オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

BlockingRowsMode いいえ 0 メモリに保持する行数。1 つの行が破棄されると、その代わりとして別の行がロードされます。

DbGroups いいえ null データベースユーザーが現在のセッションで参加する既存のデータベースグループの名前のカンマ区切りリスト。DbGroups オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

DbUser いいえ null データベースユーザーの名前。DbUser オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するためのJDBC および ODBC のオプション (p. 244)」を参照してください。

DisableIsValidQuery いいえ false デフォルトでは、DisableIsValidQuery は False に設定されます。これにより、データベース接続が予期せずに終了した場合でも、どの時点で JDBC ドライバーの有効なデータベース接続が失われたかを javaConnection.isValid () メソッドで検出できます。バージョン 1.2.1 より前の Amazon Redshift JDBC ドライバーでは、どの時点で有効な接続が失われたかを確実に検出しませんでした。以前のドライバーで確認され

73

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

JDBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

た動作を復元するには、DisableIsValidQuery を trueに設定します。

DSILogLevel いいえ 0 ログ記録を有効にし、ログファイルに含まれる詳細量を指定します。次の表に、ログ記録の詳細レベルを示します。

• 0 – すべてのログ記録を無効にします。• 1 – ドライバーの中止につながる重大なエラーイベ

ントを記録します。• 2 – ドライバの実行の続行を許可する可能性がある

エラーイベントを記録します。• 3 – 有害な可能性がある状況を記録します。• 4 – ドライバの進行状況を示す全般的な情報を記録

します。• 5 – ドライバのデバッグに役立つ詳細な情報を記録

します。• 6 – すべてのドライバアクティビティを記録しま

す。

FilterLevel いいえ NOTICE クライアントが処理するメッセージの最小重要度。以下の値を指定できます (重要度が最も低い値から最も高い値の順)。

• DEBUG• INFO• NOTICE• WARNING• LOG• ERROR

loginTimeout はい 0 サーバーに接続するときにタイムアウトするまで待つ秒数。接続を確立するときにこのしきい値よりも時間がかかると、接続は中止されます。

このプロパティがデフォルト値の 0 に設定されていると、接続はタイムアウトしません。

74

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

JDBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

loglevel はい null ドライバーによって出力されるログ情報の量。デフォルトでは、ログ記録は行われません。情報はドライバーマネージャーの LogStream または LogValue オプションで指定されている場所に出力されます。以下の値を指定できます。

• 2 (DEBUG) — 多くの詳細な情報をログに記録します。

• 1 (INFO) — より少ない詳細をログに記録します。

Note

パフォーマンスに影響を与える可能性があるため、ドライバの問題をトラブルシューティングする場合にのみ、このプロパティを使用してください。

OpenSourceSubProtocolOverrideいいえ false 有効になっている場合、この設定は、AmazonRedshift JDBC ドライバと PostgreSQL JDBC ドライバとの間に発生する可能性のある競合を防ぎます。場合によっては、アプリケーションは PostgreSQLJDBC ドライバを使用して Amazon Redshift JDBC ドライバおよびその他のデータソースに同時に接続することがあります。この場合、PostgreSQL データソースに接続するために使用するこの接続属性を、JDBCURL に追加します。以下の値を指定できます。

• true—OpenSourceSubProtocolOverride を有効にします。

• false—OpenSourceSubProtocolOverride を無効にします。

Plugin_Name いいえ null 認証情報プロバイダを実装する完全修飾クラス名。Plugin_Name オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「認証情報プロバイダプラグインの使用 (p. 242)」を参照してください。

プロフィール いいえ null JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。Plugin_Name オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「設定プロファイルを使用する (p. 243)」を参照してください。

PWD はい null Amazon Redshift サーバーに接続するために使用するパスワード。

75

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

JDBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

SecretAccessKey いいえ null IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのシークレットアクセスキー。SecretAccessKey オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC および ODBC のオプション (p. 241)」を参照してください。AccessKeyID および SecretAccessKey は一緒に指定する必要があります。

SessionToken いいえ null IAM データベース認証用に設定された IAM ロールの一時セッショントークン。SessionToken は、IAMデータベース認証が IAM ユーザーに対して設定されている場合は必要ありません。SessionToken オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC およびODBC のオプション (p. 241)」を参照してください。SessionToken を使用する場合、AccessKeyID および SecretAccessKey も指定する必要があります。

socketTimeout はい 0 タイムアウトする前にソケット読み込みオペレーションを待つ秒数。このオペレーションにこのしきい値よりも時間がかかると、接続は閉じます。

このプロパティがデフォルト値の 0 に設定されていると、接続はタイムアウトしません。

ssl はい true SSL 接続を使用するかどうかを決定する値。以下の値を指定できます。

• true — SSL を使用します。• false — SSL を使用しません。

ドライバーは、デフォルトで ssl を true に設定します。ssl が IAM 認証で false に明示的に設定されている場合、接続の試行は失敗します。

76

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

JDBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

sslMode はい null サーバー証明書の確認方法を決定する設定。以下の値を指定できます。

• verify-ca—SSL を使用する必要があり、サーバー証明書を検証する必要があります。

• verify-full—SSL を使用する必要があります。サーバー証明書を検証し、サーバーのホスト名が証明書上のホスト名属性と一致する必要があります。

sslMode が指定されていない場合、サーバー証明書は必要ありません。

sslMode オプションの詳細については、「Java でSSL をサーバー証明書を使用する (p. 110)」を参照してください。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。1.2.8.1005 より前のバージョンのドライバーを使用する場合は、現在の信頼ルート CA 証明書を更新して、引き続き SSL でクラスターに接続する必要があります。詳細については、「SSL 接続用 ACM証明書への移行 (p. 110)」を参照してください。

sslRootCert いいえ null SSL を使用する場合の Amazon Redshift サーバー証明書確認用の信頼ルート認証機関 (CA) の証明書バンドルを含む .pem または .crt ファイルの完全パス。

tcpKeepAlive はい true TCP キープアライブを有効にするかどうかを決定する値。以下の値を指定できます。

• true — TCP キープアライブを有効にします。• false — TCP キープアライブを無効にします。

TCPKeepAliveMinutesいいえ 5 TCP キープアライブの送信を開始する前にアイドル状態である時間のしきい値 (分単位)。

UID はい null Amazon Redshift サーバーに接続するために使うユーザー名。

Apache Maven を使用して JDBC 接続を設定するApache Maven は、ソフトウェアプロジェクトを管理する包括的なツールです。AWS SDK for Javaは、Apache Maven プロジェクトをサポートします。詳細については、「Apache Maven での SDK の使用」を参照してください。

Apache Maven を使用する場合、Amazon Redshift JDBC ドライバーを使用した Amazon Redshift クラスターへの接続を使用するようにプロジェクトを設定および構築できます。これを行うには、プロジェクト

77

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

の pom.xml ファイルに JDBC ドライバを依存関係として追加する必要があります。Maven を使用してプロジェクトを構築し JDBC 接続を使用するには、このセクションのステップに従ってください。

Maven 依存関係としての JDBC ドライバの設定

Maven 依存関係として JDBC ドライバを設定するには

1. 以下のリポジトリを pom.xml ファイルのリポジトリセクションに追加します。

Note

以下のコードの URL は、ブラウザーで使用するとエラーを返します。この URL は Maven プロジェクト用にのみ使用するためのものです。

<repositories> <repository> <id>redshift</id> <url>http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release</url> </repository></repositories>

SSL を使用して接続するには、pom.xml ファイルに次のリポジトリを追加します。

<repositories> <repository> <id>redshift</id> <url>https://s3.amazonaws.com/redshift-maven-repository/release</url> </repository></repositories>

2. pom.xml ファイルの依存関係セクションで、使用するドライバーのバージョンを宣言します。

Amazon Redshift には、JDBC 4.2 API、JDBC 4.1 API、または JDBC 4.0 API と互換性のあるツール用のドライバーが用意されています。これらのドライバーでサポートされる機能については、「Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 70)」を参照してください。

以下のリストからドライバーの依存関係を追加します。

Note

バージョン 1.2.1.1001 移行では、汎用ドライバクラス名com.amazon.redshift.jdbc.Driver または以下のリストのドライバとともにリストされているバージョン固有のクラス名 (例: com.amazon.redshift.jdbc42.Driver) を使用できます。1.2.1001 以前のリリースでは、バージョン固有クラス名のみがサポートされています。

• JDBC 4.2 互換ドライバー:

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc42.Driver です。• JDBC 4.1 互換ドライバー:

<dependency>

78

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

<groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc41.Driver です。• JDBC 4.0 互換ドライバー:

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc4.Driver です。3. Amazon Redshift JDBC ドライバーのライセンス契約 をダウンロードして確認します。

標準の Amazon Redshift JDBC ドライバーには、IAM データベース認証を使用するために必要な AWSSDK が含まれています。ドライバーファイルのサイズがアプリケーションにとって問題ではない限り、標準ドライバーを使用することをお勧めします。り小さなドライバーファイルが必要で、IAM データベース認証を使用しない場合や、既に AWS SDK for Java 1.11. 118 以降を Java クラスパスで使用している場合は、次のリストからドライバーの依存関係を追加します。

• JDBC 4.2 互換ドライバー:

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42-no-awssdk</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc42.Driver です。• JDBC 4.1 互換ドライバー:

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41-no-awssdk</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc41.Driver です。• JDBC 4.0 互換ドライバー:

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4-no-awssdk</artifactId> <version>1.2.10.1009</version></dependency>

このドライバーのクラス名は com.amazon.redshift.jdbc4.Driver です。

Amazon Redshift Maven ドライバー (SDK なし) には、必要に応じてプロジェクトに含めることのできる次のオプションの依存関係が含まれます。

79

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional></dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-redshift</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional></dependency><dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-sts</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional></dependency>

ツールに特定のバージョンのドライバーが必要な場合は、「Maven を使用した旧バージョンの JDBC ドライバー (p. 83)」を参照してください。

これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。

最新バージョンにドライバをアップグレードする最新バージョンに Amazon Redshift JDBC ドライバをアップグレードするには、依存関係のバージョンセクションをドライバの最新バージョンに変更し、以下に示すように Maven Clean Plugin を使用してプロジェクトをクリーンアップします。

mvn clean

前バージョンの JDBC ドライバツールに特定のバージョンのドライバーが必要な場合にのみ、Amazon Redshift JDBC ドライバーの以前のバージョンをダウンロードします。これらのバージョンのドライバーでサポートされる機能については、「Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 70)」を参照してください。

AWS Identity and Access Management (IAM) の認証情報または ID プロバイダー (IdP) の認証情報を使用した認証には、Amazon Redshift JDBC ドライバーバージョン 1.2.8.1005 以降を使用します。

Important

Amazon Redshiftの SSL 証明書の管理方法が変わりました。1.2.8.1005 より前のバージョンのドライバーを使用する場合は、現在の信頼ルート CA 証明書を更新して、引き続き SSL でクラスターに接続する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

データベース認証用に Amazon Redshift JDBC ドライバーを使用する場合、Java クラスパスに AWS SDKfor Java 1.11.118 以降が必要です。AWS SDK for Java がインストールされていない場合、AWS SDK が含まれているドライバーを使用できます。詳細については、「旧バージョンの JDBC ドライバーと AWSSDK for Java (p. 82)」を参照してください。

Important

可能であれば、AWS SDK が含まれていない Amazon Redshift JDBC ドライバーを使用することを強くお勧めします。以下のリストのドライバーには、AWS SDK が含まれていません。

80

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

以前の JDBC 4.2 互換ドライバーは以下のとおりです。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC42-no-awssdk-1.2.32.1056.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/RedshiftJDBC42-no-awssdk-1.2.27.1051.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.20.1043/RedshiftJDBC42-no-awssdk-1.2.20.1043.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/RedshiftJDBC42-no-awssdk-1.2.16.1027.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.15.1025/RedshiftJDBC42-no-awssdk-1.2.15.1025.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.12.1017/RedshiftJDBC42-no-awssdk-1.2.12.1017.jar.

• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-no-awssdk-1.2.10.1009.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-no-awssdk-1.2.8.1005.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-no-awssdk-1.2.7.1003.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.2.1.1001.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.1.17.1017.jar.

以前の JDBC 4.1 互換ドライバーは以下のとおりです。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC41-no-awssdk-1.2.32.1056.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/RedshiftJDBC41-no-awssdk-1.2.27.1051.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.20.1043/RedshiftJDBC41-no-awssdk-1.2.20.1043.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/RedshiftJDBC41-no-awssdk-1.2.16.1027.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.15.1025/RedshiftJDBC41-no-awssdk-1.2.15.1025.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.12.1017/RedshiftJDBC41-no-awssdk-1.2.12.1017.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-no-awssdk-1.2.10.1009.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-no-awssdk-1.2.8.1005.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-no-awssdk-1.2.7.1003.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.10.1010.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.9.1009.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.7.1007.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.6.1006.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.2.0002.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.1.0001.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.0.0000.jar

以前の JDBC 4.0 互換ドライバーは以下のとおりです。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC4-no-awssdk-1.2.32.1056.jar

81

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/RedshiftJDBC4-no-awssdk-1.2.27.1051.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/jbdc/1.2.20.1043/RedshiftJDBC4-no-awssdk-1.2.20.1043.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jbdc/1.2.16.1027/RedshiftJDBC4-no-awssdk-1.2.16.1027.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jbdc/1.2.15.1025/RedshiftJDBC4-no-awssdk-1.2.15.1025.jar。

• https://s3.amazonaws.com/redshift-downloads/drivers/jbdc/1.2.12.1017/RedshiftJDBC4-no-awssdk-1.2.12.1017.jar

• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-no-awssdk-1.2.10.1009.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-no-awssdk-1.2.8.1005.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-no-awssdk-1.2.7.1003.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.2.1.1001.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.17.1017.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.10.1010.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.9.1009.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.7.1007.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.6.1006.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.2.0002.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.1.0001.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.0.0000.jar

旧バージョンの JDBC ドライバーと AWS SDK for Javaデータベース認証用に JDBC ドライバーを使用する場合、Java クラスパスに AWS SDK for Java 1.11.118以降が必要です。AWS SDK for Java がインストールされていない場合、AWS SDK が含まれている以下のドライバーのいずれかを使用できます。AWS SDK が含まれている最新のサポートされている AmazonRedshift JDBC ドライバーは、1.2.20.1043 です。AWS SDK が含まれている最初の Amazon RedshiftJDBC ドライバーは、1.2.8.1005 です。

Important

可能であれば、AWS SDK が含まれていない Amazon Redshift JDBC ドライバーを使用することを強くお勧めします。

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/RedshiftJDBC42-1.2.34.1058.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/RedshiftJDBC41-1.2.34.1058.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.34.1058/RedshiftJDBC4-1.2.34.1058.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC42-1.2.32.1056.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC41-1.2.32.1056.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.32.1056/RedshiftJDBC4-1.2.32.1056.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/

RedshiftJDBC42-1.2.27.1051.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/

RedshiftJDBC41-1.2.27.1051.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/RedshiftJDBC4-1.2.27.1051.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/

RedshiftJDBC42-1.2.27.1051.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/

RedshiftJDBC41-1.2.27.1051.jar。

82

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.27.1051/RedshiftJDBC4-1.2.27.1051.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.20.1043/

RedshiftJDBC42-1.2.20.1043.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.20.1043/

RedshiftJDBC41-1.2.20.1043.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.20.1043/RedshiftJDBC4-1.2.20.1043.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/RedshiftJDBC42-1.2.16.1027.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.15.1025/RedshiftJDBC42-1.2.15.1025.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.12.1017/RedshiftJDBC42-1.2.12.1017.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.2.10.1009.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.2.8.1005.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.2.7.1003.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.2.1.1001.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.17.1017.jar.• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/

RedshiftJDBC41-1.2.16.1027.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/

jdbc/1.2.12.1017RedshiftJDBC41-1.2.15.1025.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.12.1017/RedshiftJDBC41-1.2.12.1017.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.2.10.1009.jar• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.2.7.1003.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.2.8.1005.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/RedshiftJDBC4-1.2.16.1027.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.15.1025/RedshiftJDBC4-1.2.15.1025.jar• https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.12.1017/RedshiftJDBC4-1.2.12.1017.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.2.10.1009.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.2.8.1005.jar。• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.2.7.1003.jar。

Maven を使用した旧バージョンの JDBC ドライバーツールで特定のバージョンのドライバーが必要な場合にのみ、以前のバージョンの Amazon RedshiftJDBC ドライバーをプロジェクトに追加します。これらのバージョンのドライバーでサポートされる機能については、「Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 70)」を参照してください。

以前の JDBC 4.2 互換ドライバーは以下のとおりです。

• JDBC42-1.2.8.1005

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>1.2.8.1005</version></dependency>

• JDBC42-1.2.8.1005 no SDK

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42-no-awssdk</artifactId> <version>1.2.8.1005</version>

83

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

</dependency>

• JDBC42-1.2.7.1003

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>1.2.7.1003</version></dependency>

• JDBC42-1.2.1.1001

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>1.2.1.1001</version></dependency>

• JDBC42-1.1.17.1017

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>1.1.17.1017</version></dependency>

以前の JDBC 4.1 互換ドライバーは以下のとおりです。

• JDBC41-1.2.8.1005

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.2.8.1005</version></dependency>

• JDBC41-1.2.8.1005 no SDK

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41-no-awssdk</artifactId> <version>1.2.8.1005</version></dependency>

• JDBC41-1.2.7.1003

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.2.7.1003</version></dependency>

• JDBC41-1.2.1.1001

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.2.1.1001</version></dependency>

84

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

• JDBC41-1.1.17.1017

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.17.1017</version></dependency>

• JDBC41-1.1.10.1010

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.10.1010</version></dependency>

• JDBC41-1.1.9.1009

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.9.1009</version></dependency>

• JDBC41-1.1.7.1007

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.7.1007</version></dependency>

• JDBC41-1.1.6.1006

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.6.1006</version></dependency>

• JDBC41-1.1.2.0002

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.2.0002</version></dependency>

• JDBC41-1.1.1.0001

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc41</artifactId> <version>1.1.1.0001</version></dependency>

• JDBC41-1.1.0.0000

<dependency> <groupId>com.amazon.redshift</groupId>

85

Amazon Redshift クラスター管理ガイドJDBC 接続を設定する

<artifactId>redshift-jdbc41</artifactId> <version>1.1.0.0000</version></dependency>

以前の JDBC 4.0 互換ドライバーは以下のとおりです。

• JDBC4-1.2.8.1005

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.2.8.1005</version></dependency>

• JDBC4-1.2.8.1005 no SDK

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4-no-awssdk</artifactId> <version>1.2.8.1005</version></dependency>

• JDBC4-1.2.7.1003

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.2.7.1003</version></dependency>

• JDBC4-1.2.1.1001

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.2.1.1001</version></dependency>

• JDBC4-1.1.17.1017

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.17.1017</version></dependency>

• JDBC4-1.1.10.1010

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.10.1010</version></dependency>

• JDBC4-1.1.9.1009

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId>

86

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

<version>1.1.9.1009</version></dependency>

• JDBC4-1.1.7.1007

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.7.1007</version></dependency>

• JDBC4-1.1.6.1006

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.6.1006</version></dependency>

• JDBC4-1.1.2.0002

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.2.0002</version></dependency>

• JDBC4-1.1.1.0001

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.1.0001</version></dependency>

• JDBC4-1.1.0.0000

<dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc4</artifactId> <version>1.1.0.0000</version></dependency>

ODBC 接続を設定するODBC 接続を使用すると、多くのサードパーティ SQL クライアントツールおよびアプリケーションから Amazon Redshift クラスターに接続できます。これを行うには、クライアントコンピューターまたはAmazon EC2 インスタンスで接続をセットアップする必要があります。クライアントツールで JDBC がサポートされる場合、JDBC に用意された設定が簡単なため、ODBC ではなくその接続タイプを使用することを選択できます。クライアントツールで JDBC がサポートされていない場合は、このセクションの手順に従って ODBC 接続を設定します。

Amazon Redshift には Linux、Windows、および Mac OS X オペレーティングシステム用の ODBC ドライバーが用意されています。ODBC ドライバーをインストールする前に、SQL クライアントツールが 32ビットであるか 64 ビットであるかを調べる必要があります。SQL クライアントツールの要件と一致するODBC ドライバーをインストールする必要があります。一致しない場合、接続は機能しません。同じコンピューターまたはインスタンスで複数の SQL クライアントツールを使用する場合は、ダウンロードするドライバーが適切であることを確認してください。システムアーキテクチャが異なる複数のツールを使用す

87

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

る場合、32 ビットドライバーと 64 ビットドライバーの両方をインストールする必要がある場合があります。

ドライバの機能と前提条件に関する最新情報については、「Amazon Redshift ODBC ドライバのリリースノート」を確認してください。

トピック• クラスターの ODBC URL を取得する (p. 88)• Microsoft Windows オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストール

して設定する (p. 89)• Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールする (p. 92)• Mac OS X に Amazon Redshift ODBC ドライバーをインストールする (p. 94)• Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設定する (p. 95)• ODBC ドライバー設定オプション (p. 99)• 前バージョンの ODBC ドライバ (p. 104)

クラスターの ODBC URL を取得するAmazon Redshift は、Amazon Redshift consoleに、使用しているクラスターの ODBC URL を表示します。この URL には、クライアントコンピューターとデータベースの間の接続をセットアップするために必要な情報が含まれています。

ODBC の URL 形式を次に示します。

Driver={driver};Server=endpoint;Database=database_name;UID=user_name;PWD=password;Port=port_number

フィールド 値

ドライバー 使用する ODBC ドライバーの名前。使用しているアーキテクチャに対応するダウンロード対象のドライバーに応じて、値は [Amazon Redshift (x86)](32 ビットドライバーの場合)または [Amazon Redshift (x64)](64 ビットドライバーの場合)になります。

サーバー Amazon Redshift クラスターのエンドポイント。

データベース クラスター用に作成したデータベース。

UID データベースに接続するアクセス許可を持つユーザーアカウントのユーザー名。この値は Amazon Redshift のアクセス権限ではなくデータベースのアクセス権限ですが、クラスターを起動したときにセットアップしたマスターユーザーアカウントを使用できます。

PWD データベースに接続するユーザーアカウントのパスワード。

ポート クラスターを起動したときに指定したポート番号。ファイアウォールがある場合、このポートが開いていて使用できることを確認します。

ODBC URL の例を次に示します。Driver={Amazon Redshift (x64)};Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com;Database=dev; UID=masteruser; PWD=insert_your_master_user_password_here;Port=5439

ODBC URL を取得するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

88

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

2. 右上で、クラスターを作成したリージョンを選択します。

Amazon Redshift 入門ガイド に従って、[US West (Oregon) (米国西部 (オレゴン))] を選択します。3. 左のナビゲーションペインの [Clusters (クラスター)] をクリックし、クラスターをクリックします。

Amazon Redshift 入門ガイド に従った場合は、[examplecluster] をクリックします。4. [Configuration (設定)] タブで、[Cluster Database Properties (クラスターデータベースプロパティ)] の下

にある、クラスターの ODBC URL をコピーします。

Microsoft Windows オペレーティングシステムに AmazonRedshift ODBC ドライバーをインストールして設定するシステム要件Amazon Redshift データウェアハウスにアクセスするクライアントコンピュータに Amazon RedshiftODBC ドライバーをインストールします。ドライバーをインストールするコンピューターは、それぞれ以下の最小システム要件を満たしている必要があります。

• Microsoft Windows Vista 以降のオペレーティング システム• 55 MB の使用可能なディスク容量• クライアントコンピューターの管理者権限• データベースに接続するための Amazon Redshift マスターユーザーまたはユーザーアカウント

Windows オペレーティングシステムへの Amazon Redshift ドライバーのインストールこのセクションの手順を使用して、Microsoft Windows オペレーティングシステム用の Amazon RedshiftODBC ドライバーをダウンロードします。Amazon Redshift での使用が認定されている、固有のドライバーを必要とするサードパーティアプリケーションを実行している場合にのみ、これらとは異なるドライバーを使用できます。

ODBC ドライバーをインストールするには

89

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

1. 使用する SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに応じて、次のいずれかをダウンロードします。• 32 ビット: https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.7.1000/

AmazonRedshiftODBC32-1.4.7.1000.msi

このドライバーの名前は Amazon Redshift (x86) です。• 64 ビット: https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.7.1000/

AmazonRedshiftODBC64-1.4.7.1000.msi

このドライバーの名前は Amazon Redshift (x64) です。

Note

SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに対応する MSIパッケージをダウンロードします。たとえば、SQL クライアントツールが 64 ビットである場合は、64 ビットドライバーをインストールします。

次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。

2. .msi ファイルをダブルクリックし、ウィザードの手順に従ってドライバーをインストールします。

Microsoft Windows での ODBC 接続用のシステム DSN エントリの作成

ODBC ドライバーをダウンロードしてインストールした後、クライアントマシンか Amazon EC2 インスタンスにデータソース名 (DSN) エントリを追加する必要があります。SQL クライアントツールは、このデータソースを使用して Amazon Redshift データベースに接続します。

Note

AWS Identity and Access Management (IAM) の認証情報または ID プロバイダ (IdP) の認証情報を使用した認証には、追加のステップが必要です。詳細については、「IAM 認証情報を使用するように JDBC または ODBC 接続を設定する (p. 234)」を参照してください。

システム DSN エントリを作成するには

1. [スタート] メニューのプログラムのリストでドライバーフォルダを見つけます。

Note

32 ビットドライバーをインストールした場合、フォルダ名は [Amazon Redshift ODBC Driver(32-bit) (ODBC ドライバー (32 ビット))] です。64 ビットドライバーをインストールした場合、フォルダ名は Amazon Redshift ODBC Driver (64-bit) (ODBC ドライバー (64 ビット)) です。両方のドライバーをインストールした場合、ドライバーごとにフォルダがあります。

2. [ODBC Administrator (ODBC 管理者)] をクリックし、プロンプトが表示されたら、管理者認証情報を入力します。

3. コンピュータのすべてのユーザーに対してドライバーを設定する場合は [System DSN (システム DSN)]タブを選択し、使用するユーザーアカウントのみに対してドライバーを設定する場合は [User DSN(ユーザー DSN)] タブを選択します。

4. [Add] をクリックします。[Create New Data Source (新しいデータソースの作成)] ウィンドウが開きます。

5. Amazon Redshift ODBC ドライバーを選択し、[Finish (完了)] をクリックします。[Amazon RedshiftODBC Driver DSN Setup (ODBC ドライバー DSN セットアップ)] ウィンドウが開きます。

6. [接続設定] で以下の情報を入力します。

データソース名

90

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

データソースの名前を入力します。クラスターへの接続を作成するときに、後でデータソースを識別するためにどのような名前でも使用できます。たとえば、Amazon Redshift 入門ガイド に従った場合は、この DSN に関連付けるクラスターを覚えやすくするために「exampleclusterdsn」と入力します。

サーバー

Amazon Redshift クラスターのエンドポイントを指定します。この情報は Amazon Redshift consoleのクラスターの詳細ページで見つけることができます。詳細については、「Amazon Redshift での接続の設定 (p. 69)」を参照してください。

ポート

データベースが使用するポート番号を入力します。デフォルトでは、Amazon Redshift は 5439 を使用しますが、クラスターが起動されたときに使用するように設定されたポートを使用する必要があります。

データベース

Amazon Redshift データベースの名前を入力します。データベース名を指定せずにクラスターを起動した場合は、「dev」と入力します。それ以外の場合は、起動プロセスで選択した名前を使用します。Amazon Redshift 入門ガイド に従った場合は、「dev」と入力します。

7. [Credentials (認証情報)] で以下の情報を入力します。

ユーザー

データベースにアクセスするために使用するデータベースユーザーアカウントのユーザー名を入力します。Amazon Redshift 入門ガイド に従った場合は、「masteruser」と入力します。

パスワード

データベースユーザーアカウントに対応するパスワードを入力します。8. [SSL Settings (SSL 設定)] で次の値を指定します。

SSL 認証

Secure Sockets Layer (SSL) を処理するモードを選択します。テスト環境では prefer を使用できますが、本稼働環境では、安全なデータ交換が必要な場合、verify-ca または verify-full を使用します。SSL の使用の詳細については、「SSL を使用して接続する (p. 107)」を参照してください。

9. [Additional Options (追加オプション)] で以下のいずれかのオプションを選択して、クエリの結果を SQLクライアントツールまたはアプリケーションに返す方法を指定します。• [Single Row Mode (単一行モード)]。クエリの結果が一度に 1 行ずつ SQL クライアントツールまたは

アプリケーションに返されるようにする場合は、このオプションを選択します。このオプションは、大規模な結果セットのクエリを実行するため、結果全体をメモリに取り込みたくない場合に使用します。このオプションを無効にするとパフォーマンスは向上しますが、メモリ不足エラーの数が増える可能性があります。

• [Use Declare/Fetch (宣言/取得の使用)]。クエリの結果が一度に指定した行数ずつ SQL クライアントツールまたはアプリケーションに返されるようにする場合は、このオプションを選択します。[CacheSize (キャッシュサイズ)] で行の数を指定します。

• [Use Multiple Statements (複数のステートメントの使用)]。クエリの複数の SQL ステートメントに基づいて結果が返されるようにするには、このオプションを選択します。

• [Retrieve Entire Result Into Memory (結果全体をメモリに取得する)]。クエリの結果が一度にすべてSQL クライアントツールまたはアプリケーションに返されるようにする場合は、このオプションを選択します。デフォルトは有効です。

10.[Logging Options (ログ記録オプション)] で以下の値を指定します。• [Log Level (ログレベル)]。ログ記録を有効にするかどうかと、ログに記録する詳細のレベルを指定す

るオプションを選択します。

91

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

Important

問題に関する情報を取り込む必要がある場合にのみログ記録を有効にしてください。ログ記録によってパフォーマンスが低下し、ディスク容量が大量に消費される可能性があります。

• [Log Path (ログパス)]。ログファイルを保存するフォルダへの完全パスを指定します。

次に、[OK (はい)] をクリックします。11.[Data Type Options (データ型オプション)] で以下の値を指定します。

• [Use Unicode (ユニコードの使用)]。Unicode 文字のサポートを有効にするには、このオプションを選択します。デフォルトは有効です。

• [Show Boolean Column As String (ブール列を文字列として表示する)]。文字列値としてビット値ではなくブール値が表示されるようにする場合は、このオプションを選択します。これを有効にすると、1 および 0 ではなく "1" および "0" と表示されます。デフォルトは有効です。

• [Text as LongVarChar (LongVarChar としてのテキスト)]。テキストが LongVarChar として表示されるようにするには、このオプションを選択します。デフォルトは有効です。

• [Max Varchar (最大 Varchar)]。Varchar データ型の最大値を指定します。指定した最大値より大きい値を持つ Varchar フィールドは LongVarchar に昇格します。デフォルト値は 255 です。

• [Max LongVarChar (最大 LongVarChar)]。LongVarChar データ型の最大値を指定します。指定した最大値より大きい LongVarChar フィールド値は切り捨てられます。デフォルト値は 8190 です。

• [Max Bytea (最大 Bytea)]。Bytea データ型の最大値を指定します。指定した最大値より大きい Byteaフィールド値は切り捨てられます。デフォルト値は 255 です。

Note

Bytea データ型は、Amazon Redshift システムテーブルおよびビューでのみ使用され、他ではサポートされていません。

次に、[OK (はい)] をクリックします。12.[Test (テスト)] をクリックします。クライアントコンピュータが Amazon Redshift データベースに接続

できる場合は、次のメッセージが表示されます。[Connection successful (接続成功)]

クライアントコンピューターがデータベースに接続できない場合、考えられる問題をトラブルシューティングすることができます。詳細については、「Amazon Redshift での接続の問題のトラブルシューティング (p. 123)」を参照してください。

Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールする

システム要件

Amazon Redshift データウェアハウスにアクセスするクライアントコンピュータに Amazon RedshiftODBC ドライバーをインストールします。ドライバーをインストールするコンピューターは、それぞれ以下の最小システム要件を満たしている必要があります。

• 以下のいずれかの Linux ディストリビューション (32 および 64 ビットエディション)• Red Hat Enterprise Linux (RHEL) 5.0/6.0/7.0• CentOS 5.0/6.0/7.0• Debian 7• SUSE Linux Enterprise Server (SLES) 11

• 75 MB の使用可能なディスク容量• 以下のいずれかの ODBC ドライバーマネージャー

92

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

• iODBC ドライバーマネージャー 3.52.7 以降。iODBC ドライバーマネージャーの詳細とダウンロードリンクについては、Independent Open Database Connectivity のウェブサイトにアクセスしてください。

• unixODBC 2.3.0 以降。unixODBC ドライバーマネージャーの詳細とダウンロードリンクについては、unixODBC のウェブサイトにアクセスしてください。

• ドライババージョン 1.4.4 以降、libstdc++ バージョン 6.0.20 以降が必要です。詳細については、「Amazon Redshift ODBC ドライバーリリースノート」を参照してください。

• データベースに接続するための Amazon Redshift マスターユーザーまたはユーザーアカウント

Linux オペレーティングシステムでの Amazon Redshift ドライバーのインストール

このセクションの手順を使用して、サポートされている Linux ディストリビューションに AmazonRedshift ODBC ドライバーをダウンロードしてインストールします。インストールプロセスでは、以下のディレクトリにドライバーファイルがインストールされます。

• /opt/amazon/redshiftodbc/lib/32 (32 ビットドライバーの場合)• /opt/amazon/redshiftodbc/lib/64 (64 ビットドライバーの場合)• /opt/amazon/redshiftodbc/ErrorMessages• /opt/amazon/redshiftodbc/Setup

Amazon Redshift ODBC ドライバーをインストールするには

1. 使用する SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに応じて、次のいずれかをダウンロードします。

• 32 ビット .rpm: https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.7.1000/AmazonRedshiftODBC-32-bit-1.4.7.1000-1.i686.rpm

• 64 ビット .rpm: https://redshift-downloads.s3.amazonaws.com/drivers/odbc/1.4.7.1000/AmazonRedshiftODBC-64-bit-1.4.7.1000-1.x86_64.rpm

• Debian 32 ビット .deb: https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.7.1000/AmazonRedshiftODBC-32-bit-1.4.7.1000-1.i686.deb

• Debian 64 ビット .deb: https://redshift-downloads.s3.amazonaws.com/drivers/odbc/1.4.7.1000/AmazonRedshiftODBC-64-bit-1.4.7.1000-1.x86_64.deb

これらのドライバーの名前はどちらも Amazon Redshift ODBC ドライバーです。

Note

SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに対応するパッケージをダウンロードします。たとえば、クライアントツールが 64 ビットである場合は、64 ビットドライバーをインストールします。

次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。

2. パッケージをダウンロードした場所に移動し、以下のいずれかのコマンドを実行します。使用している Linux ディストリビューションに対応するコマンドを使用します。

• RHEL 5.0/6.0 および CentOS 5.0/6.0 オペレーティングシステムでは、次のコマンドを実行します。

93

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

yum --nogpgcheck localinstall RPMFileName

RPMFileName を RPM パッケージのファイル名に置き換えます。たとえば、次のコマンドは 32ビットドライバーのインストールを示しています。

yum --nogpgcheck localinstall AmazonRedshiftODBC-32bit-1.x.x.xxxx-x.x86_64.deb

• SLES では、次のコマンドを実行します。

zypper install RPMFileName

RPMFileName を RPM パッケージのファイル名に置き換えます。たとえば、次のコマンドは 64ビットドライバーのインストールを示しています。

zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm

• Debian 7 で、このコマンドを実行します。

sudo apt install ./DEBFileName.deb

DEBFileName.deb を Debian パッケージのファイル名に置き換えます。たとえば、次のコマンドは 64 ビットドライバーのインストールを示しています。

sudo apt install ./AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.deb

Important

ドライバーのインストールが完了したら、ドライバーをシステムで使用できるように設定します。ドライバー設定の詳細については、「Linux および Mac OS X オペレーティングシステムでODBC ドライバーを設定する (p. 95)」を参照してください。

Mac OS X に Amazon Redshift ODBC ドライバーをインストールする

システム要件

Amazon Redshift データウェアハウスにアクセスするクライアントコンピューターにドライバーをインストールします。ドライバーをインストールするコンピューターは、それぞれ以下の最小システム要件を満たしている必要があります。

• Mac OS X バージョン 10.6.8 以降。• 215 MB の使用可能なディスク容量• iODBC ドライバーマネージャーバージョン 3.52.7 以降。iODBC ドライバーマネージャーの詳細とダウ

ンロードリンクについては、Independent Open Database Connectivity のウェブサイトにアクセスしてください。

• データベースに接続するための Amazon Redshift マスターユーザーまたはユーザーアカウント

94

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

Mac OS X への Amazon Redshift ドライバーのインストールこのセクションの手順を使用して、サポートされているバージョンの Mac OS X に Amazon RedshiftODBC ドライバーをダウンロードしてインストールします。インストールプロセスでは、以下のディレクトリにドライバーファイルがインストールされます。

• /opt/amazon/redshift/lib/universal• /opt/amazon/redshift/ErrorMessages• /opt/amazon/redshift/Setup

Mac OS X に Amazon Redshift ODBC ドライバーをインストールするには

1. https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.7.1000/AmazonRedshiftODBC-1.4.7.1000.dmg をダウンロードします。このドライバーの名前は AmazonRedshift ODBC ドライバーです。

次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。

2. AmazonRedshiftODBC.dmg をダブルクリックしてディスクイメージをマウントします。3. AmazonRedshiftODBC.pkg をダブルクリックしてインストーラを実行します。4. インストーラの手順に従ってドライバーのインストールプロセスを完了します。インストールを実行

するには、ライセンス契約の条件に同意する必要があります。

Important

ドライバーのインストールが完了したら、ドライバーをシステムで使用できるように設定します。ドライバー設定の詳細については、「Linux および Mac OS X オペレーティングシステムでODBC ドライバーを設定する (p. 95)」を参照してください。

Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設定するLinux および Mac OS X オペレーティングシステムでは、ODBC ドライバーマネージャーを使用してODBC 接続を設定します。ODBC ドライバーマネージャーは設定ファイルを使用して ODBC データソースおよびドライバーを定義および設定します。使用する ODBC ドライバーマネージャーは、使用するオペレーティングシステムによって異なります。Amazon Redshift ODBC ドライバーを設定するために使用できる ODBC ドライバーマネージャーの詳細については、「システム要件 (p. 92)」(Linux オペレーティングシステムの場合)および「システム要件 (p. 94)」(Mac OS X オペレーティングシステムの場合)を参照してください。

Amazon Redshift ODBC ドライバーを設定するには、amazon.redshiftodbc.ini、odbcinst.ini、および odbc.ini の 3 つのファイルが必要です。

デフォルトの場所にインストールした場合、amazon.redshiftodbc.ini 設定ファイルは以下のいずれかのディレクトリにあります。

• /opt/amazon/redshiftodbc/lib/32 (Linux オペレーティングシステムの 32 ビットドライバーの場合)• /opt/amazon/redshiftodbc/lib/64 (Linux オペレーティングシステムの 64 ビットドライバーの場合)• /opt/amazon/redshift/lib (Mac OS X のドライバーの場合)

さらに、/opt/amazon/redshiftodbc/Setup (Linux の場合) または /opt/amazon/redshift/Setup (Mac OS X の場合) には、Amazon Redshift ODBC ドライバーとデータソース名 (DSN) を設定するための例として使用できる odbc.ini および odbcinst.ini サンプルファイルがあります。

95

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

設定ファイルに Amazon Redshift ODBC ドライバーのインストールディレクトリを使用することは推奨されません。Setup ディレクトリのサンプルファイルは例示のみを目的としています。Amazon RedshiftODBC ドライバーを後で再インストールするか、新しいバージョンにアップグレードする場合、インストールディレクトリは上書きされ、これらのファイルに対して行われた変更はすべて失われます。

これを回避するには、インストールディレクトリ以外のディレクトリに amazon.redshiftodbc.ini ファイルをコピーする必要があります。このファイルをユーザーのホームディレクトリにコピーする場合は、隠しファイルにするためにファイル名の先頭にピリオド (.) を追加します。

odbc.ini ファイルと odbcinst.ini ファイルについては、ユーザーのホームディレクトリ内の設定ファイルを使用するか、別のディレクトリに新しいバージョンを作成する必要があります。デフォルトでは、Linuxまたは Mac OS X オペレーティングシステムは、ユーザーのホームディレクトリ (/home/$USER または~/.) に .odbc.ini ファイルと .odbcinst.ini ファイルを格納します。これらのデフォルトのファイルは隠しファイルであり (ファイル名の先頭にピリオド (.) があります)、ディレクトリの内容を一覧表示するために-a フラグを使用するときにのみ表示されます。

選択するディレクトリに関係なく、odbc.ini ファイルと odbcinst.ini ファイルを編集してドライバーおよびDSN 設定情報を追加する必要があります。新しいファイルを作成する場合は、これらの設定ファイルの場所を指定する環境変数を設定する必要もあります。

odbc.ini ファイルの設定odbc.ini ファイルを使用してデータソース名 (DSN) を定義します。

Linux オペレーティングシステムでは次の形式を使用します。

[ODBC Data Sources]driver_name=dsn_name

[dsn_name]Driver=path/driver_file

Host=cluster_endpointPort=port_numberDatabase=database_namelocale=locale

次の例は、Linux オペレーティングシステムでの odbc.ini の設定を示しています。

[ODBC Data Sources]Amazon_Redshift_x32=Amazon Redshift (x86)Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x86)]Driver=/opt/amazon/redshiftodbc/lib/32/lib/amazonredshiftodbc32.soHost=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.comPort=5932Database=devlocale=en-US

[Amazon Redshift (x64)]Driver=/opt/amazon/redshiftodbc/lib/64/lib/amazonredshiftodbc64.soHost=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.comPort=5932Database=devlocale=en-US

Mac OS X オペレーティングシステムでは次の形式を使用します。

[ODBC Data Sources]driver_name=dsn_name

96

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

[dsn_name]Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpointPort=port_numberDatabase=database_namelocale=locale

次の例は、Mac OS X オペレーティングシステムでの odbc.ini の設定を示しています。

[ODBC Data Sources]Amazon_Redshift_dylib=Amazon Redshift DSN for Mac OS X

[Amazon Redshift DSN for Mac OS X]Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylibHost=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.comPort=5932Database=devlocale=en-US

odbcinst.ini ファイルの設定odbcinst.ini ファイルを使用して ODBC ドライバーを定義します。

Linux オペレーティングシステムでは次の形式を使用します。

[ODBC Drivers]driver_name=Installed... [driver_name]Description=driver_descriptionDriver=path/driver_file ...

次の例は、Linux オペレーティングシステムでデフォルトのディレクトリにインストールされた 32 ビットドライバーと 64 ビットドライバーの両方の odbcinst.ini 設定を示しています。

[ODBC Drivers]Amazon Redshift (x86)=InstalledAmazon Redshift (x64)=Installed

[Amazon Redshift (x86)]Description=Amazon Redshift ODBC Driver (32-bit)Driver=/opt/amazon/redshiftodbc/lib/32/lib/amazonredshiftodbc32.so

[Amazon Redshift (x64)]Description=Amazon Redshift ODBC Driver (64-bit)Driver=/opt/amazon/redshiftodbc/lib/64/lib/amazonredshiftodbc64.so

Mac OS X オペレーティングシステムでは次の形式を使用します。

[ODBC Drivers]driver_name=Installed... [driver_name]Description=driver_descriptionDriver=path/lib/amazonredshiftodbc.dylib

97

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

...

次の例は、Mac OS X オペレーティングシステムでデフォルトのディレクトリにインストールされたドライバーの odbcinst.ini 設定を示しています。

[ODBC Drivers]Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]Description=Amazon Redshift ODBC Driver for Mac OS XDriver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib

ドライバー設定ファイルの環境変数の設定Amazon Redshift ODBC ドライバーを正しく機能させるには、以下で説明するように多くの環境変数を設定する必要があります。

ドライバーマネージャーライブラリへのパスを指定する環境変数を設定します。

• Linux では、ドライバーマネージャーライブラリを含んでいるディレクトリを指すようにLD_LIBRARY_PATH を設定します。サポートされているドライバーマネージャーの詳細については、「Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールする (p. 92)」を参照してください。

• Mac OS X では、ドライバーマネージャーライブラリを含んでいるディレクトリを指すようにDYLD_LIBRARY_PATH を設定します。サポートされているドライバーマネージャーの詳細については、「Mac OS X に Amazon Redshift ODBC ドライバーをインストールする (p. 94)」を参照してください。

必要に応じて、amazon.redshiftodbc.ini ファイルを指すように AMAZONREDSHIFTODBCINI を設定します。AMAZONREDSHIFTODBCINI ではファイル名を含む完全パスを指定する必要があります。この変数を設定するか、システムが検索で見つける場所にこのファイルを配置する必要があります。amazon.redshiftodbc.ini ファイルを見つけるとき、次の検索順序が使用されます。

1. AMAZONREDSHIFTODBCINI 環境変数が定義されている場合、ドライバーはこの環境変数で指定されているファイルを検索します。

2. AMAZONREDSHIFTODBCINI 環境変数が定義されていない場合、ドライバーはその独自のディレクトリ(ドライバーバイナリを含むディレクトリ) で探します。

3. amazon.redshiftodbc.ini ファイルが見つからない場合、ドライバーはドライバーマネージャーの設定の自動的な特定と接続を試みます。ただし、この場合、エラーメッセージは正しく表示されません。

odbc.ini ファイルと odbcinst.ini ファイルをユーザーのホームディレクトリ以外のディレクトリに格納する場合は、設定ファイルの場所を指定する環境変数を設定する必要もあります。

• odbc.ini ファイルを指すように ODBCINI を設定します。• odbcinst.ini ファイルを含んでいるディレクトリを指すように ODBCSYSINI を設定します。

Linux を使用する場合、ドライブマネージャーライブラリは /usr/local/lib directory, your odbc.iniに、amazon.redshiftodbc.ini ファイルは /etc directory に、odbcinst.ini ファイルは /usr/local/odbc directoryにあります。また、次の例に示すように環境変数を設定してください。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libexport ODBCINI=/etc/odbc.iniexport AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini export ODBCSYSINI=/usr/local/odbc

98

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

Mac OS X を使用する場合、ドライブマネージャーライブラリは /usr/local/lib directory, your odbc.iniに、amazon.redshiftodbc.ini ファイルは /etc directory に、odbcinst.ini ファイルは /usr/local/odbc directoryにあります。また、次の例に示すように環境変数を設定してください。

export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/libexport ODBCINI=/etc/odbc.iniexport AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini export ODBCSYSINI=/usr/local/odbc

ODBC ドライバー設定オプション次の表に示す設定オプションを使用して、Amazon Redshift ODBC ドライバーの動作をコントロールできます。

Microsoft Windows では、通常、データソース名 (DSN) を設定するときにドライバーオプションを設定します。プログラムによって接続するときに、または HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\エエエエ DSN でレジストリキーを追加または変更することによって、接続文字列でドライバーオプションを設定することもできます。DSN の設定の詳細については、「Microsoft Windows オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールして設定する (p. 89)」を参照してください。接続文字列でドライバーオプションを設定する例については、「クラスターにプログラムで接続する (p. 119)」を参照してください。

Linux および Mac OS X では、「Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設定する (p. 95)」で説明されているように、odbc.ini ファイルと amazon.redshiftodbc.ini ファイルでドライバー設定オプションを設定します。amazon.redshiftodbc.ini ファイルで設定されている設定オプションは、すべての接続に適用されます。これに対して、odbc.ini ファイルで設定されている設定オプションは接続に固有です。odbc.ini で設定されている設定オプションは amazon.redshiftodbc.ini で設定されている設定オプションよりも優先されます。

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

AccessKeyID いいえ null IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー ID。AccessKeyIDオプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC および ODBC のオプション (p. 241)」を参照してください。AccessKeyID および SecretAccessKey は一緒に指定する必要があります。

AutoCreate いいえ false DbUser に指定した名前でデータベースユーザーを作成するには (存在しない場合)、true を指定します。AutoCreate オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

BoolsAsChar はい 0 このオプションが有効 (1) になっていると、ドライバーはブール値を長さが 5 文字の SQL_VARCHARデータ型として公開します。

99

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

このオプションが無効 (0) になっていると、ドライバーはブール値を SQL_BIT データ型として公開します。

データベース はい   接続が確立されるときに使用するデータベースの名前。

DbGroups いいえ null データベースユーザーが現在のセッションで参加する既存のデータベースグループの名前のカンマ区切りリスト。DbGroups オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

DbUser いいえ null データベースユーザーの名前。DbUser オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「データベースユーザー認証情報を作成するためのJDBC および ODBC のオプション (p. 244)」を参照してください。

ドライバー はい   Amazon Redshift ODBC ドライバーの共有オブジェクトファイルの場所。

取得 はい 100 UseDeclareFetch が有効になっているときにドライバーが返す行数。

Iam はい   IAM データベース認証を使用するには、1 を指定します。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

InstanceProfile いいえ   接続に使用する Amazon EC2 インスタンスプロファイル。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

KeepAlive いいえ。キープアライブがTCP/IP レベルで無効になっている場合、KeepAliveTimeとKeepAliveIntervalは 0 に設定されます。

1 このオプションが有効 (1) になっていると、ドライバーは TCP キープアライブを使用して接続がタイムアウトしないようにします。

このオプションが無効 (0) になっていると、ドライバーは TCP キープアライブを使用しません。

100

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

KeepAliveCount いいえ 0 接続が切断されていると見なされる前に失うことが許容される TCP キープアライブパケットの数。

このオプションが 0 に設定されていると、ドライバーはこの設定の代わりに TCP/IP システムデフォルトを使用します。

KeepAliveTime はい 0 ドライバーが TCP キープアライブパケットを送信する前にアイドル状態である秒数。

このオプションが 0 に設定されていると、ドライバーはこの設定の代わりに TCP/IP システムデフォルトを使用します。

KeepAliveInterval はい 0 TCP キープアライブを再送信する間隔の秒数。

国 いいえ en-US エラーメッセージに使用するロケール。

MaxBytea はい 255 BYTEA 列の最大データ長 (バイト単位)。

MaxLongVarChar はい 8190 LONG VARCHAR 列の最大データ長 (UTF-8 コード単位)。

MaxVarchar はい 255 VARCHAR 列の最大データ長 (UTF-8 コード単位)。

ポート はい   Amazon Redshift サーバー上の接続先のポート。

Note

デフォルトでは、Amazon Redshift はポート5439 を使用します。

プロフィール いいえ null JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。Plugin_Name オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「設定プロファイルを使用する (p. 243)」を参照してください。

PWD またはPassword

はい   Amazon Redshift サーバーに接続するために使用するパスワード。

SecretAccessKey いいえ null IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのシークレットアクセスキー。SecretAccessKey オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC および ODBC のオプション (p. 241)」を参照してください。AccessKeyID および SecretAccessKey は一緒に指定する必要があります。

Server またはServername

はい   Amazon Redshift サーバーの IP アドレスまたはホスト名。

101

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

SessionToken いいえ null IAM データベース認証用に設定された IAM ロールの一時セッショントークン。SessionToken は、IAM データベース認証が IAM ユーザーに対して設定されている場合は必要ありません。SessionToken オプションは、IAM データベース認証を設定するために使用される一連のオプションの一部です。詳細については、「IAM 認証情報を提供するための JDBC およびODBC のオプション (p. 241)」を参照してください。SessionToken を使用する場合、AccessKeyID および SecretAccessKey も指定する必要があります。

SingleRowMode いいえ 0 このオプションが有効 (1) になっていると、ドライバーはクエリの結果を一度に 1 行ずつ返します。このオプションは、大規模な結果のクエリを実行するため、結果全体をメモリに取り込みたくない場合に有効にします。

このオプションと UseDeclareFetch の両方が無効 (0)になっていると、ドライバーはクエリの結果全体をメモリに取り込みます。

Note

UseDeclareFetch が有効 (1) になっていると、それは SingleRowMode よりも優先されます。SingleRowMode が有効 (1)になっており、UseDeclareFetch が無効(0) になっていると、SingleRowMode はUseMultipleStatements よりも優先されます。

SSLCertPath はい デフォルトのファイル名はroot.crtで、デフォルトのパスはドライバーの DLLファイルの場所です。

サーバー証明書を認証するための認証機関バンドルを含むファイルの完全パス。このオプションが設定されていない場合、ドライバーはドライバーの DLL ファイルが格納されているフォルダー内を探します。

102

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

SSLMode はい require 接続するときに使用する SSL 証明書認証モード。使用できる SSL モードの詳細については、「ODBC でSSL および信頼 CA 証明書を使用する (p. 108)」を参照してください。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。1.3.7.1000 より前のバージョンの ODBC ドライバーを使用する場合は、現在の信頼ルート CA 証明書を更新して、引き続き SSL でクラスターに接続する必要があります。詳細については、「SSL 接続用 ACM証明書への移行 (p. 110)」を参照してください。

TextAsLongVarchar はい 0 このオプションが有効 (1) になっていると、ドライバーは LONG VARCHAR データとして TEXT 列を返します。

このオプションが無効 (0) になっていると、ドライバーは TEXT データとして TEXT 列を返します。

UID はい   Amazon Redshift サーバーに接続するために使うユーザー名。

UseDeclareFetch はい 0 このオプションが有効 (1) になっていると、ドライバーは一度に特定の数の行を返します。行数を設定するには、Fetch オプションを使用します。

このオプションが無効 (0) になっており、SingleRowMode が有効 (1) になっていると、ドライバーはクエリの結果を一度に 1 行ずつ返します。SingleRowMode も無効 (0) になっていると、ドライバーはクエリの結果全体をメモリに取り込みます。

Note

UseDeclareFetch が有効になっていると、UseDeclareFetch は SingleRowMode および UseMultipleStatements よりも優先されます。

103

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

ODBC オプション 一致するPostgreSQLオプションの有無

デフォルト値

Description

UseMultipleStatementsいいえ 0 このオプションが有効 (1) になっていると、ドライバーは複数のステートメントに分割されたクエリを実行できます。

このオプションが無効 (0) になっていると、ドライバーはクエリを 1 つのステートメントとして実行します。

Note

UseDeclareFetch が有効 (1) になっていると、UseDeclareFetch はUseMultipleStatements よりも優先されます。UseDeclareFetch が無効 (0) になっており、SingleRowMode が有効(1) になっていると、SingleRowMode はUseMultipleStatements よりも優先されます。

ユーザー名 はい   UID (Amazon Redshift サーバーに接続するために使用するユーザー名) と同じ情報。UID が定義されていると、UID はユーザー名よりも優先されます。

UseUnicode いいえ 0 このオプションが有効 (1) になっていると、ドライバーはデータを Unicode 文字型として返します。

• CHAR は SQL_WCHAR として返されます。• VARCHAR は SQL_WVARCHAR として返されま

す。• テキストは SQL_WLONGVARCHAR として返され

ます。

このオプションが無効 (0) になっていると、ドライバーはデータを通常の SQL の型として返します。

• CHAR は SQL_CHAR として返されます。• VARCHAR は SQL_VARCHAR として返されます。• TEXT は SQL_LONGVARCHAR として返されま

す。

前バージョンの ODBC ドライバツールに特定のバージョンのドライバーが必要な場合にのみ、Amazon Redshift ODBC ドライバーの以前のバージョンをダウンロードします。以前のバージョンのドライバーでサポートされる機能については、「Amazon Redshift ODBC ドライバーリリースノート」を参照してください。

AWS Identity and Access Management (IAM) の認証情報または ID プロバイダー (IdP) の認証情報を使用した認証には、Amazon Redshift ODBC ドライバーバージョン 1.3.6.1000 以降を使用します。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。1.3.7.1000 より前のバージョンのドライバーを使用する場合は、現在の信頼ルート CA 証明書を更新して、引き続き SSL で

104

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

クラスターに接続する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

旧バージョンの ODBC ドライバー (Windows 用)

以前の 32 ビットドライバーを以下に示します。

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC32-1.4.6.1000.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC32-1.4.4.1001.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.3.1000/AmazonRedshiftODBC32-1.4.3.1000.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.2.1010/AmazonRedshiftODBC32-1.4.2.1010.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.1.1001/AmazonRedshiftODBC32-1.4.1.1001.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.3.7.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.3.6.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.3.1.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.2.7.1007.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.2.6.1006.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.2.1.1001.msi

以前の 64 ビットドライバーを以下に示します。

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC64-1.4.6.1000.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC64-1.4.4.1001.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.3.1000/AmazonRedshiftODBC64-1.4.3.1000.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.2.1010/AmazonRedshiftODBC64-1.4.2.1010.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.1.1001/AmazonRedshiftODBC64-1.4.1.1001.msi

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.3.7.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.3.6.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.3.1.1000.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.2.7.1007.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.2.6.1006.msi• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64-1.2.1.1001.msi

旧バージョンの ODBC ドライバー (Linux 用)

以前のバージョンの 32 ビットドライバーを以下に示します。

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC-32-bit-1.4.6.1000-1.i686.rpm

105

Amazon Redshift クラスター管理ガイドODBC 接続を設定する

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC-32-bit-1.4.6.1000-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC-32-bit-1.4.4.1001-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC-32-bit-1.4.4.1001-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.3.1000/AmazonRedshiftODBC-32-bit-1.4.3.1000-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.2.1010/AmazonRedshiftODBC-32-bit-1.4.2.1010-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.1.1001/AmazonRedshiftODBC-32-bit-1.4.1.1001-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.3.7.1000-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.3.1000/AmazonRedshiftODBC-32-bit-1.4.3.1000-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.2.1010/AmazonRedshiftODBC-32-bit-1.4.2.1010-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.1.1001/AmazonRedshiftODBC-32-bit-1.4.1.1001-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.3.7.1000-1.i686.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.3.6.1000-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.3.1.1000-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.2.7.1007-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.2.6.1006-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.2.1.1001-1.i686.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-32bit-1.1.0.0000-1.i686.rpm

以前のバージョンの 64 ビットドライバーを以下に示します。

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC-64-bit-1.4.6.1000-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC-64-bit-1.4.6.1000-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC-64-bit-1.4.4.1001-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.4.1001/AmazonRedshiftODBC-64-bit-1.4.4.1001-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64-bit-1.4.3.1000-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64-bit-1.4.2.1010-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64-bit-1.4.1.1000-1.x86_64.rpm

106

Amazon Redshift クラスター管理ガイド接続のセキュリティオプションを設定する

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.3.7.1000-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.3.1000/AmazonRedshiftODBC-64-bit-1.4.3.1000-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.2.1010/AmazonRedshiftODBC-64-bit-1.4.2.1010-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.1.1001/AmazonRedshiftODBC-64-bit-1.4.1.1001-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.3.7.1000-1.x86_64.deb

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.3.6.1000-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.3.1.1000-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.2.7.1007-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.2.6.1006-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.2.1.1001-1.x86_64.rpm

• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-64bit-1.1.0.0000-1.x86_64.rpm

旧バージョンの ODBC ドライバー (Mac 用)

Mac OS X 用の以前のバージョンの Amazon Redshift ODBC ドライバーを以下に示します。

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.6.1000/AmazonRedshiftODBC-1.4.6.1000.dmg

• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/AmazonRedshiftODBC-1.4.4.1001.dmg。• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/AmazonRedshiftODBC-1.4.3.1000.dmg。• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/AmazonRedshiftODBC-1.4.2.1010.dmg。• https://s3.amazonaws.com/redshift-downloads/drivers/odbc/AmazonRedshiftODBC-1.4.1.1001.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.3.7.1000.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.3.6.1000.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.3.1.1000.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.2.7.1007.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC_1.2.6.1006.dmg• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.2.1.1001.dmg

接続のセキュリティオプションを設定するAmazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサーバー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。

SSL を使用して接続するSSL 接続をサポートするために、Amazon Redshift では、「AWS Certificate Manager (ACM)」によって発行された SSL 証明書を作成して各クラスターにインストールします。SSL 接続を適切にサポートする

107

Amazon Redshift クラスター管理ガイド接続のセキュリティオプションを設定する

ために信頼できる認証機関の一覧については、https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt を参照してください。証明書バンドルがダウンロードされない場合は、前のリンクを右クリックして [Save link as... (名前を付けて保存...)] を選択します。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

デフォルトでは、クラスターデータベースは SSL の使用の有無にかかわらず接続を受け入れます。クラスターが SSL 接続を要求するように設定するには、クラスターに関連付けられているパラメータグループでrequire_SSL パラメータを true に設定します。

Amazon Redshift は、連邦情報処理標準 (FIPS) 140-2 に準拠する SSL モードをサポートしています。FIPS 準拠 SSL モードはデフォルトで無効化されています。

Important

システムが FIPS 準拠である必要がある場合のみ、FIPS 準拠の SSL モードを有効にします。

FIPS 準拠の SSL モードを有効にするには、クラスターに関連付けられたパラメータグループでuse_fips_ssl パラメータと require_SSL パラメータの両方を true に設定します。パラメータグループの変更については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

Amazon Redshift では、Elliptic Curve Diffie—Hellman Ephemeral(ECDHE)鍵契約プロトコルがサポートされます。ECDHE を使用すると、クライアントとサーバーはそれぞれ、安全でないチャネルを介して共有シークレットを確立するために使用される楕円曲線パブリック/プライベートキーペアを持ちます。ECDHE を有効にするために、Amazon Redshift で設定を行う必要はありません。ECDHE を使用してクライアント/サーバー間の通信を暗号化する SQL クライアントツールから接続する場合、AmazonRedshift は提供された暗号リストを使用して適切な接続を行います。詳細については、Wikipedia の「Elliptic Curve Diffie—Hellman」と OpenSSL ウェブサイトの「Ciphers」を参照してください。

ODBC で SSL および信頼 CA 証明書を使用する最新の Amazon Redshift ODBC ドライバー (バージョン 1.3.7.1000 以降) を使用して接続している場合は、このセクションをスキップします。最新のドライバーをダウンロードする方法は、「ODBC 接続を設定する (p. 87)」を参照してください。

引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

Amazon Redshift の認証機関バンドルは、https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt に保存されています。 証明書バンドルがダウンロードされない場合は、前のリンクを右クリックして [Save link as... (名前を付けて保存...)] を選択します。予想される MD5チェックサムの数値は e7a76d62fc7775ac54cfc4d21e89d36b です。sha256 のチェックサムは、e77daa6243a940eb2d144d26757135195b4bdefd345c32a064d4ebea02b9f8a1 です。 Md5sum プログラム (Linux オペレーティングシステムの場合) またはその他のツール (Windows および Mac OS X オペレーティングシステムの場合) を使用して、ダウンロードした証明書がこの予想される MD5 チェックサムの数値と一致することを確認できます。

ODBC DSN には、クライアント接続の暗号化処理方法とサーバー証明書の検証を決定する sslmode 設定が含まれます。Amazon Redshift は、クライアント接続の次の sslmode 値をサポートします。

• disable

SSL は無効となり、接続は暗号化されません。• allow

108

Amazon Redshift クラスター管理ガイド接続のセキュリティオプションを設定する

SSL は、サーバーで必要な場合に使用されます。• prefer

SSL は、サーバーでサポートされる場合に使用されます。Amazon Redshift では SSL がサポートされるため、sslmode を prefer に設定すると SSL が使用されます。

• require

SSL が必要です。• verify-ca

SSL を使用する必要があり、サーバー証明書を検証する必要があります。• verify-full

SSL を使用する必要があります。サーバー証明書を検証し、サーバーのホスト名が証明書上のホスト名属性と一致する必要があります。

クライアントとサーバーの間の接続で SSL が使用されるかどうかとサーバー証明書が検証されるかどうかを確認するには、クライアントで ODBC DSN の sslmode 設定を確認し、サーバーで Amazon Redshiftクラスターの require_SSL 設定を確認する必要があります。次の表は、クライアントとサーバーのさまざまな設定の組み合わせの暗号化の結果を示しています。

sslmode (クライアント)

require_SSL(サーバー)

結果

disable false 接続は暗号化されません。

disable true サーバーにより SSL が要求されていますが、クライアントの接続ではSSL が無効になっているため、接続を行うことはできません。

allow true 接続は暗号化されます。

allow false 接続は暗号化されません。

prefer または require

true 接続は暗号化されます。

prefer または require

false 接続は暗号化されます。

verify-ca true 接続は暗号化され、サーバー証明書が検証されます。

verify-ca false 接続は暗号化され、サーバー証明書が検証されます。

verify-full true 接続は暗号化され、サーバー証明書とホスト名が検証されます。

verify-full false 接続は暗号化され、サーバー証明書とホスト名が検証されます。

Microsoft Windows で ODBC によりサーバー証明書を使用して接続するSSL とサーバー証明書を使用してクラスターに接続する場合、クライアントコンピューターか AmazonEC2 インスタンスに証明書をダウンロードし、ODBC DSN を設定する必要があります。

1. 「Amazon Redshift 認証機関バンドル」をクライアントコンピュータにダウンロードし、ドライバーのインストールディレクトリにある lib フォルダに root.crt として保存します。

2. [ODBC Data Source Administrator (ODBC データソース管理者)] を開き、ODBC 接続のシステム DSNエントリを追加または編集します。DNS エイリアスを使用する場合を除き、[SSL Mode (SSL モー

109

Amazon Redshift クラスター管理ガイド接続のセキュリティオプションを設定する

ド)] で [verify-full] を選択します。DNS エイリアスを使用する場合は、[verify-ca] を選択します。次に、[Save (保存)] をクリックします。

ODBC DSN の設定方法の詳細については、「ODBC 接続を設定する (p. 87)」を参照してください。

Java で SSL をサーバー証明書を使用するSSL は、クライアントとクラスター間を移動するデータを暗号化することによりセキュリティを強化します。サーバー証明書の使用により、クラスターが Amazon Redshift クラスターであることが確認され、セキュリティがさらに強化されます。これを行うには、プロビジョニングしたすべてのクラスターに自動インストールされたサーバー証明書をチェックします。JDBC でサーバー証明書を使用する方法の詳細については、PostgreSQL ドキュメントの「Configuring the Client」を参照してください。

Java で信頼 CA 証明書を使用して接続する

最新の Amazon Redshift JDBC ドライバー (バージョン 1.2.8.1005 以降) を使用して接続している場合は、このセクションをスキップします。最新ドライバーをダウンロードする方法は、「JDBC 接続を設定する」を参照してください。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

信頼 CA 証明書を使用して接続するには

Redshift の認証機関バンドルの CA 証明書を Java TrustStore またはプライベート TrustStore にインポートするには、redshift-keytool.jar を使用します。

1. Java コマンドラインの -Djavax.net.ssl.trustStore オプションを使用している場合は、可能であればコマンドラインから解除します。

2. redshift-keytool.jar をダウンロードする3. 次のいずれかを行ってください。

• Redshift の認証機関バンドルを Java TrustStore にインポートするには、次のコマンドを実行します。

java -jar redshift-keytool.jar -s

• Redshift の認証機関バンドルをプライベート TrustStore にインポートするには、次のコマンドを実行します。

java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password>

SSL 接続用 ACM 証明書への移行Amazon Redshift では、現在クラスターの SSL 証明書を「AWS Certificate Manager (ACM)」発行の証明書に置き換えています。ACM は、現在のほとんどのシステムで信頼されている信頼のある公開認証機関(CA) です。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。

この変更は、以下のすべてに該当する場合のみ適用されます。

110

Amazon Redshift クラスター管理ガイド接続のセキュリティオプションを設定する

• sslMode 接続オプションを require、verify-ca、または verify-full 設定オプションに指定して、SQL クライアントまたはアプリケーションから Amazon Redshift クラスターに SSL 接続されている。

• クラスターが、AWS GovCloud (米国) リージョン、中国 (北京) リージョン、または中国 (寧夏) リージョンを除く AWS リージョンにある。

• Amazon Redshift ODBC または JDBC ドライバーを使用していない、または ODBC バージョン1.3.7.1000 または JDBC バージョン 1.2.8.1005 より前の Amazon Redshift ドライバーを使用している。

この変更が影響する場合は、現在の信頼ルート CA 証明書を 2017 年 10 月 23 日までに更新する必要があります。Amazon Redshift は、お客様のクラスターを 2017 年 10 月 23 日までに順次 ACM 証明書に切り替えていきます。この変更によるお客様のクラスターのパフォーマンスまたはアベイラビリティーへの影響はほとんどありません。

現在の信頼ルート CA 証明書を更新するには、ユースケースを見極め、該当セクションの手順に従います。

• 最新の Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する (p. 111)• 旧 Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する (p. 111)• その他の SSL 接続タイプを使用する (p. 112)

最新の Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する

最新の Amazon Redshift の ODBC ドライバーまたは JDBC ドライバーを使用することが推奨されています。ODBC バージョン 1.3.7.1000 および JDBC バージョン 1.2.8.1005 以前の Amazon Redshift ドライバーは、自動的に Amazon Redshift の自己署名証明書から ACM 証明書に移行されます。最新のドライバーをダウンロードする方法は、「ODBC 接続を設定する (p. 87)」または「JDBC 接続を設定する (p. 70)」を参照してください。

最新の Amazon Redshift JDBC ドライバーを使用する場合は、JVM オプションの -Djavax.net.ssl.trustStore を使用しないことをお勧めします。-Djavax.net.ssl.trustStoreを使用する必要がある場合は、「Redshift の認証機関バンドル」を指定の信頼ストアにインポートしてください。詳細については、「Redshift の認証機関バンドルを TrustStore にインポートする (p. 112)」を参照してください。

旧 Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する

バージョン 1.3.7.1000 より前の Amazon Redshift ODBC ドライバーを使用する必要がある場合は、「Redshift の認証機関バンドル」をダウンロードして、古い証明書ファイルに上書きしてください。

• ODBC DSN が SSLCertPath を使用して設定されている場合は、指定されたパスの証明書ファイルに上書きします。

• SSLCertPath が設定されていない場合は、ドライバーの DLL の位置にある証明書ファイル(root.crt) に上書きします。

バージョン 1.2.8.1005 より前の Amazon Redshift JDBC ドライバーを使用する必要がある場合は、以下のいずれかを行います。

• JDBC 接続文字列で sslCert オプションを使用している場合は、sslCert オプションを解除します。続いて、「Redshift の認証機関バンドル」を Java TrustStore にインポートします。詳細については、「Redshift の認証機関バンドルを TrustStore にインポートする (p. 112)」を参照してください。

• Java コマンドラインの -Djavax.net.ssl.trustStore オプションを使用している場合は、可能であればコマンドラインから解除します。続いて、「Redshift の認証機関バンドル」を Java TrustStoreにインポートします。詳細については、「Redshift の認証機関バンドルを TrustStore にインポートする (p. 112)」を参照してください。

111

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

Redshift の認証機関バンドルを TrustStore にインポートする

Redshift の認証機関バンドルの CA 証明書を Java TrustStore またはプライベート信頼ストアにインポートするには、redshift-keytool.jar を使用します。

Redshift の認証機関バンドルを TrustStore にインポートするには

1. redshift-keytool.jar をダウンロードする2. 次のいずれかを行ってください。

• Redshift の認証機関バンドルを Java TrustStore にインポートするには、次のコマンドを実行します。

java -jar redshift-keytool.jar -s

• Redshift の認証機関バンドルをプライベート TrustStore にインポートするには、次のコマンドを実行します。

java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password>

その他の SSL 接続タイプを使用する

次のいずれかを使用して接続している場合は、このセクションの手順に従います。

• オープンソースの ODBC ドライバー• オープンソースの JDBC ドライバー• psql コマンドラインインターフェイス• libpq に基づく言語バインディング (例: psycopg2 (Python)、ruby-pg (Ruby))

その他の SSL 接続タイプで ACM 証明書を使用するには

1. 「Redshift の認証機関バンドル」をダウンロードします。2. バンドルの証明書を root.crt ファイルに追加します。

• Linux および Mac OS X オペレーティングシステムでは、ファイルは ~/.postgresql/root.crtです。

• Microsoft Windows では、%APPDATA%\postgresql\root.crt です。

クライアントツールおよびコードからクラスターに接続するこのセクションでは、まだクラスターに接続するビジネスインテリジェンスツールがない場合に、サードパーティツールがクラスターに接続するためのいくつかのオプションについて説明します。さらに、クラスターにプログラムにより接続する方法について説明します。

トピック• SQL Workbench/J を使用してクラスターに接続する (p. 113)• psql ツールを使用してクラスターに接続する (p. 116)• クラスターにプログラムで接続する (p. 119)

112

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

SQL Workbench/J を使用してクラスターに接続するAmazon Redshift には SQL クライアントツールまたはライブラリが用意またはインストールされていないため、クラスターで使用するものをインストールする必要があります。既に、標準の PostgreSQL JDBCまたは ODBC ドライバーでクラスターに接続するビジネスインテリジェンスアプリケーションやその他のアプリケーションがある場合は、このセクションはスキップしてかまいません。クラスターに接続できるアプリケーションがまだない場合、このセクションでは SQL Workbench/J の DBMS に依存しない無料クロスプラットフォーム SQL クエリツールを使用してクラスターに接続する 1 つのオプションについて説明します。

SQL Workbench/J をインストールする

Amazon Redshift 入門ガイド は SQL Workbench/J を使用します。このセクションでは、SQL Workbench/J を使用してクラスターに接続する方法を詳しく説明します。

SQL Workbench/J をインストールする方法

1. SQL Workbench/J のソフトウェアライセンスを確認します。2. SQL Workbench/J ウェブサイトにアクセスし、使用しているオペレーティングシステムの適切なパッ

ケージをクライアントコンピュータまたは Amazon EC2 インスタンスにダウンロードします。3. 「Installing and starting SQL Workbench/J」ページにアクセスします。手順に従って SQL

Workbench/J をシステムにインストールします。

Note

SQL Workbench/J をシステムにインストールするには、Java Runtime Environment (JRE) が必要です。使用する JRE のバージョンが SQL Workbench/J クライアントに合っていることを確認します。システムで動作している Java Runtime Environment のバージョンを確認するには、次のいずれかを行います。

• Mac: [System Preferences (システム設定)] で Java アイコンをクリックします。• Windows: [Control Panel (コントロールパネル)] で Java アイコンをクリックします。• 任意のシステム: コマンドシェルで「java -version」と入力します。または、https://

www.java.com にアクセスして [Java の有無のチェック] リンクをクリックし、[Verify Java(Java の確認)] ボタンをクリックします。

Java Runtime Environment のインストールと設定の詳細については、https://www.java.comにアクセスしてください。

SQL Workbench/J で JDBC 接続を介してクラスターに接続するImportant

この手順のステップを実行する前に、クライアントコンピュータまたは Amazon EC2 インスタンスに推奨される Amazon Redshift JDBC ドライバーがあることを確認します。最新のドライバーをダウンロードするリンクについては、「Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 70)」を参照してください。また、クラスターへのアクセスを許可するよう、ファイアウォールを設定したことを確認してください。詳細については、「ステップ 4: クラスターへのアクセスの許可」を参照してください。

SQL Workbench/J で JDBC 接続を使用するには

1. SQL Workbench/J を開きます。2. [File (ファイル)] をクリックし、[Connect window (ウィンドウの接続)] をクリックします。3. [Create a new connection profile (新しい接続プロファイルの作成)] をクリックします。

113

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

4. [New profile (新しいプロファイル)] ボックスに、プロファイルの名前を入力します。たとえば、examplecluster_jdbc などです。

5. [Manage Drivers (ドライバーの管理)] をクリックします。[Manage Drivers (ドライバーの管理)] ダイアログが開きます。[Name (名前)] ボックスにドライバーの名前を入力します。

[Library (ライブラリ)] ボックスの横にあるフォルダアイコンをクリックし、目的のドライバーの場所まで移動してそのドライバーをクリックし、[Open (開く)] をクリックします。

[Please select one driver (ドライバーを 1 つ選択してください)] ダイアログボックスが表示されたら、[com.amazon.redshift.jdbc4.Driver] または [com.amazon.redshift.jdbc41.Driver] を選択し、[OK (はい)]をクリックします。[Classname (クラス名)] ボックスは、SQL Workbench/J によって自動入力されます。[Sample URL (サンプル URL)] ボックスは空白のままにしておいて、[OK (はい)] をクリックします。

6. [Driver (ドライバー)] ボックスで、追加したドライバーを選択します。7. [URL] で、Amazon Redshift consoleから JDBC URL をコピーし、ここに貼り付けます。

JDBC URL を見つける方法の詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

8. [Username (ユーザー名)] に、マスターユーザーの名前を入力します。

Amazon Redshift 入門ガイド に従っている場合は、「masteruser」と入力します。

114

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

9. [Password (パスワード)] に、マスターユーザーアカウントに関連付けられたパスワードを入力します。

10. [Autocommit (オートコミット)] ボックスをオンにします。11. 次に示す [Save profile list (プロファイルリストの保存)] アイコンをクリックします。

12. [OK] をクリックします。

SQL Workbench/J 接続をテストする

JDBC または ODBC 接続を設定すると、サンプルクエリを実行することで接続をテストできます。

1. 次のクエリを使用して接続をテストできます。

select * from information_schema.tables;

接続に成功すると、[Results (結果)] タブにレコードのリストが表示されます。

115

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

2. または、「Amazon Redshift 入門ガイド」に記載されているサンプルのテーブルとデータを読み込んだ場合は、[Statement (ステートメント)] ウィンドウに次のクエリを入力することで、接続をテストできます。

select * from users order by userid limit 100;

接続に成功すると、[Results (結果)] タブにレコードのリストが表示されます。

psql ツールを使用してクラスターに接続するAmazon Redshift クラスターを作成したら、psql (PostgreSQL のターミナル型フロントエンド) を使ってクラスターのデータにクエリを発行することができます。クエリはインタラクティブに入力することも、ファイルから読み取ることもできます。psql から接続するには、クラスターのエンドポイント、データベース、ポートを指定する必要があります。

116

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

Note

psql ツールは、Amazon Redshift から提供されるのではなく PostgreSQL とともにインストールされます。psql の使用については、https://www.postgresql.org/docs/8.4/static/app-psql.htmlを参照してください。PostgreSQL クライアントツールのインストール方法については、https://www.postgresql.org/download/ の PostgreSQL バイナリダウンロードページから、該当するオペレーティングシステムを選択します。無効な client_encoding が原因で Microsoft Windows プロンプトからの接続に問題がある場合は、psql を実行する前に PGCLIENTENCODING 環境変数を UTF-8 に設定します。

set PGCLIENTENCODING=UTF8

psql のデフォルト設定を使用して接続する

デフォルトでは、psql は Amazon Redshift サービスを検証せず、Secure Sockets Layer (SSL) を使用して暗号化された接続を作成します。

psql のデフォルト設定を使用して接続するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. 左のナビゲーションペインの [Clusters (クラスター)] をクリックします。これを開くにはクラスターをクリックします。[Cluster Database Properties (クラスターデータベースプロパティ)] で、[Endpoint(エンドポイント)]、[Port (ポート)]、[Database Name (データベース名)] の値を書き留めます。

3. コマンドプロンプトで、コマンドラインパラメータか接続情報文字列を使用して接続情報を指定します。パラメータを使用するには次のように行います。

psql -h <endpoint> -U <userid> -d <databasename> -p <port>

各パラメーターの意味は次のとおりです。

• <endpoint> は前のステップで書き留めた [Endpoint (エンドポイント)] です。• <userid> はクラスターに接続するアクセス権限があるユーザー ID です。

117

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

• <databasename> は前のステップで書き留めた [Database Name (データベース名)] です。• <port> は前のステップで書き留めた [Port (ポート)] です。

例:

psql -h examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com -U masteruser -d dev -p 5439

4. psql パスワードプロンプトで、<userid> ユーザーのパスワードを入力します。

これでクラスターに接続されるので、コマンドをインタラクティブに入力できます。

証明書を使って接続するpsql で証明書を使ってサービスを認証するかどうかを制御するには、接続情報文字列を使って接続情報を指定し、sslmode キーワードを指定する必要があります。デフォルトでは、psql は sslmode=prefer で動作しています。psql で暗号化接続を開き、Amazon Redshift 証明書を使用してサービスを検証するよう指定するには、Amazon Redshift 証明書をコンピュータにダウンロードします。DNS エイリアスを使用する場合を除き、[verify-full] を指定します。DNS エイリアスを使用する場合は、[verify-ca] を選択します。sslrootcert を証明書の位置に指定します。sslmode の詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

接続情報文字列のパラメータの詳細については、https://www.postgresql.org/docs/8.4/static/libpq-connect.html を参照してください。

証明書を使って接続するには

1. ダウンロードした「Redshift の認証機関バンドル」の .crt ファイルをコンピュータに保存します。Internet Explorer で File\Save as を行う場合、ファイル形式を [Text file (*.txt)] に指定し、.txt 拡張子を削除します。たとえば、これをファイル C:\MyDownloads\redshift-ca-bundle.crt として保存します。

2. Amazon Redshift コンソールで、クラスターを選択して [Cluster Database Properties (クラスターデータベースプロパティ)] を表示します。[Endpoint (エンドポイント)]、[Port (ポート)]、[Database Name(データベース名)] のフィールドに表示された値を書き留めます。

118

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

3. コマンドプロンプトで、接続情報文字列を使って接続情報を指定します。

psql "host=<endpoint> user=<userid> dbname=<databasename> port=<port> sslmode=verify-ca sslrootcert=<certificate>"

各パラメーターの意味は次のとおりです。

• <endpoint> は前のステップで書き留めた [Endpoint (エンドポイント)] です。• <userid> はクラスターに接続するアクセス権限があるユーザー ID です。• <databasename> は前のステップで書き留めた [Database Name (データベース名)] です。• <port> は前のステップで書き留めた [Port (ポート)] です。• <certificate> は証明書ファイルへのフルパスです。Windows システムの場合、証明書のパスは

Linux 形式の区切り文字 (/) で指定する必要があります。Windows の区切り文字 (\) は使用しないでください。

Linux および Mac OS X オペレーティングシステムでは、パスは

~/.postgresql/root.crt

Microsoft Windows では、パスは

%APPDATA%/postgresql/root.crt

例:

psql "host=examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com user=masteruser dbname=dev port=5439 sslmode=verify-ca sslrootcert=C:/MyDownloads/redshift-ca-bundle.crt"

4. psql パスワードプロンプトで、<userid> ユーザーのパスワードを入力します。

これでクラスターに接続されるので、コマンドをインタラクティブに入力できます。

クラスターにプログラムで接続するこのセクションでは、クラスターにプログラムで接続する方法を示します。クライアント接続を管理するSQL Workbench/J のようなアプリケーションを使用している場合は、このセクションをスキップできます。

Java の使用によるクラスターへの接続

Java を使用してプログラムでクラスターに接続する場合、サーバー認証の使用は任意です。サーバー認証を使用する予定がある場合は、「接続のセキュリティオプションを設定する (p. 107)」の手順どおりに操作を行って、Amazon Redshift サーバー証明書をキーストアに格納します。キーストアを参照するには、コード実行時にプロパティを次のように指定します。

-Djavax.net.ssl.trustStore=<path to keystore>-Djavax.net.ssl.trustStorePassword=<keystore password>

Example : Java を使ってクラスターに接続する

次の例では、クラスターに接続し、システムテーブルを返すサンプルクエリを実行します。この例は、データベースにデータがなくても使用できます。

119

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

サーバー証明書でクラスターを認証する場合は、キーストアを使用する行のコメントアウトを解除します。

props.setProperty("ssl", "true");

サーバー証明書の詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[ConnectToClusterExample demonstrates how to connect to an Amazon Redshift cluster and run a sample query.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[Connect]// snippet-keyword:[JDBC]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-02-01]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.ConnectToCluster.complete]

package connection;

import java.sql.*;import java.util.Properties;

public class ConnectToCluster { //Redshift driver: "jdbc:redshift://x.y.us-west-2.redshift.amazonaws.com:5439/dev"; static final String dbURL = "***jdbc cluster connection string ****"; static final String MasterUsername = "***master user name***"; static final String MasterUserPassword = "***master user password***";

public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //Dynamically load driver at runtime. //Redshift JDBC 4.1 driver: com.amazon.redshift.jdbc41.Driver //Redshift JDBC 4 driver: com.amazon.redshift.jdbc4.Driver Class.forName("com.amazon.redshift.jdbc.Driver");

//Open a connection and define properties. System.out.println("Connecting to database..."); Properties props = new Properties();

//Uncomment the following line if using a keystore.

120

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

//props.setProperty("ssl", "true"); props.setProperty("user", MasterUsername); props.setProperty("password", MasterUserPassword); conn = DriverManager.getConnection(dbURL, props);

//Try a simple query. System.out.println("Listing system tables..."); stmt = conn.createStatement(); String sql; sql = "select * from information_schema.tables;"; ResultSet rs = stmt.executeQuery(sql);

//Get the data from the result set. while(rs.next()){ //Retrieve two columns. String catalog = rs.getString("table_catalog"); String name = rs.getString("table_name");

//Display values. System.out.print("Catalog: " + catalog); System.out.println(", Name: " + name); } rs.close(); stmt.close(); conn.close(); }catch(Exception ex){ //For convenience, handle all errors here. ex.printStackTrace(); }finally{ //Finally block to close resources. try{ if(stmt!=null) stmt.close(); }catch(Exception ex){ }// nothing we can do try{ if(conn!=null) conn.close(); }catch(Exception ex){ ex.printStackTrace(); } } System.out.println("Finished connectivity test."); }}// snippet-end:[redshift.java.ConnectToCluster.complete]

.NET の使用によるクラスターへの接続

.NET (C#) を使用してプログラムでクラスターに接続する場合、サーバー認証の使用は任意です。サーバー認証を使用する予定がある場合は、「接続のセキュリティオプションを設定する (p. 107)」の手順どおりに操作を行って Amazon Redshift サーバー証明書をダウンロードし、.NET コードに合った形式で証明書を設定します。

Example .NET を使ってクラスターに接続する

次の例では、クラスターに接続し、システムテーブルを返すサンプルクエリを実行します。サーバー認証は表示されません。この例は、データベースにデータがなくても使用できます。この例では、System.Data.Odbc Namespace、.NET Framework Data Provider for ODBC を使用します。

using System;using System.Data;using System.Data.Odbc;

121

Amazon Redshift クラスター管理ガイドクライアントツールおよびコードからクラスターに接続する

namespace redshift.amazon.com.docsamples{ class ConnectToClusterExample { public static void Main(string[] args) {

DataSet ds = new DataSet(); DataTable dt = new DataTable();

// Server, e.g. "examplecluster.xyz.us-west-2.redshift.amazonaws.com" string server = "***provide server name part of connection string****";

// Port, e.g. "5439" string port = "***provide port***";

// MasterUserName, e.g. "masteruser". string masterUsername = "***provide master user name***";

// MasterUserPassword, e.g. "mypassword". string masterUserPassword = "***provide master user password***";

// DBName, e.g. "dev" string DBName = "***provide name of database***";

string query = "select * from information_schema.tables;";

try { // Create the ODBC connection string. //Redshift ODBC Driver - 64 bits /* string connString = "Driver={Amazon Redshift (x64)};" + String.Format("Server={0};Database={1};" + "UID={2};PWD={3};Port={4};SSL=true;Sslmode=Require", server, DBName, masterUsername, masterUserPassword, port); */

//Redshift ODBC Driver - 32 bits string connString = "Driver={Amazon Redshift (x86)};" + String.Format("Server={0};Database={1};" + "UID={2};PWD={3};Port={4};SSL=true;Sslmode=Require", server, DBName, masterUsername, masterUserPassword, port);

// Make a connection using the psqlODBC provider. OdbcConnection conn = new OdbcConnection(connString); conn.Open();

// Try a simple query. string sql = query; OdbcDataAdapter da = new OdbcDataAdapter(sql, conn); da.Fill(ds); dt = ds.Tables[0]; foreach (DataRow row in dt.Rows) { Console.WriteLine(row["table_catalog"] + ", " + row["table_name"]); }

conn.Close(); Console.ReadKey(); } catch (Exception ex) {

122

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

Console.Error.WriteLine(ex.Message); }

} }}

Amazon Redshift での接続の問題のトラブルシューティングSQL クライアントツールからクラスターへの接続で問題が発生した場合は、問題を絞り込むために確認できるいくつかの点があります。SSL またはサーバー証明書を使用している場合、接続の問題をトラブルシューティングしているときにまずこの複雑さを排除します。その後、解決策を見つけたらもう一度これを追加します。詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

Important

Amazon Redshift の SSL 証明書の管理方法が変わりました。SSL 接続で問題が発生した場合は、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM証明書への移行 (p. 110)」を参照してください。

次のセクションに、接続の問題のサンプルエラーメッセージと考えられる解決策を示します。SQL クライアントツールによってエラーメッセージが異なるため、このリストは完全ではありませんが、問題のトラブルシューティングに適した開始点です。

トピック• Amazon EC2 以外から接続する — ファイアウォールタイムアウトの問題 (p. 123)• 接続が拒否または失敗する (p. 125)• クライアントおよびドライバーに互換性がない (p. 126)• クエリがハングして、クラスターに達しない場合がある (p. 126)

Amazon EC2 以外から接続する — ファイアウォールタイムアウトの問題問題の例

COPY コマンドなどの長いクエリを実行すると、データベースへのクライアント接続がハングまたはタイムアウトしているように見えます。この場合、Amazon Redshift consoleにはクエリが完了したと表示されますが、クライアントツール自体はまだクエリを実行しているように見えることがあります。接続がいつ停止したかに応じて、クエリの結果がないか、不完全になる可能性があります。

考えられる解決策

これは、Amazon EC2 インスタンス以外のコンピュータから Amazon Redshift に接続し、一定期間アイドル状態が続いて、介在するネットワークコンポーネント (ファイアウォールなど) によってアイドル接続が停止されたときに生じます。 このような動作は、Virtual Private Network (VPN) やローカルネットワークからログインした場合によく発生します。

このようなタイムアウトを回避するために以下の変更を行うことを推奨します。

• クライアントシステムで TCP/IP タイムアウト値を大きく設定します。この変更は、クラスターへの接続に使用しているコンピューターで行います。クライアントやネットワークに対してタイムアウト期間を調整する必要があります。「TCP/IP タイムアウト設定を変更する (p. 124)」を参照してください。

123

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

• 必要に応じて、DSN レベルでキープアライブの動作を設定します。「DSN のタイムアウト設定を変更する (p. 125)」を参照してください。

TCP/IP タイムアウト設定を変更する

TCP/IP タイムアウト設定を変更するには、クラスターへの接続に使用するオペレーティングシステムに応じて、タイムアウト設定を設定します。

• Linux — クライアントが Linux で動作している場合は、次のコマンドをルートユーザーとして実行し、現在のセッションのタイムアウト設定を変更します。

/sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5

設定を保持するには、次の値を使ってファイル /etc/sysctl.conf を作成または変更し、システムを再起動します。

net.ipv4.tcp_keepalive_time=200net.ipv4.tcp_keepalive_intvl=200net.ipv4.tcp_keepalive_probes=5

• Windows — クライアントが Windows で動作している場合、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ にある次のレジストリ設定の値を編集します。• KeepAliveTime: 30000• KeepAliveInterval: 1000• TcpMaxDataRetransmissions: 10

これらの設定は DWORD のデータの種類を使用します。これらがレジストリパスに存在しない場合、設定を作成し、これらの推奨値を指定できます。Windows レジストリの編集の詳細については、Windowsのドキュメントを参照してください。

これらの値を設定したら、コンピューターを再起動して変更を有効にします。

• Mac — クライアントが Mac で動作している場合は、次のコマンドを実行して現在のセッションのタイムアウト設定を変更します。

sudo sysctl net.inet.tcp.keepintvl=200000sudo sysctl net.inet.tcp.keepidle=200000sudo sysctl net.inet.tcp.keepinit=200000sudo sysctl net.inet.tcp.always_keepalive=1

設定を保持するには、次の値を使ってファイル /etc/sysctl.conf を作成または変更します。

net.inet.tcp.keepidle=200000net.inet.tcp.keepintvl=200000net.inet.tcp.keepinit=200000net.inet.tcp.always_keepalive=1

コンピュータを再起動し、次のコマンドを実行して値が設定されていることを確認します。

sysctl net.inet.tcp.keepidlesysctl net.inet.tcp.keepintvlsysctl net.inet.tcp.keepinit

124

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

sysctl net.inet.tcp.always_keepalive

DSN のタイムアウト設定を変更する

必要に応じて、DSN レベルでキープアライブの動作を設定できます。これを行うには、odbc.ini ファイルで以下のパラメータを追加または変更します。

KeepAlivesCount

接続が切断されていると見なされる前に失うことが許容される TCP キープアライブパケットの数。KeepAlivesIdle

ドライバーが TCP キープアライブパケットを送信する前にアイドル状態である秒数。KeepAlivesInterval

TCP キープアライブを再送信する間隔の秒数。

Windows では、HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\エエエエ DSN でキーを追加または変更することによって、レジストリのこれらのパラメータを変更します。Linux および Mac OS では、直接 odbc.ini ファイルでターゲットの DSN エントリのこれらのパラメータを追加または変更します。Linuxおよび Mac OS コンピューターで odbc.ini ファイルを編集する方法の詳細については、「Linux およびMac OS X オペレーティングシステムで ODBC ドライバーを設定する (p. 95)」を参照してください。

これらのパラメータがない場合、または値が 0 である場合、システムは指定されている TCP/IP キープアライブパラメータを使用して DSN キープアライブの動作を決定します。Windows では、TCP/IP のパラメータは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ のレジストリにあります。Linux および Mac OS では、TCP/IP のパラメータは sysctl.conf ファイルにあります。

接続が拒否または失敗するエラーの例

• "Failed to establish a connection to <endpoint>."• "Could not connect to server: Connection timed out.Is the server running on host '<endpoint>' and

accepting TCP/IP connections on port '<port>'?"• "Connection refused.Check that the hostname and port are correct and that the postmaster is accepting

TCP/IP connections."

考えられる解決策

通常、接続の確立に失敗したことを示すエラーメッセージを受け取った場合、クラスターにアクセスするアクセス許可の問題を示しています。

クラスターが存在するネットワークの外部にあるクライアントツールからクラスターに接続しようとした場合、接続元 CIDR/IP のクラスターセキュリティグループに進入ルールを追加する必要があります。

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

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

125

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

Amazon EC2 インスタンスでクライアントツールからクラスターに接続しようとした場合、Amazon EC2インスタンスに関連付けられた Amazon EC2 セキュリティグループのクラスターセキュリティグループにIngress ルールを追加する必要があります。クラスターセキュリティグループの設定の詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

さらに、クラスターとサーバーの間にレイヤーがある場合 (ファイアウォールなど)、ファイアウォールがクラスターに対して設定したポートを介した着信接続を受け入れることを確認します。

クライアントおよびドライバーに互換性がないエラーの例

"The specified DSN contains an architecture mismatch between the Driver and Application."

考えられる解決策

接続を試みてアーキテクチャ不一致に関するエラーが発生した場合、これはシステムアーキテクチャが一致しないためにクライアントツールとドライバーに互換性がないことを意味します。たとえば、32 ビットクライアントツールがあるが、ドライバーの 64 ビットバージョンをインストールした場合にこれが発生することがあります。64 ビットクライアントツールが 32 ビットドライバーを使用できることはありますが、64 ビットドライバーで 32 ビットアプリケーションを使用することはできません。ドライバーとクライアントツールが同じバージョンのシステムアーキテクチャを使用していることを確認します。

クエリがハングして、クラスターに達しない場合がある問題の例

クエリが完了しないという問題に直面します。クエリは実行されますが、SQL クライアント ツールでハングします。クエリは、システムテーブルや Amazon Redshift console などでクラスターに表示されない場合があります。

考えられる解決策

この問題は、2 つのインターネットプロトコル (IP) ホスト間のネットワークパスで、最大送信単位 (MTU)のサイズに違いがある場合、パケットドロップの関係で生じる可能性があります。MTU サイズにより、ネットワーク接続を介して 1 つのイーサネットフレームで転送できるパケットの最大サイズ (バイト単位)が決まります。AWS では、一部の Amazon EC2 インスタンスタイプは 1500 MTU(Ethernet v2 フレーム)をサポートし、他のインスタンスタイプは 9001 MTU(TCP/IP ジャンボフレーム)をサポートします。

MTU サイズの違いで発生する問題を防ぐために、次のいずれかを行うことをお勧めします:

• ご使用のクラスターが EC2-VPC プラットフォームを使用している場合、DestinationUnreachable を返すインバウンドのカスタム Internet Control Message Protocol (ICMP) ルールによって Amazon VPC セキュリティグループを設定して、ネットワークパスで最低の MTU サイズを使用するよう送信側ホストに指示します。この方法の詳細については、「セキュリティグループを設定してICMP の "Destination Unreachable" を許可する (p. 126)」を参照してください。

• ご使用のクラスターが EC2-Classic プラットフォームを使用しているか、ICMP インバウンドルールを許可できない場合、TCP/IP ジャンボフレームを無効にして、Ethernet v2 フレームを使用します。この方法の詳細については、「インスタンスの MTU の設定 (p. 127)」を参照してください。

セキュリティグループを設定して ICMP の "Destination Unreachable" を許可する

2 つのホスト間のネットワークで MTU サイズに違いがある場合、ネットワーク設定がパス MTU 検出(PMTUD) をブロックしないことをまず確認します。PMTUD は、受信側ホストが次の ICMP メッセージで送信側ホストに応答するのを可能にします: Destination Unreachable: fragmentation neededand DF set (ICMP Type 3, Code 4)このメッセージは、送信側ホストがネットワークパスに沿って

126

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

最低の MTU サイズを使用してリクエストを再送信するように指示します。このネゴシエーションがないと、リクエストが大きすぎて受信側ホストが受け取れないため、パケットドロップが発生する可能性があります。この ICMP メッセージの詳細については、Internet Engineering Task Force (IETF) ウェブサイトの「RFC792」を参照してください。

この ICMP インバウンドルールを Amazon VPC セキュリティグループのために明示的に設定しない場合、PMTUD はブロックされます。AWS では、セキュリティグループは、インバウンドおよびアウトバウンドトラフィックのルールをインスタンスに指定する仮想ファイアウォールです。EC2-VPC プラットフォームを使用するクラスターでは、Amazon Redshift はクラスターへのトラフィックを許可または拒否するために VPC セキュリティグループを使用します。デフォルトでは、セキュリティグループはロックされており、すべてのインバウンドトラフィックを拒否します。

VPC セキュリティグループにルールを追加する方法については、「クラスターの VPC セキュリティグループの管理 (p. 44)」を参照してください。このルールで必要な特定の PMTUD 設定の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「パス MTU 検出」を参照してください。

インスタンスの MTU の設定

クラスターが EC2-Classic プラットフォームを使用する場合、またはインバウンドトラフィックでカスタム ICMP ルールを許可できない場合は、Amazon Redshift クラスターに接続する Amazon EC2 インスタンスのネットワークインターフェイス(NIC)で MTU を 1500 に調整することをお勧めします。この調整によって TCP/IP ジャンボフレームが無効になるため、同じパケットサイズが一貫して接続に使用されるようになります。ただし、このオプションでは、Amazon Redshift への接続だけでなく、インスタンス全体の最大ネットワークスループットを減らすことに注意してください。詳細については、次の手順を参照してください。

Microsoft Windows のオペレーティング システムで MTU を設定する

クライアントが Microsoft Windows オペレーティングシステムで動作している場合、netsh コマンドを使用してイーサネットアダプターの MTU 値を確認し、設定できます。

1. 現在の MTU 値を調べるには、次のコマンドを実行します。

netsh interface ipv4 show subinterfaces

2. 出力で MTU アダプタの Ethernet の値を確認します。3. 値が 1500 ではない場合、次のコマンドを実行して設定します。

netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent

この値を設定したら、コンピュータを再起動して変更を有効にします。

Linux オペレーティング システムで MTU を設定する

クライアントが Linux オペレーティング システムで動作している場合、ip コマンドを使用して MTU 値を確認し、設定できます。

1. 現在の MTU 値を調べるには、次のコマンドを実行します。

$ ip link show eth0

2. 出力で次の mtu の値を確認します。3. 値が 1500 ではない場合、次のコマンドを実行して設定します。

$ sudo ip link set dev eth0 mtu 1500

127

Amazon Redshift クラスター管理ガイドAmazon Redshift での接続の問題のトラブルシューティング

Mac オペレーティング システムで MTU を設定する

• Mac オペレーティング システムで MTU を設定するには、「Mac OS X 10.4 or later: How to changethe MTU for troubleshooting purposes」の手順に従います。

128

Amazon Redshift クラスター管理ガイド

Amazon Redshift 拡張された VPC のルーティング

Amazon Redshift 拡張された VPC のルーティングを使用すると、Amazon Redshift はクラスターとデータリポジトリ間のすべての COPY と UNLOAD トラフィックが Amazon VPC を通るよう強制します。拡張された VPC のルーティングを使用することで、Amazon VPC ユーザーガイド で説明しているとおり、VPC セキュリティグループ、ネットワークアクセスコントロールリスト (ACL)、VPC エンドポイント、VPC エンドポイントポリシー、インターネットゲートウェイ、ドメインネームシステム (DNS)サーバーなどのスタンダード VPC 機能を使用することができます。 これらの機能を使用して、AmazonRedshift クラスターと他のリソースの間のデータフローを詳細に管理します。拡張された VPC ルーティングを使用して VPC からトラフィックをルーティングする場合には、VPC フローログを使って COPY とUNLOAD トラフィックを監視することもできます。

拡張された VPC ルーティングが有効でない場合、Amazon Redshift は AWS ネットワークにおけるその他のサービスへのトラフィックを含むトラフィックをインターネット経由でルーティングします。

Important

拡張された VPC ルーティングはそのほかのリソースに Amazon Redshift がアクセスする方法に影響を与えるため、VPC を正しく設定しないと COPY と UNLOAD コマンドが失敗する場合があります。次に説明するように、クラスターの VPC とデータリソース間のネットワークパスを別に作成する必要があります。

拡張された VPC ルーティングが有効化されたクラスターで COPY または UNLOAD コマンドを実行する場合には、VPC は厳密あるいは最適なネットワークパスを使ってトラフィックを指定されたリソースにルーティングします。

たとえば、VPC で次のパスを設定できます。

• VPC エンドポイント – クラスターと同じ AWS リージョンの Amazon S3 バケットへのトラフィックでは、バケットに直接トラフィックする VPC エンドポイントを作成できます。VPC のエンドポイントを使用すると、Amazon S3 へのアクセスを管理するためにエンドポイントのポリシーをアタッチできます。Amazon Redshift でのエンドポイントの使用の詳細については、「VPC エンドポイントの使用 (p. 130)」を参照してください。

• NAT ゲートウェイ – 別の AWS リージョンにある Amazon S3 バケットと、AWS ネットワーク内にある別のサービスに接続できます。AWS ネットワーク外のホストインスタンスにアクセスすることもできます。これを行うには、Amazon VPC ユーザーガイド で説明しているとおり、ネットワークアドレス変換(NAT) ゲートウェイ を設定します。

• インターネットゲートウェイ – VPC 外の AWS サービスに接続するには、Amazon VPC ユーザーガイド で説明しているとおり、インターネットゲートウェイを VPC サブネットにアタッチできます。 インターネットゲートウェイを使用するには、クラスターと他のサービスとの通信を可能にするパブリックIP がクラスターに必要です。

詳細については、Amazon VPC ユーザーガイド の「VPC エンドポイント」を参照してください。

拡張 VPC ルーティングは追加料金なしで使用できます。特定の操作では、追加のデータ転送料金が発生する可能性があります。これには、別の AWS リージョンでの Amazon S3 への UNLOAD などの操作が含まれます。Amazon EMR から COPY、またはパブリック IP アドレスを持つ Secure Shell (SSH)。料金の詳細については、「Amazon EC2 料金表」を参照してください。

トピック

129

Amazon Redshift クラスター管理ガイドVPC エンドポイントの使用

• VPC エンドポイントの使用 (p. 130)• 拡張された VPC ルーティングの有効化 (p. 130)• 拡張された VPC のルーティングで Amazon Redshift Spectrum を使用する (p. 132)

VPC エンドポイントの使用VPC エンドポイントを使用して、VPC の Amazon Redshift クラスターと Amazon Simple Storage Service(Amazon S3) 間で管理された接続を作成することができます。このとき、クラスターと Amazon S3 のデータ間の COPY と UNLOAD トラフィックは Amazon VPC に留まります。エンドポイントにエンドポイントポリシーをアタッチして、より厳密なデータアクセスの管理ができます。たとえば、アカウントの特定の Amazon S3 バケットにのみデータをアップロード許可するようなポリシーを VPC エンドポイントに追加できます。

Important

現在 Amazon Redshift は、Amazon S3 に接続する VPC エンドポイントのみサポートしています。Amazon VPC が VPC エンドポイントを使用するためにほかの AWS サービスへのサポートを追加すると、Amazon Redshift はこれらの VPC エンドポイント接続もサポートします。Amazon S3 バケットに VPC エンドポイントを使用して接続する場合、接続する AmazonRedshift クラスターと Amazon S3 バケットは同じ AWS リージョンにある必要があります。

VPC エンドポイントを使用するには、クラスターがある VPC への VPC エンドポイントを作成し、そしてクラスターに拡張された VPC ルーティングを有効化します。VPC でクラスターを作成する場合、拡張された VPC ルーティングを有効にするか、あるいは VPC のクラスターを変更して拡張された VPC ルーティングとして使用することもできます。

VPC エンドポイントは、ルートテーブルを使用して VPC のクラスターと Amazon S3 間のトラフィックのルーティングをコントロールします。特定のルートテーブルに関連付けられたサブネットのすべてのクラスターは、自動的にそのエンドポイントを使用してサービスにアクセスします。

VPC はトラフィックをルーティングするために、クラスターのトラフィックに合う最も特定された、または最も限定的なルートを使用します。たとえば、ルートテーブルで、インターネットゲートウェイとAmazon S3 エンドポイントを指すすべてのインターネットトラフィック (0.0.0.0/0) にルートがあるとします。この場合、Amazon S3 を宛先とするすべてのトラフィックでエンドポイントルートが優先されますこれは、Amazon S3 サービスの IP アドレス範囲が 0.0.0.0/0 よりも具体的であるためです。この例では、そのほかの AWS リージョンの Amazon S3 バケット行きのトラフィックを含め、そのほかのすべてのインターネットトラフィックはインターネットゲートウェイに移動します。

エンドポイントの作成の詳細については、Amazon VPC ユーザーガイド の「VPC エンドポイント」を参照してください。

クラスターからデータファイルがある Amazon S3 バケットへのアクセスを制御するために、エンドポイントポリシーを使用します。デフォルトでは、エンドポイント作成ウィザードはどのユーザーあるいはVPC 内のサービスにもアクセス制限がないエンドポイントポリシーをアタッチします。特定の制御については、オプションでカスタムエンドポイントポリシーをアタッチできます。詳細については、AmazonVPC ユーザーガイド の「エンドポイントポリシーの使用」を参照してください。

エンドポイントは追加料金なしで使用できます。データ転送とリソースの使用量に対する標準料金が適用されます。料金の詳細については、「Amazon EC2 料金表」を参照してください。

拡張された VPC ルーティングの有効化クラスターを作成時に拡張された VPC ルーティングを有効化することも、既存のクラスターを変更して拡張された VPC ルーティングを有効化することもできます。

130

Amazon Redshift クラスター管理ガイド拡張された VPC ルーティングの有効化

拡張された VPC ルーティングを操作するためには、クラスターが次の要件と制約を満たしている必要があります。

• クラスターは VPC 内にある必要があります。

Amazon S3 VPC エンドポイントをアタッチする場合、クラスターは同じ AWS リージョンにあるAmazon S3 バケットにアクセスするためだけに VPC エンドポイントを使用します。ほかの AWS リージョンでバケットにアクセスする (VPC エンドポイントを使用せずに)、またはほかの AWS サービスにアクセスするためには、クラスターへパブリックアクセスを有効にするか、あるいはネットワークアドレス変換 (NAT) ゲートウェイを使用します。詳細については、「VPC でクラスターを作成する (p. 43)」を参照してください。

• VPC でドメインネームサービス (DNS) 解決を有効にする必要があります。または、ご自身で所有するDNS サーバーを使用している場合は、Amazon S3 に送られる DNS リクエストが AWS により維持される IP アドレスに正しく解決されていることを確認する必要があります。詳細については、Amazon VPCユーザーガイド の「VPC での DNS の使用」を参照してください。

• DNS ホスト名を VPC で有効にする必要があります。DNS ホスト名はデフォルトで有効化されています。

• VPC エンドポイントポリシーは、すべてのマニフェストファイル関連へのアクセスを含む AmazonRedshift で呼び出される COPY、UNLOAD、CREATE LIBRARY で使用されるすべての Amazon S3 バケットへのアクセスを許可している必要があります。リモートホストからの COPY では、エンドポイントポリシーが各ホストマシンへのアクセスを許可している必要があります。詳細については、AmazonRedshift Database Developer Guide の「COPY、UNLOAD と CREATE LIBRARY の IAM アクセス権限」を参照してください。

AWS マネジメントコンソール を使用して、拡張された VPC のルーティングが有効になったクラスターを作成することもできます。そうするには、次に示すように「ネットワーキングオプションの設定」セクションの起動クラスターウィザードの「拡張された VPC のルーティング」オプションで [Yes] を選択してください。詳細については、「クラスターの作成 (p. 20)」を参照してください。

コンソールを使用して、クラスターを変更して拡張された VPC のルーティングを有効にするには、クラスターを選択します。次に [Modify Cluster (クラスターの変更)] を選択し、[Modify Cluster (クラスターの変更)] ダイアログボックスの「拡張された VPC のルーティング」オプションで [Yes (はい)] を選択します。詳細については、「クラスターの変更 (p. 29)」を参照してください。

Note

クラスターを変更して拡張された VPC のルーティングを有効にすると、クラスターは自動的に再起動して変更を適用します。

131

Amazon Redshift クラスター管理ガイド拡張された VPC のルーティングで

Amazon Redshift Spectrum を使用する

次の Amazon Redshift 用 AWS Command Line Interface (AWS CLI) 操作を使用して、拡張された VPC のルーティングを有効化できます。

• create-cluster• modify-cluster

次の Amazon Redshift API アクションを使用して、拡張された VPC のルーティングを有効化できます。

• CreateCluster• ModifyCluster

拡張された VPC のルーティングで AmazonRedshift Spectrum を使用する

Amazon Redshift 拡張された VPC のルーティングは、特定のトラフィックを VPC 経由でルーティングします。クラスターと Amazon S3 バケット間のすべてのトラフィックは、Amazon VPC を通過するよう強制されます。Redshift Spectrum は Amazon Redshift が所有する、AWS が管理するリソースで実行されます。これらのリソースは VPC の外部にあるため、Redshift Spectrum は拡張された VPC のルーティングを使用しません。

132

Amazon Redshift クラスター管理ガイドRedshift Spectrum に拡張された VPC のルーティングを使用する場合の考慮事項

クラスターが拡張された VPC のルーティングを使用するよう設定されている場合、Redshift Spectrum とAmazon S3 間のトラフィックは、VPC の外部で、AWS プライベートネットワークを介して安全にルーティングされます。処理中のトラフィックは Amazon Signature Version 4 プロトコル (SIGv4) を使用して署名され、HTTPS を使用して暗号化されます。このトラフィックは、Amazon Redshift クラスターにアタッチされている IAM ロールに基づいて承認されます。Redshift Spectrum トラフィックをさらに管理するには、クラスターの IAM ロールと、Amazon S3 バケットにアタッチされているポリシーを変更します。また、次の詳細のとおり、クラスターが AWS Glue または Athena にアクセスできるよう VPC を設定する必要がある場合があります。

Redshift Spectrum に拡張された VPC のルーティングを使用する場合の考慮事項次は、Redshift Spectrum 拡張された VPC のルーティングを使用する場合の考慮事項です。

• バケットアクセスポリシー (p. 133)• クラスター IAM ロール (p. 133)• Amazon S3 アクセスのログ記録と監査 (p. 134)• AWS Glue または Amazon Athena へのアクセス (p. 135)

バケットアクセスポリシーバケットにアタッチされたバケットポリシーを使用、およびクラスターにアタッチされた IAM ロールを使用することで、Amazon S3 バケットにあるデータへのアクセスを管理できます。

Redshift Spectrum は、指定された VPC エンドポイントへのアクセスのみを制限するバケットポリシーを使用する Amazon S3 バケットに格納されているデータにはアクセスできません。代わりに、特定の AWSアカウントや特定のユーザーなど、特定のプリンシパルへのアクセスのみを制限するバケットポリシーを使用します。

バケットへのアクセス権限を付与された IAM ロールには、Amazon Redshift サービスプリンシパルのみがロールを引き受けることを許可する信頼関係を使用します。ロールがクラスターにアタッチされると、ロールは Amazon Redshift のコンテキストでのみ使用でき、クラスター外で共有することはできません。詳細については、「IAM ロールへのアクセスの制限 (p. 248)」を参照してください。

次のバケットポリシーの例は、AWS アカウント 123456789012 が所有する Redshift Spectrum からのトラフィックからのみの指定されたバケットへのアクセスを許可します。

{ "Version":"2012-10-17", "Statement":[ { "Sid”:”BucketPolicyForSpectrum", "Effect":"Allow", "Principal": {"AWS": ["arn:aws:iam::123456789012:root"]}, "Action":[“s3:GetObject",”s3:List*"], "Resource":["arn:aws:s3:::examplebucket/*"], "Condition":{"StringEquals":{"aws:UserAgent": "AWS Redshift/Spectrum"]}} } ]}

クラスター IAM ロールクラスターにアタッチされたロールには、次に示すように、Amazon Redshift サービスによってのみ引き受けられることを許可する信頼関係があります。

133

Amazon Redshift クラスター管理ガイドRedshift Spectrum に拡張された VPC のルーティングを使用する場合の考慮事項

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

特定のバケットへの COPY および UNLOAD アクセスを防ぐクラスターロールにポリシーを追加できます。次のポリシーは、Redshift Spectrum からのみの指定されたバケットへのトラフィックを許可します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "arn:aws:s3:::myBucket/*", "Condition": {"StringEquals": {"aws:UserAgent": "AWS Redshift/Spectrum"}} }]}

詳細については、Amazon Redshift Database Developer Guide の「Amazon Redshift Spectrum 用の IAMポリシー」を参照してください。

Amazon S3 アクセスのログ記録と監査Amazon Redshift 拡張された VPC のルーティングを使用する利点の 1 つは、すべての COPY およびUNLOAD トラフィックが VPC フローログに記録されることです。Redshift Spectrum から Amazon S3へのトラフィックは VPC を通過しないため、VPC フローログに記録されません。Redshift Spectrum がAmazon S3 にあるデータにアクセスするとき、AWS アカウントとそれぞれのロール権限のコンテキストでこれらの操作を実行します。AWS CloudTrail と Amazon S3 でサーバーアクセスログ記録を使用して、Amazon S3 アクセスのログ記録と監査ができます。

AWS CloudTrail ログ

Redshift Spectrum を含め、Amazon S3 にあるオブジェクトへのすべてのアクセスを追跡するには、Amazon S3 オブジェクトの CloudTrail ログ記録を有効化します。

CloudTrail を使用して、AWS インフラストラクチャ全体のアカウントアクティビティを表示、検索、ダウンロード、アーカイブ、分析、応答できます。詳細については、「CloudTrail の開始方法」を参照してください。

デフォルトでは、CloudTrail はバケットレベルのアクションのみを追跡します。オブジェクトレベルのアクション (GetObject など) を追跡するには、ログが記録されたバケットそれぞれのデータイベントおよび管理イベントを有効化します。

Amazon S3 サーバーアクセスのログ記録

サーバーアクセスのログには、バケットに対するリクエストの詳細が記録されます。アクセスログ情報は、セキュリティとアクセス監査に役立ちます。詳細については、Amazon Simple Storage Service 開発者ガイド の「サーバーアクセスのログ記録を有効にする方法」を参照してください。

詳細については、AWS セキュリティブログの投稿 「バケットポリシーを使用して徹底した防御を適用し、Amazon S3 データを安全に保つ方法」を参照してください。

134

Amazon Redshift クラスター管理ガイドRedshift Spectrum に拡張された VPC のルーティングを使用する場合の考慮事項

AWS Glue または Amazon Athena へのアクセスRedshift Spectrum では、AWS Glue または Athena でデータカタログにアクセスします。専用の HiveMetastore を使用して、データカタログにアクセスすることもできます。

AWS Glue または Athena へのアクセスを有効化するには、インターネットゲートウェイまたは NAT ゲートウェイで VPC を設定します。VPC セキュリティグループを設定して、AWS Glue または Athena のパブリックエンドポイントへのアウトバウンドトラフィックを許可します。また、AWS Glue から AWSGlue データカタログ にアクセスできるように、インターフェイスの VPC エンドポイントを設定できます。VPC インターフェイスエンドポイントを使用すると、AWS ネットワーク内で VPC と AWS Glue 間の通信が実施されます。詳細については、「インターフェイスエンドポイントの作成」を参照してください。

VPC で次のパスを設定できます。

• インターネットゲートウェイ – VPC 外の AWS サービスに接続するには、Amazon VPC ユーザーガイド で説明しているとおり、インターネットゲートウェイを VPC サブネットにアタッチできます。 インターネットゲートウェイを使用するには、クラスターと他のサービスとの通信を可能にするパブリックIP アドレスがクラスターに必要です。

• NAT ゲートウェイ – ほかの AWS リージョンにある Amazon S3 バケット、または AWS ネットワーク内のほかのサービスに接続するには、Amazon VPC ユーザーガイド で説明しているとおり、ネットワークアドレス変換 (NAT) ゲートウェイを設定します。 この設定を使用して、AWS ネットワーク外のホストインスタンスにアクセスすることもできます。

詳細については、「Amazon Redshift 拡張された VPC のルーティング (p. 129)」を参照してください。

135

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift パラメータグループ

概要Amazon Redshift で、作成する各クラスターにパラメータグループを関連付けます。パラメータグループは、クラスター内で作成したデータベースに適用されるパラメータのグループです。これらのパラメータは、クエリのタイムアウトやデータスタイルなどのデータベース設定を定義します。

パラメータグループについて各パラメータグループには、データベースの設定を定義する複数のパラメータがあります。使用できるパラメータのリストは、パラメータグループが属しているパラメータグループファミリーによって異なります。パラメータグループファミリーとは、パラメータグループ内のパラメータが適用される Amazon Redshift エンジンのバージョンのことです。パラメータグループファミリー名の形式は、redshift-version (version はエンジンバージョン) です。たとえば、エンジンの現在のバージョンは redshift-1.0 です。

Amazon Redshift は、パラメータグループファミリーごとに 1 つのデフォルトパラメータグループを提供しています。デフォルトパラメータグループにはパラメータごとのプリセット値があり、これを変更することはできません。デフォルトパラメータグループ名の形式は default.parameter_group_family(parameter_group_family はパラメータグループが属するエンジンのバージョン) です。たとえば、redshift-1.0 バージョンのデフォルトパラメータグループの名前は default.redshift-1.0 です。

Note

現時点では、redshift-1.0 が Amazon Redshift エンジンの唯一のバージョンです。したがって、default.redshift-1.0 が唯一のデフォルトパラメータグループです。

デフォルトパラメータグループとは異なるパラメータ値を使用するには、カスタムパラメータグループを作成してクラスターを関連付ける必要があります。カスタムパラメータグループ内のパラメータ値は、最初はデフォルトパラメータグループ内のものと同じです。これらの値は Amazon Redshift によってプリセットされているため、すべてのパラメータの最初の source は engine-default です。パラメータ値を変更した後、source は user に変わり、値がデフォルト値から変更されたことを示します。

Note

Amazon Redshift console には各パラメータの source は表示されません。source を表示するには、Amazon Redshift API、AWS CLI、またはいずれかの AWS SDK を使用する必要があります。

ユーザーが作成したパラメータグループについては、パラメータ値はいつでも変更できます。またはすべてのパラメータ値をデフォルトにリセットすることもできます。また、異なるパラメータグループをクラスターに関連付けることもできます。場合によっては、クラスターに既に関連付けられているパラメータグループのパラメータ値を変更したり、別のパラメータグループをクラスターに関連付けたりすることもできます。このような場合、更新したパラメータ値を有効にするためにクラスターの再起動が必要になる

136

Amazon Redshift クラスター管理ガイドデフォルトパラメータ値

ことがあります。クラスターに障害が発生し、Amazon Redshift により再起動された場合、変更内容はそのときに適用されます。メンテナンス中にクラスターが再起動された場合、変更は適用されません。詳細については、「WLM の動的プロパティと静的プロパティ (p. 139)」を参照してください。

デフォルトパラメータ値次の表はデフォルトパラメータ値の一覧とともに、各パラメータの詳細な情報へのリンクを示しています。これらは redshift-1.0 パラメータグループファミリーのデフォルト値です。

パラメータ名 値 詳細情報

auto_analyze true Amazon Redshift Database Developer Guideのauto_analyze

datestyle ISO, MDY Amazon Redshift Database Developer Guideの「datastyle」

enable_user_activity_loggingfalse このガイドの「データベース監査ログ作成 (p. 256)」

extra_float_digits 0 Amazon Redshift Database Developer Guideの「extra_float_digits」

max_concurrency_scaling_clusters1 Amazon Redshift Database Developer Guide のmax_concurrency_scaling_clusters

query_group デフォルト Amazon Redshift Database Developer Guideの「query_group」

require_ssl false このガイドの「接続のセキュリティオプションを設定する (p. 107)」

search_path $user, public Amazon Redshift Database Developer Guideの「search_path」

statement_timeout 0 Amazon Redshift Database Developer Guideの「statement_timeout」

wlm_json_configuration [{"auto_wlm":true}] このガイドの「ワークロード管理の設定 (p. 139)」

use_fips_ssl false システムが FIPS に準拠する必要がある場合のみ、FIPS 準拠の SSL モードを有効にします。

Note

max_cursor_result_set_size パラメータは廃止されました。カーソル結果セットのサイズの詳細については、Amazon Redshift Database Developer Guide の「カーソルの制約」を参照してください。

データベースで SET コマンドを使用して一時的にパラメータを上書きすることもできます。SET コマンドは、現在のセッションの期間だけパラメータを上書きします。前の表で示されたパラメータに加えて、データベースで wlm_query_slot_count を設定することで、一時的にスロットカウントを調整することもできます。wlm_query_slot_count パラメータは、パラメータグループでの設定に使用することはできません。スロットカウントの調整の詳細については、Amazon Redshift Database Developer Guideの

137

Amazon Redshift クラスター管理ガイドAWS CLI によるパラメータ値の設定

「wlm_query_slot_count」を参照してください。一時的に他のパラメータを上書きする方法の詳細については、Amazon Redshift Database Developer Guideの「サーバー設定の変更」を参照してください。

AWS CLI によるパラメータ値の設定AWS CLI を使用して Amazon Redshift パラメータを設定するには、特定のパラメータグループのmodify-cluster-parameter-group コマンドを使用します。parameter-group-name で、変更するパラメータグループを指定します。parameters パラメータ (modify-cluster-parameter-group コマンドのパラメータ) を使用して、パラメータグループで変更する各パラメータの名前と値のペアを指定します。

Note

AWS CLI を使用して wlm_json_configuration パラメータを設定する際は、特別な考慮事項があります。このセクションの例は、wlm_json_configuration を除くすべてのパラメータに適用されます。AWS CLI による wlm_json_configuration の設定の詳細については、「ワークロード管理の設定 (p. 139)」を参照してください。

パラメータ値を変更した後は、変更したパラメータグループに関連付けられているクラスターを再起動する必要があります。値が適用中の間、applying のクラスター状態は ParameterApplyStatus と表示され、値の適用が完了すると pending-reboot になります。再起動後、クラスター内のデータベースは新しいパラメータ値の使用を開始します。クラスターの再起動の詳細については、「クラスターの再起動 (p. 33)」を参照してください。

Note

wlm_json_configuration パラメータに含まれる一部のプロパティは動的プロパティであり、関連付けられたクラスターを再起動しなくても変更が適用されます。動的プロパティと静的プロパティの詳細については、「WLM の動的プロパティと静的プロパティ (p. 139)」を参照してください。

構文

次の構文は、modify-cluster-parameter-group コマンドを使用してパラメータを設定する方法を示しています。parameter_group_name を指定し、parameter_name と parameter_value の両方を実際に設定するパラメータとパラメータ値に置き換えます。複数のパラメータを同時に変更する場合は、パラメータと値の各セットをスペースで区切ります。

aws redshift modify-cluster-parameter-group --parameter-group-name parameter_group_name --parameters ParameterName=parameter_name,ParameterValue=parameter_value

次の例は、statement_timeout パラメータグループの enable_user_activity_logging パラメータと myclusterparametergroup パラメータを設定する方法を示しています。

Note

読みやすくするため、例は複数行で表示されていますが、実際の AWS CLI では 1 行になります。

aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparametergroup --parameters ParameterName=statement_timeout,ParameterValue=20000 ParameterName=enable_user_activity_logging,ParameterValue=true

138

Amazon Redshift クラスター管理ガイドワークロード管理の設定

ワークロード管理の設定Amazon Redshift では、ワークロード管理 (WLM) を使用して、使用可能なクエリキューの数と、処理するためにクエリをそれらのキューにルーティングする方法を定義します。WLM は、パラメータグループ設定の一部です。クラスターは、関連付けられているパラメータグループで指定された WLM 設定を使用します。

パラメータグループを作成すると、デフォルトの WLM 設定には、最大 5 つのクエリを同時に実行できる1 つのキューが含まれます。クエリの処理をさらに細かく制御する場合、キューを追加して、各キューのWLM プロパティを設定できます。追加した各キューのデフォルトの WLM 設定は、そのプロパティを設定するまで同じです。

付加的なキューを追加する場合、設定内の最後のキューがデフォルトキューになります。クエリが WLM設定の条件に基づいて別のキューにルーティングされる場合を除いて、デフォルトキューにより処理されます。デフォルトキューのモードおよび同時実行レベルを指定できますが、デフォルトキューのユーザーグループやクエリグループを指定することはできません。

他のパラメータと同様、デフォルトパラメータグループで WLM 設定を変更することはできません。デフォルトパラメータグループに関連付けられたクラスターは、常にデフォルトの WLM 設定を使用します。WLM 設定を変更するには、新しいパラメータグループを作成してからカスタム WLM 設定を必要とするクラスターとそのパラメータグループを関連付けます。

WLM の動的プロパティと静的プロパティWLM 設定プロパティは動的または静的のいずれかです。動的なプロパティは、クラスターを再起動することなくデータベースに適用できますが、静的プロパティで変更を有効にするには、クラスターの再起動が必要です。静的および動的プロパティの詳細については、「WLM の動的設定プロパティと静的設定プロパティ」を参照してください。

wlm_json_configuration パラメータのプロパティWLM は、Amazon Redshift console、AWS CLI、Amazon Redshift API、またはいずれかの AWS SDK を使用して設定できます。WLM 設定では、キュー間でのメモリ割り当て、キューで同時に実行できるクエリの数などのキューの動作を定義するいくつかのプロパティが使用されます。

Note

以下のプロパティは Amazon Redshift console 名とともに表示され、対応する JSON プロパティは説明で示されています。

次の表は、プロパティが自動 WLM または手動 WLM に適用可能かどうかをまとめたものです。

WLM プロパティ 自動 WLM 手動 WLM

自動 WLM はい はい

ショートクエリアクセラレーションの有効化

はい はい

ショートクエリの最大実行時間 はい はい

優先度 はい いいえ

キューのタイプ はい はい

139

Amazon Redshift クラスター管理ガイドwlm_json_configuration パラメータのプロパティ

WLM プロパティ 自動 WLM 手動 WLM

同時実行スケーリングモード はい はい

Concurrency いいえ はい

ユーザーグループ はい はい

User Group Wildcard はい はい

クエリグループ はい はい

Query Group Wildcard はい はい

Timeout いいえ 廃止

メモリ いいえ はい

クエリのモニタリングルール はい はい

次の一覧では、各キューに設定できる WLM プロパティについて説明します。

自動 WLM

自動 WLM を true に設定すると、自動 WLM が有効になります。自動 WLM は 、[Concurrency onmain (メインでの同時実行数)] と [メモリ (%)] の値を Auto に設定します。Amazon Redshift はクエリの同時実行数とメモリの割り当てを管理します。デフォルト: true。

JSON プロパティ: auto_wlmショートクエリアクセラレーションの有効化

ショートクエリアクセラレーション (SQA) は、実行時間が短い一部のクエリを、実行時間が長いクエリよりも優先します。SQA では実行時間が短いクエリを専用領域で実行します。このため SQA クエリは、実行時間が長いクエリをキューで待機するよう強制されません。SQA によって実行時間が短いクエリの実行開始が早くなり、ユーザーへの結果表示も早くなります。SQA を有効にすると、ショートクエリの最大実行時間も指定できます。SQA を有効にするには、true を指定します。デフォルト:false。

JSON プロパティ: short_query_queueショートクエリの最大実行時間

SQA を有効にした場合は、0 に指定することで、WLM でショートクエリの最大実行時間を動的に設定することができます。または、1~20 秒 (ミリ秒単位) で値を指定します。デフォルト値は 0 です。

JSON プロパティ: max_execution_time優先度

優先度は、キューで実行されるクエリの優先度を設定します。優先度を設定するには、[WLM モード]を [Auto WLM] に設定する必要があります。つまり、auto_wlm が true でなければなりません。有効な値は、highest、high、normal、low、および lowest です。 デフォルトは normal です。

JSON プロパティ: priorityキューのタイプ

キュータイプは、[自動 WLM] または [手動 WLM] で使用されるキューを指定します。queue_type をauto または manual に設定します。指定されなかった場合、デフォルト値は manual です。

JSON プロパティ: queue_type

140

Amazon Redshift クラスター管理ガイドwlm_json_configuration パラメータのプロパティ

同時実行スケーリングモード

キューで同時実行スケーリングを有効にするには、[同時実行スケーリングモード] を auto に設定します。キューにルーティングされたクエリの数がキューに設定された同時実行数を超えると、対象クエリがスケーリングクラスターに送信されます。スロットが使用可能になると、クエリはメインクラスターで実行されます。デフォルト: off。

JSON プロパティ: concurrency_scalingConcurrency

キューで同時に実行できるクエリの数。同時実行スケーリングが有効な場合、キューが同時実行数レベルに達すると、対象のクエリがスケーリングクラスターに送信されます。同時実行スケーリングモードが無効な場合、スロットが使用可能になるまで、クエリはキューで待機します。範囲は 1~50です。

JSON プロパティ: query_concurrencyユーザーグループ

ユーザーグループ名のカンマ区切りリスト。ユーザーグループのメンバーがデータベースでクエリを実行すると、そのメンバーのクエリはユーザーグループに関連付けられたキューにルーティングされます。

JSON プロパティ: user_groupユーザーグループのワイルドカード

ユーザーグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードを有効にすると、「*」または「?」を使用できます。クエリを実行するときに複数のユーザーグループを指定します。詳細については、「ワイルドカード」を参照してください。

JSON プロパティ: user_group_wild_cardクエリグループ

クエリグループのカンマ区切りリスト。クエリグループのメンバーがデータベースでクエリを実行すると、そのメンバーのクエリはクエリグループに関連付けられたキューにルーティングされます。

JSON プロパティ: query_groupクエリグループのワイルドカード

クエリグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードを有効にすると、「*」または「?」を使用できます。クエリを実行するときに複数のクエリグループを指定します。詳細については、「ワイルドカード」を参照してください。

JSON プロパティ: query_group_wild_cardタイムアウト (ms)

WLM タイムアウト (max_execution_time) は廃止されました。自動 WLM を使用している場合は使用できません。代わりに、query_execution_time を使用してクエリモニタリングルール (QMR)を作成して、経過したクエリ実行時間を制限します。詳細については、「WLM クエリモニタリングルール」を参照してください。

クエリがキャンセルされるまで実行できる最大時間 (ミリ秒単位)。場合によっては、読み取り専用クエリ (SELECT ステートメントなど) が WLM タイムアウトに伴ってキャンセルされることもあります。このような場合、WLM は、WLM キュー割り当てルールに基づいて次に一致するキューへのクエリのルーティングを試みます。クエリが他のいずれのキュー定義にも一致しない場合、クエリはキャンセルされ、デフォルトキューには割り当てられません。詳細については、WLM クエリキューのホッピングを参照してください。WLM タイムアウトは returning 状態に達したクエリには適用されませ

141

Amazon Redshift クラスター管理ガイドwlm_json_configuration パラメータのプロパティ

ん。クエリの状態を表示するには、STV_WLM_QUERY_STATE システムテーブルを参照してください。

JSON プロパティ: max_execution_timeメモリ (%)

キューに割り当てるメモリの割合。少なくとも 1 つキューに対してメモリの割合を指定する場合は、他のすべてのキューに対しても割合を指定する必要があります。合計は 100 パーセント以下とします。すべてのキューのメモリ割り当ての合計が 100% 未満である場合、未割り当て分のメモリはサービスによって管理されます。サービスは、この未割り当てメモリを、処理用メモリの追加をリクエストしたキューに一時的に割り当てることができます。

JSON プロパティ: memory_percent_to_useクエリのモニタリングルール

WLM クエリモニタリングルールを使用することで、指定した基準または述語に基づいてクエリのWLM キューを継続的にモニタリングできます。たとえば、システムリソースを過剰に消費する傾向があるクエリをモニタリングし、指定したパフォーマンスの境界をクエリを超えたときに指定のアクションを開始することができます。

Note

プログラムでルールを作成する場合は、パラメータグループ定義に含める JSON をコンソールを使用して生成することを強くおすすめします。

特定のクエリキューにクエリモニタリングルールを関連付けます。キューごとの 25 個までルールを指定できます。すべてのキューでのルールは合計 25 個までです。

JSON プロパティ: rules

JSON プロパティの階層:

rules rule_name predicate metric_name operator value action value

ルールごとに、以下のプロパティを指定します。• rule_name – ルール名は WLM 設定内で一意である必要があります。ルール名には最大で 32 文字

の英数字または下線を使用できます。スペースまたは疑問符を含めることはできません。キューごとの 8 個までルールを指定できます。すべてのキューでのルールは合計 8 個までです。• predicate – 述語は、ルールごとに最大で 3 つまで設定できます。述語ごとに、以下のプロパ

ティを指定します。• metric_name – メトリクスのリストについては、Amazon Redshift Database Developer Guide

の クエリモニタリングのメトリクスを参照してください。• operator – オペレーションは =、<、および > です。• value – アクションをトリガーする指定されたメトリクスのしきい値。

• action – 各ルールは一つのアクションに関連付けられます。有効なアクションは以下のとおりです。• log

• hop (手動 WLM でのみ利用可能)• abort

142

Amazon Redshift クラスター管理ガイドAWS CLI による wlm_json_configuration パラメータの設定

• change_query_priority (自動 WLM でのみ利用可能)

次の例は、2 つの述語と rule_1 いうアクションを持つ hop という名前の WLM クエリモニタリングルール用の JSON を示しています。

"rules": [ { "rule_name": "rule_1", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 100000 }, { "metric_name": "query_blocks_read", "operator": ">", "value": 1000 } ], "action": "hop" } ]

各プロパティの詳細とクエリキューの設定戦略については、Amazon Redshift Database Developer Guideの「クエリキューの定義」と「ワークロード管理の実装」を参照してください。

AWS CLI による wlm_json_configuration パラメータの設定WLM を設定するには、wlm_json_configuration パラメータを変更します。この値は JavaScriptObject Notation (JSON) でフォーマットされています。AWS CLI、Amazon Redshift API、またはいずれかの AWS SDK を使用して WLM を設定する場合、このセクションの残りの部分でwlm_json_configuration パラメータの JSON 構造を構築する方法を参照してください。

Note

Amazon Redshift console を使用して WLM を設定する場合、コンソールでは簡単にキューを追加してそのプロパティを設定できるため、JSON 形式について理解する必要はありません。コンソールを使用して WLM を設定する方法の詳細については、「パラメータグループを変更する (p. 149)」を参照してください。

次の例は、自動 WLM で 1 つのキューを定義するデフォルトの WLM 設定です。

{ "auto_wlm": true}

次の例は、同時実行数レベルが 5 である 1 つのキューを定義するカスタムの WLM 設定です。

{ "query_concurrency":5}

143

Amazon Redshift クラスター管理ガイドAWS CLI による wlm_json_configuration パラメータの設定

構文

デフォルトの WLM 設定は非常にシンプルで、キューが 1 つとプロパティが 1 つしかありません。JSON構造でキューを追加し、キューごとに複数のプロパティを設定することができます。次の構文は、複数のプロパティを持つ複数のキューを設定する場合に使用する JSON 構造を表しています。

[ { "ParameterName":"wlm_json_configuration", "ParameterValue": "[ { "q1_first_property_name":"q1_first_property_value", "q1_second_property_name":"q1_second_property_value", ... }, { "q2_first_property_name":"q2_first_property_value", "q2_second_property_name":"q2_second_property_value", ... } ...

]" }]

前の例では、q1 で始まる代表的なプロパティは、最初のキューの配列にあるオブジェクトです。これらの各オブジェクトは名前と値のペアです。name と value を組み合わせて最初のキューに WLM プロパティを設定します。q2 で始まる代表的なプロパティは、2 番目のキューの配列にあるオブジェクトです。より多くのキューが必要な場合、追加の各キューに別のアレイを追加し、各オブジェクトのプロパティを設定します。

WLM の設定を変更する際は、キュー内の 1 つのプロパティだけを変更する場合であっても、キューの構造全体を含める必要があります。これは、wlm_json_configuration パラメータの値として、JSON 構造全体が文字列として渡されるためです。

AWS CLI コマンドのフォーマットAWS CLI を使用する場合、wlm_json_configuration パラメータには特定の形式が必要です。使用する形式は、クライアントのオペレーティングシステムによって異なります。コマンドラインから正しく渡されるように JSON 構造を囲む方法は、オペレーティングシステムによってさまざまです。Linux、MacOS X、Windows の各オペレーティングシステムで適切なコマンドを作成する方法の詳細については、以下のセクションを参照してください。AWS CLI で JSON データ構造を囲む一般的な方法の違いの詳細については、AWS Command Line Interface ユーザーガイドの「文字列の引用」を参照してください。

以下のコマンド例では、example-parameter-group という名前のパラメータグループの手動 WLMを設定します。この設定により、ショートクエリアクセラレーションでショートクエリの最大実行時間が 0 に設定されます。これにより、値を動的に設定することを WLM に指示します。ApplyType 設定はdynamic です。この設定では、このパラメータ内の動的プロパティに対して行われたすべての変更は、設定に対して他の静的な変更が行われていない限り、速やかに適用されます。この設定では、次の 3 つのキューを定義しています。

• 最初のキューにより、ユーザーは自身のキューで report をラベルとして (query_group プロパティで) 指定し、そのキューへのクエリのルーティングをスムーズにすることができます。report* ではワイルドカード検索が有効にされているため、クエリをキューにルーティングするためにラベルを正しい順序にする必要はありません。たとえば、reports と reporting のいずれも、このクエリグループに一致します。このキューにはすべてのキューの合計メモリのうち 25 パーセントが割り当てられ、最大4 つのクエリを同時に実行できます。クエリの時間は、最大 20,000 ミリ秒 (ms) に制限されています。

144

Amazon Redshift クラスター管理ガイドAWS CLI による wlm_json_configuration パラメータの設定

モードが自動に設定されているため、キューのクエリスロットがいっぱいになると、対象のクエリがスケーリングクラスターに送信されます。

• 2 番目のキューにより、データベース内の admin または dba グループのメンバーであるユーザーは、自身のクエリを処理用にそのキューにルーティングすることができます。ユーザーグループではワイルドカード検索が無効になっているため、ユーザーは自身のクエリがそのキューにルーティングされるようにデータベース内のグループと正確に一致する必要があります。このキューにはすべてのキューの合計メモリのうち 40% が割り当てられ、最大 5 つのクエリを同時に実行できます。モードはオフに設定されているため、admin または dba グループのメンバーによって送信されたクエリはすべて、メインクラスターで実行されます。

• 設定内の最後のキューはデフォルトキューです。このキューにはすべてのキューの合計メモリのうち 35パーセントが割り当てられ、最大 5 つのクエリを同時に処理できます。モードは自動に設定されます。

Note

デモンストレーションの目的で、例は複数行で示されています。実際のコマンドに改行を入れることはできません。

aws redshift modify-cluster-parameter-group --parameter-group-name example-parameter-group --parameters'[ { "query_concurrency": 4, "max_execution_time": 20000, "memory_percent_to_use": 25, "query_group": ["report"], "query_group_wild_card": 1, "user_group": [], "user_group_wild_card": 0, "concurrency_scaling": "auto", "queue_type": "manual" }, { "query_concurrency": 5, "memory_percent_to_use": 40, "query_group": [], "query_group_wild_card": 0, "user_group": [ "admin", "dba" ], "user_group_wild_card": 0, "concurrency_scaling": "off", "queue_type": "manual" }, { "query_concurrency": 5, "query_group": [], "query_group_wild_card": 0, "user_group": [], "user_group_wild_card": 0, "concurrency_scaling": "auto", "queue_type": "manual" }, {"short_query_queue": true}]'

以下に、自動 WLM 設定で、WLM クエリモニタリングルールを設定する例を示します。この例では、example-monitoring-rules という名前のパラメータグループを作成します。設定で前の例と同じ 3 つのキューを定義しますが、query_concurrency および memory_percent_to_use は、指定されません。この設定では、次のルールとクエリの優先度も追加されます。

145

Amazon Redshift クラスター管理ガイドAWS CLI による wlm_json_configuration パラメータの設定

• 最初のキューは rule_1 というルールを定義します。ルールには 2 つの述語があります。query_cpu_time > 10000000 と query_blocks_read > 1000 です。ルールのアクションはlog です。このキューの優先度は Normal です。

• 2 つめのキューは rule_2 というルールを定義します。ルールには 2 つの述語があります。query_execution_time > 600000000 と scan_row_count > 1000000000 です。ルールのアクションは abort です。このキューの優先度は Highest です。

• 設定内の最後のキューはデフォルトキューです。このキューの優先度は Low です。

Note

デモンストレーションの目的で、例は複数行で示されています。実際のコマンドに改行を入れることはできません。

aws redshift modify-cluster-parameter-group --parameter-group-name example-monitoring-rules --parameters'[ { "query_group" : [ "report" ], "query_group_wild_card" : 1, "user_group" : [ ], "user_group_wild_card" : 0, "concurrency_scaling" : "auto", "rules" : [{ "rule_name": "rule_1", "predicate": [{ "metric_name": "query_cpu_time", "operator": ">", "value": 1000000 }, { "metric_name": "query_blocks_read", "operator": ">", "value": 1000 } ], "action" : "log" } ], "priority": "normal", "queue_type": "auto"}, { "query_group" : [ ], "query_group_wild_card" : 0, "user_group" : [ "admin", "dba" ], "user_group_wild_card" : 0, "concurrency_scaling" : "off", "rules" : [ { "rule_name": "rule_2", "predicate": [ {"metric_name": "query_execution_time", "operator": ">", "value": 600000000}, {"metric_name": "scan_row_count", "operator": ">", "value": 1000000000}], "action": "abort"}], "priority": "high", "queue_type": "auto"

}, { "query_group" : [ ], "query_group_wild_card" : 0, "user_group" : [ ], "user_group_wild_card" : 0, "concurrency_scaling" : "auto", "priority": "low",

146

Amazon Redshift クラスター管理ガイドAWS CLI による wlm_json_configuration パラメータの設定

"queue_type": "auto", "auto_wlm": true}, { "short_query_queue" : true} ]'

JSON ファイルを指定してコマンドラインで AWS CLI を使用して WLM を構成する

AWS CLI を使用して wlm_json_configuration パラメータを変更し、JSON ファイルとしてparameters 引数の値で渡すことができます。

aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparaametergroup --parameters file://modify_pg.json

--parameters の引数は、modify_pg.json に保存されます。ファイルの場所は、オペレーティングシステムの形式で指定されます。詳細については、「ファイルからパラメータをロードする」を参照してください。modify_pg.json JSON ファイルの内容の例を以下に示します。

[ { "ParameterName": "wlm_json_configuration", "ParameterValue": "[{\"user_group\":\"example_user_group1\",\"query_group\": \"example_query_group1\", \"query_concurrency\":7},{\"query_concurrency\":5}]" }]

[ { "ParameterName": "wlm_json_configuration", "ParameterValue": "[{\"query_group\":[\"reports\"],\"query_group_wild_card\":0,\"query_concurrency\":4,\"max_execution_time\":20000,\"memory_percent_to_use\":25},{\"user_group\":[\"admin\",\"dba\"],\"user_group_wild_card\":1,\"query_concurrency\":5,\"memory_percent_to_use\":40},{\"query_concurrency\":5,\"memory_percent_to_use\":35},{\"short_query_queue\": true, \"max_execution_time\": 5000 }]", "ApplyType": "dynamic" }]

Linux および Mac OS X オペレーティングシステムのコマンドラインで AWS CLIを使用して WLM を設定する際のルール

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。

• JSON 構造全体を単一引用符 (') と角括弧 ([ ]) で囲む必要があります。• すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要がありま

す。• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。• ネストされた構造内では、各二重引用符 (") の前で円記号 (\) のエスケープ文字を使用する必要がありま

す。• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。• 名前と値の各ペアは、カンマ (,) で区切ります。

147

Amazon Redshift クラスター管理ガイドコンソールを使用したパラメータグループの管理

• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置くことで区切ります。

Microsoft Windows オペレーティングシステムの Windows PowerShell で AWSCLI を使用して WLM を設定する際のルール

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。

• JSON 構造全体を単一引用符 (') と角括弧 ([ ]) で囲む必要があります。• すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要がありま

す。• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。• ネストされた構造内では、各二重引用符 (") とその円記号 (\) のエスケープ文字の前で円記号 (\) のエス

ケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするため (\\\")、3 つの円記号と 1 つの二重引用符を使用することを意味します。

• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。• 名前と値の各ペアは、カンマ (,) で区切ります。• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置く

ことで区切ります。

Windows オペレーティングシステムでコマンドプロンプトを使用して WLM を設定する際のルール

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。

• JSON 構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があります。• すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要がありま

す。• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。• ネストされた構造内では、各二重引用符 (") とその円記号 (\) のエスケープ文字の前で円記号 (\) のエス

ケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするため (\\\")、3 つの円記号と 1 つの二重引用符を使用することを意味します。

• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。• 名前と値の各ペアは、カンマ (,) で区切ります。• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置く

ことで区切ります。

コンソールを使用したパラメータグループの管理Amazon Redshift console で、パラメータグループの表示、作成、変更、および削除を行うことができます。これらのタスクを開始するには、[ワークロード管理] を選択してから、[パラメータグループ] を選択して、管理または作成します。

リストにある任意のパラメータグループを表示して、パラメータおよびワークロード管理 (WLM) の設定の値の概要を表示することができます。[Group parameters (グループパラメータ)] は [パラメータ] タブに表示され、[Workload queues (ワークロードキュー)] は [ワークロード管理] タブに表示されます。次のスクリーンショットでは、パラメータ値の概要を示すために、custom-param-group というパラメータグループが展開されています。

148

Amazon Redshift クラスター管理ガイドパラメータグループを作成する

パラメータグループを作成するデフォルトのパラメータグループとは異なるパラメータ値を設定する場合は、パラメータグループを作成します。

パラメータグループを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [Navigation] ペインで、[Parameter Groups] を選択します。3. [パラメータグループ] ページで、[クラスターパラメータグループの作成] を選択します。4. [クラスターパラメータグループの作成] ダイアログボックスで、パラメータグループファミリーを選

択した後、パラメータグループ名およびパラメータグループの説明を入力します。パラメータグループの命名に関する制約の詳細については、「Amazon Redshift における制限 (p. 350)」を参照してください。

5. [Create] を選択します。

パラメータグループを変更するパラメータを変更してパラメータ設定や WLM 設定プロパティを変更できます。

149

Amazon Redshift クラスター管理ガイドパラメータグループを変更する

Note

デフォルトのパラメータグループを変更することはできません。

パラメータグループ内のパラメータを変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [Navigation] ペインで、[Parameter Groups] を選択します。3. [パラメータグループ] ページのパラメータグループリストで、変更するパラメータグループの行を選

択します。4. WLM 設定パラメータ以外のパラメータを編集するには、[パラメータの編集] を選択します。

[パラメータ] タブが開き、パラメータグループのパラメータを更新できます。次のようなパラメータの値を更新できます。

• auto_analyze• datestyle• enable_user_activity_logging• extra_float_digits• force_acm• max_concurrency_scaling_clusters• query_group• require_ssl• search_path• statement_timeout• use_fips_ssl

5. 変更するパラメータに対応する [値] ボックスで、新しい値を入力します。これらのパラメータの詳細については、Amazon Redshift パラメータグループ (p. 136)を参照してください。

6. [Save Changes] を選択します。

Note

すでにクラスターと関連付けられたパラメータグループ内でこれらのパラメータを変更した場合、クラスターを再起動して変更を適用します。詳細については、「クラスターの再起動 (p. 33)」を参照してください。

パラメータグループ内の WLM 設定を変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[ワークロード管理] を選択します。3. [パラメータグループ] で、変更するパラメータグループを選択します。

Note

デフォルトのパラメータグループを変更することはできません。4. WLM の設定を編集するには、[編集] を選択します。5. ショートクエリアクセラレーション (SQA) を有効にするには、[Enable short query acceleration

(ショートクエリアクセラレーションの有効化)] を選択します。6. SQA を有効にした場合、[ショートクエリの最大実行時間 (1~20 秒)] は、デフォルトで [動的] に設定

されます。最大実行時間を固定値に設定するには、値 1~20 を選択します。7. キュー設定を変更するには、次の 1 つ以上の操作を行います:

150

Amazon Redshift クラスター管理ガイドコンソールを使用してクエリモニタリングルールを作成または変更する

• [Switch WLM mode (WLM モードの切り替え)] を選択し、自動 WLM と手動 WLM の間で切り替えます。

自動 WLM では、[メモリ] と [Concurrency on main (メインでの同時実行数)] の値が auto に設定されます。

• キューを作成するには、[キューの追加] を選択します。

自動 WLM 設定にキューを追加することはできません。• [Max Concurrency Scaling clusters (最大同時実行スケーリングクラスター)] パラメータを変更する

には、表示されている現在の値の横にある [編集] を選択します。• キューを変更するには、テーブルのプロパティ値を変更します。キューのタイプに応じて、プロパ

ティには以下が含まれます。• メモリ (%)• メインクラスターでの同時実行数• 同時実行スケーリングモード (off または auto)• タイムアウト (ms)• ユーザーグループ• クエリグループ

• キューの順序を変更するには、テーブル内の 上 および下の矢印ボタンを選択します。• キューを削除するには、テーブル内にあるキューの行の [削除] ボタンを選択します。

8. 関連付けられたクラスターに次の再起動後に変更を適用するには、[再起動するまで動的な変更を延期する] を選択します。

Note

一部の変更では、この設定に関係なくクラスターの再起動が必要となります。詳細については、「WLM の動的プロパティと静的プロパティ (p. 139)」を参照してください。

9. [Save] を選択します。

コンソールを使用してクエリモニタリングルールを作成または変更するAWS マネジメントコンソールを使用して、WLM クエリ管理ルールを作成および変更できます。クエリモニタリングルールは、パラメータグループの WLM 構成パラメータの一部です。詳細については、「WLMクエリモニタリングルール」を参照してください。

ルールを作成する際には、ルール名、述語 (複数可)、アクションを定義します。

ルールの含まれた WLM 構成を保存する際は、WLM 構成パラメータの JSON の一部として、ルール定義の JSON コードを表示できます。

クエリモニタリングルールを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[ワークロード管理] を選択します。3. [パラメータグループ] で、変更するパラメータグループを選択します。

Note

デフォルトのパラメータグループを変更することはできません。4. WLM 設定を編集する (ルールを追加する) には、[編集] を選択します。

151

Amazon Redshift クラスター管理ガイドコンソールを使用してクエリモニタリングルールを作成または変更する

5. 事前定義されたテンプレートを使用して新しいルールを作成するには、[キュー 1 のルール)] グループで [テンプレートからルールを追加] を選択します。[ルールテンプレート] ダイアログは、次のスクリーンショットのように表示されます。

6. 1 つ以上のルールテンプレートを選択します。WLM 選択したテンプレートごとにルールを 1 つ作成します。たとえば、[高い I/O スキューで長時間実行されているクエリ]、[選択] の順に選択します。

新しいルールは、次のスクリーンショットのように 2 つの述語とともに表示されます。

7. [ルール名] を入力します。ルール名は最大で 32 文字の英数字で入力できます。スペースまたは疑問符を含むことはできません。この例では HighIOskew と入力します。

8. オプションで述語を変更します。9. [アクション] を選択します。各ルールにアクションを 1 つ設定します。この例では、[Hop] を選択しま

す。ホップはクエリを終了し、WLM は次に一致するキューにクエリをルーティングします (使用可能な場合)。

10. [Save] を選択します。

152

Amazon Redshift クラスター管理ガイドコンソールを使用してクエリモニタリングルールを作成または変更する

11. キューのルールを変更するには、[編集] を選択します。12. 新しいルールを追加するには、[カスタムルールの追加] を選択します。ルールは 1 つのキューに対し

て最大 5 つ、すべてのキューに対して合計 8 つまで設定できます。13. [ルール名] を入力します (例: NestedLoop)。14. [述語] を定義します。述語名、演算子、値を選択します。この例では、[Nested loop join count

(rows)] を選択します。演算子を超過 (>) のままにし、値に 1000 を入力します。述語を 1 つ持つ新しいルールを次のスクリーンショットに示します。

15. さらに述語を追加するには、述語の右の追加アイコンを選択します。述語は、ルールごとに最大で 3つまで設定できます。述語がすべて満たされると、WLM は関連アクションをトリガーします。

16. [アクション] を選択します。各ルールにアクションを 1 つ設定します。たとえば、デフォルトアクションの Log を承認します。ログアクションは、STL_WLM_RULE_ACTION システムテーブルにレコードを書き込み、クエリがキューで実行されている状態を維持します。

17. [編集の完了] を選択します。キューの詳細が折りたたまれます。18. [Save] を選択します。19. Amazon Redshift は、WLM 構成パラメータを JSON 形式で生成し、JSON を画面下のウィンドウに

表示します (次のスクリーンショットを参照してください)。

153

Amazon Redshift クラスター管理ガイドパラメータグループを削除する

パラメータグループを削除するパラメータグループが必要なくなり、どのクラスターにも関連付けられていない場合は、削除できます。カスタムパラメータグループのみを削除できます。

パラメータグループを削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [Navigation] ペインで、[Parameter Groups] を選択します。3. 削除するパラメータグループの行を選択し、[削除] を選択します。

Note

デフォルトのパラメータグループは削除できません。4. [クラスターパラメータグループの削除] ダイアログボックスで [続行] を選択します。

パラメータグループとクラスターを関連付けるクラスターを起動する場合、パラメータグループに関連付ける必要があります。パラメータグループを後で変更する場合は、クラスターを変更し、別のパラメータグループを選択します。詳細については、「[クラスターの起動] を使用したクラスターの作成 (p. 22)」および「クラスターを変更するには (p. 29)」を参照してください。

AWS SDK for Java を使用したパラメータグループの管理

この例では、パラメータグループに関連する以下のタスクについて説明します。

• パラメータグループを作成する• パラメータグループを変更する• パラメータグループとクラスターを関連付ける• パラメータグループに関する情報を取得する

この例では、新規パラメータグループ parametergroup1 を作成し、以下の更新を実行します。

• パラメータ extra_float_digits を、デフォルト値の 0 から 2 に変更します。• 既存のワークロード管理構成 (wlm_json_configuration パラメータ) を、デフォルトのキューの他

に 1 つのキューを定義する以下の JSON と置き換えます。

154

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したパラメータグループの管理

[ { "user_group":[ "example_user_group1" ], "query_group":[ "example_query_group1" ], "query_concurrency":7 }, { "query_concurrency":5 }]

前述の JSON は、2 つのオブジェクト (各キューにつき 1 つ) の配列です。最初のオブジェクトは、特定のユーザーグループとクエリグループを持つキューを定義します。また、同時実行レベルを 7 に設定しています。

{ "user_group":[ "example_user_group1" ], "query_group":[ "example_query_group1" ], "query_concurrency":7}

この例では WLM 構成を置き換えているため、この JSON 設定では特定のユーザーグループとクエリグループを持たないデフォルトのキューも定義します。同時実行レベルをデフォルト値の 5 に設定します。

{ "query_concurrency":5}

ワークロード管理(WLM)構成についての詳細は、「Implementing workload management」を参照してください。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードを更新し、クラスター識別子を指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

155

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したパラメータグループの管理

// snippet-sourcedescription:[CreateAndModifyClusterParameterGroup demonstrates how to create and modify an Amazon Redshift parameter group.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[CreateClusterParameterGroup]// snippet-keyword:[DescribeClusterParameterGroups]// snippet-keyword:[ModifyClusterParameterGroup]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-02-01]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.CreateAndModifyClusterParameterGroup.complete]

package com.amazonaws.services.redshift;

import java.io.IOException;import java.util.ArrayList;import java.util.List;

import com.amazonaws.services.redshift.model.*;

public class CreateAndModifyClusterParameterGroup {

public static AmazonRedshift client; public static String clusterParameterGroupName = "parametergroup1"; public static String clusterIdentifier = "***provide a cluster identifier***"; public static String parameterGroupFamily = "redshift-1.0";

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient();

try { createClusterParameterGroup(); modifyClusterParameterGroup(); associateParameterGroupWithCluster(); describeClusterParameterGroups(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static void createClusterParameterGroup() { CreateClusterParameterGroupRequest request = new CreateClusterParameterGroupRequest() .withDescription("my cluster parameter group") .withParameterGroupName(clusterParameterGroupName) .withParameterGroupFamily(parameterGroupFamily); client.createClusterParameterGroup(request); System.out.println("Created cluster parameter group."); }

private static void describeClusterParameterGroups() { DescribeClusterParameterGroupsResult result = client.describeClusterParameterGroups(); printResultClusterParameterGroups(result); }

private static void modifyClusterParameterGroup() { List<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter() .withParameterName("extra_float_digits")

156

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したパラメータグループの管理

.withParameterValue("2")); // Replace WLM configuration. The new configuration defines a queue (in addition to the default). parameters.add(new Parameter() .withParameterName("wlm_json_configuration") .withParameterValue("[{\"user_group\":[\"example_user_group1\"],\"query_group\":[\"example_query_group1\"],\"query_concurrency\":7},{\"query_concurrency\":5}]"));

ModifyClusterParameterGroupRequest request = new ModifyClusterParameterGroupRequest() .withParameterGroupName(clusterParameterGroupName) .withParameters(parameters); client.modifyClusterParameterGroup(request);

}

private static void associateParameterGroupWithCluster() {

ModifyClusterRequest request = new ModifyClusterRequest() .withClusterIdentifier(clusterIdentifier) .withClusterParameterGroupName(clusterParameterGroupName);

Cluster result = client.modifyCluster(request);

System.out.format("Parameter Group %s is used for Cluster %s\n", clusterParameterGroupName, result.getClusterParameterGroups().get(0).getParameterGroupName()); } private static void printResultClusterParameterGroups(DescribeClusterParameterGroupsResult result) { if (result == null) { System.out.println("\nDescribe cluster parameter groups result is null."); return; }

System.out.println("\nPrinting parameter group results:\n"); for (ClusterParameterGroup group : result.getParameterGroups()) { System.out.format("\nDescription: %s\n", group.getDescription()); System.out.format("Group Family Name: %s\n", group.getParameterGroupFamily()); System.out.format("Group Name: %s\n", group.getParameterGroupName()); describeClusterParameters(group.getParameterGroupName()); } }

private static void describeClusterParameters(String parameterGroupName) { DescribeClusterParametersRequest request = new DescribeClusterParametersRequest() .withParameterGroupName(parameterGroupName);

DescribeClusterParametersResult result = client.describeClusterParameters(request); printResultClusterParameters(result, parameterGroupName); }

private static void printResultClusterParameters(DescribeClusterParametersResult result, String parameterGroupName) { if (result == null) { System.out.println("\nCluster parameters is null."); return; }

System.out.format("\nPrinting cluster parameters for \"%s\"\n", parameterGroupName); for (Parameter parameter : result.getParameters()) {

157

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI および API を使用したパラメータグループの管理

System.out.println(" Name: " + parameter.getParameterName() + ", Value: " + parameter.getParameterValue()); System.out.println(" DataType: " + parameter.getDataType() + ", MinEngineVersion: " + parameter.getMinimumEngineVersion()); System.out.println(" AllowedValues: " + parameter.getAllowedValues() + ", Source: " + parameter.getSource()); System.out.println(" IsModifiable: " + parameter.getIsModifiable() + ", Description: " + parameter.getDescription()); } }}

// snippet-end:[redshift.java.CreateAndModifyClusterParameterGroup.complete]

Amazon Redshift CLI および API を使用したパラメータグループの管理

次の Amazon Redshift CLI 操作を使用してパラメータグループを管理することができます。

• create-cluster-parameter-group• delete-cluster-parameter-group• describe-cluster-parameters• describe-cluster-parameter-groups• describe-default-cluster-parameters• modify-cluster-parameter-group• reset-cluster-parameter-group

次の Amazon Redshift API オペレーションを使用してパラメータグループを管理できます。

• CreateClusterParameterGroup• DeleteClusterParameterGroup• DescribeClusterParameters• DescribeClusterParameterGroups• DescribeDefaultClusterParameters• ModifyClusterParameterGroup• ResetClusterParameterGroup

158

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift スナップショットトピック

• 概要 (p. 159)• 自動スナップショット (p. 160)• 自動スナップショットのスケジュール (p. 160)• スナップショットスケジュール形式 (p. 160)• 手動スナップショット (p. 162)• スナップショットストレージの管理 (p. 162)• スナップショットのテーブルを除く (p. 162)• 別のリージョンにスナップショットをコピーする (p. 163)• スナップショットからのクラスターの復元 (p. 163)• スナップショットからのテーブルの復元 (p. 164)• スナップショットの共有 (p. 166)• コンソールを使用したスナップショットの管理 (p. 168)• AWS SDK for Java を使用したスナップショットの管理 (p. 180)• Amazon Redshift CLI および API を使用したスナップショットの管理 (p. 182)

概要スナップショットはクラスターのポイントインタイムバックアップです。スナップショットには、自動と手動の 2 つのタイプがあります。Amazon Redshift は、暗号化された Secure Sockets Layer (SSL) 接続を使用して、これらのスナップショットを Amazon S3 の内部に保存できます。

Amazon Redshift は、前回のスナップショット以降にクラスターに加えられた増分変更を追跡する、増分スナップショットを自動的に作成します。自動スナップショットは、スナップショットからクラスターを復元するために必要なすべてのデータを保持します。自動スナップショットをいつ作成するかを制御するためにスナップショットスケジュールを作成できます。また、いつでも手動スナップショットを作成することもできます。

スナップショットから復元すると、Amazon Redshift は新しいクラスターを作成し、すべてのデータをロードする前に新しいクラスターを使用できるようにするので、すぐに新しいクラスターのクエリを開始できます。クラスターは、アクティブなクエリに応じてスナップショットからデータをオンデマンドでストリーミングし、次に残りのデータをバックグラウンドでロードします。

クラスターを起動するとき、自動スナップショットと手動スナップショットの保持期間を設定できます。クラスターを変更して、自動スナップショットと手動スナップショットの保持期間を変更できます。スナップショットを作成するか、スナップショットを変更して、手動スナップショット保持期間を変更できます。

スナップショットの進行状況は、AWS マネジメントコンソール でスナップショットの詳細を表示するか、CLI または DescribeClusterSnapshots API アクションで describe-cluster-snapshots を呼び出すことによってモニタリングすることができます。これにより、進行中のスナップショットについて、差分スナップショットのサイズ、転送速度、経過時間、および推定残り時間などの情報が表示されます。

バックアップを常にクラスタで使用できるようにするために、Amazon Redshift は、Amazon Redshift の管理対象の内部管理 Amazon S3 バケットにスナップショットを保存します。Amazon Redshift は、クラス

159

Amazon Redshift クラスター管理ガイド自動スナップショット

ターを削除するまで、クラスターのストレージ容量に等しいスナップショット用の空きストレージを提供します。無料スナップショットストレージ制限に達した場合、追加のストレージには通常料金が請求されます。このため、スナップショットを保持する必要がある日数を評価し、それに応じて保持期間を設定して、不要になった手動スナップショットは削除してください。料金表については、Amazon Redshift の製品詳細ページを参照してください。

自動スナップショット自動スナップショットがクラスターに対して有効になると、Amazon Redshift は定期的にそのクラスターのスナップショットが作成されます。デフォルトでは、Amazon Redshift は約 8 時間ごと、または 1 ノードのデータが変更されるごとに 5 GB ごと (あるいはそのいずれか早い方) にスナップショットを作成します。または、自動スナップショットを作成するタイミングを制御するためにスナップショットスケジュールを作成することができます。自動スナップショットは、クラスターを作成するときデフォルトで有効になります。

自動スナップショットは、保持期間の終了時に削除されます。デフォルトの保持期間は 1 日ですが、Amazon Redshift コンソールを使用するか、Amazon Redshift API または CLI を使用してプログラムにより変更できます。

自動スナップショットを無効にするには、保持期間を 0 に設定します。自動スナップショットを無効にした場合、Amazon Redshift はスナップショットの取得を停止し、クラスターの既存の自動スナップショットを削除します。

Amazon Redshift だけが自動スナップショットを削除できます。手動で削除することはできません。自動スナップショットは、保存期間が終了した場合、クラスターの自動スナップショットを無効にした場合、またはクラスターを削除した場合に、Amazon Redshift によって削除されます。自動スナップショットを無効にするかクラスタを削除するまで、Amazon Redshift は最新の自動スナップショットを保持します。

自動スナップショットをもっと長い期間保持する場合は、そのコピーを手動スナップショットとして作成します。自動スナップショットは、保持期間が終わるまで保持されますが、対応する手動スナップショットは手動で削除するまで、または保持期間が終わるまで保持されます。

自動スナップショットのスケジュールスナップショットを作成するタイミングを正確に制御するために、スナップショットスケジュールを作成し、それを 1 つ以上のクラスターにアタッチすることができます。スナップショットスケジュールを変更すると、関連付けられているすべてのクラスターのスケジュールが変更されます。クラスターにスナップショットスケジュールがアタッチされていない場合、クラスターはデフォルトの自動スナップショットスケジュールを使用します。

スナップショットスケジュール は、一連のスケジュールルールです。指定した間隔 (8 時間ごと、12 時間ごとなど) に基づいてシンプルなスケジュールルールを定義できます。特定の曜日、特定の時間、特定の期間にスナップショットを作成するためのルールを追加することもできます。ルールは Unix 互換の cron式を使って定義することもできます。

スナップショットスケジュール形式Amazon Redshift コンソールで、スナップショットスケジュールを作成できます。その後、スケジュールをクラスターにアタッチしてシステムスナップショットの作成をトリガーできます。スケジュールは複数のクラスターにアタッチでき、スナップショットをトリガーするためにスケジュール内に複数の cron 定義を作成できます。

160

Amazon Redshift クラスター管理ガイドスナップショットスケジュール形式

cron 構文を使用してスナップショットのスケジュールを定義できます。これらのスケジュールの定義は、変更された Unix 互換の cron 構文を使用します。協定世界時 (UTC) で時間を指定します。最大頻度 1 時間、最小精度 1 分のスケジュールを作成できます。

Amazon Redshift の変更された cron 式には 3 つの必須フィールドがあり、それらは空白で区切られます。

[構文]

cron(Minutes Hours Day-of-week)

フィールド [値] [ワイルドカード]

分 0–59

時間 0–23 , - * /

曜日 1~7 または SUN-SAT , - * /

ワイルドカード

• ワイルドカード [,] (カンマ) には追加の値が含まれます。Day-of-week フィールドの、MON,WED,FRIは、月曜日、水曜日、金曜日を含みます。合計値はフィールドあたり 24 に制限されています。

• ワイルドカード [-] (ダッシュ) は範囲を指定します。Hour フィールドの、1~15 は、指定した日の 1 時間から 15 時間を含みます。

• ワイルドカード [*] (アスタリスク) にはフィールドのすべての値が含まれます。Hours フィールドの、*にはすべての時間が含まれています。

• ワイルドカード [/] (スラッシュ) で増分を指定します。Hours フィールドで、1/10 と入力して、その日の最初の時間から始めて、10 時間毎を指定できます (01:00、11:00、21:00 など)。

制限

• バックアップ頻度が 1 時間未満または 24 時間を超えるスナップショットスケジュールはサポートされていません。1 時間以内にスナップショットをスケジュールする結果になる重複したスケジュールがある場合、検証エラーが発生します。

スケジュールを作成するときは、以下のサンプルの cron 文字列を使用できます。

分 時間 曜日 意味

0 14-20/1 火 毎週火曜日の午後 2 時から午後 8 時の間。

0 21 MON-FRI 月曜日~金曜日の毎晩午後 9 時。

30 0/6 土 - 日 土曜日と日曜日は、その日の深夜 30 分過ぎ(00:30) から、6 時間ごとに増分されます。これにより、各日とも[00:30、06:30、12:30、および 18:30] にスナップショットが作成されます。

161

Amazon Redshift クラスター管理ガイド手動スナップショット

分 時間 曜日 意味

30 12/4 * 毎日 12:30 から 4時間ごとに増分します。これにより[12:30、16:30、20:30]となります。

たとえば、毎日 15:15 から 2 時間ごとの増分のスケジュールに従って実行するとします。これにより[15:15、17:15、19:15、21:15、23:15] となりますが、次のように指定します。

cron(15 15/2 *)

スケジュールとして複数の cron スケジュール定義を作成できます。たとえば、次の AWS CLI コマンドでは、1 つのスケジュールに 2 つの cron スケジュールが含まれています。

create-snapshot-schedule --schedule-identifier "my-test" --schedule-definition "cron(0 17 SAT,SUN)" "cron(0 9,17 MON-FRI)"

手動スナップショット手動スナップショットはいつでも取得できます。デフォルトでは、手動スナップショットは、クラスターを削除した後も、無限に保持されます。手動スナップショットを作成するときに保持期間を指定できます。スナップショットを変更して保持期間を変更することもできます。Amazon Redshift コンソールを使用してスナップショットを作成した場合、スナップショットの保存期間はデフォルトで 365 日になります。

スナップショットを削除した場合、そのスナップショットを参照する新しいオペレーションを開始することはできません。ただし、復元操作が進行中である場合、その復元操作は完了するまで実行されます。

Amazon Redshift には、作成できる手動スナップショットの合計数を制限するクォータがあります。このクォータは AWS アカウントごと、リージョンごとにあります。デフォルトクォータは「AWS サービスの制限」に示されています。

スナップショットストレージの管理スナップショットにはストレージ料金が発生するため、不要になったら削除することが重要です。Amazon Redshift は、それぞれのスナップショット保存期間の終わりに自動および手動スナップショットを削除します。AWS マネジメントコンソールまたは batch-delete-cluster-snapshots CLI コマンドを使用して手動スナップショットを削除することもできます。

手動スナップショット設定を変更して、手動スナップショット保持期間を変更できます。

Amazon Redshift コンソールまたは CLI コマンド describe-storage を使用すると、スナップショットが使用しているストレージ容量に関する情報を取得できます。

スナップショットのテーブルを除くデフォルトでは、スナップショットにすべてのユーザー定義の永続テーブルが含まれます。ステージングテーブルなど、テーブルをバックアップする必要のない場合は、スナップショットの作成やスナップ

162

Amazon Redshift クラスター管理ガイド別のリージョンにスナップショットをコピーする

ショットからの復元にかかる時間を大幅に短縮できます。さらに、バックアップしないテーブルを使用して、Amazon S3 のストレージ領域を節約することができます。バックアップしないテーブルを作成するには、テーブルの作成時に BACKUP NO のパラメータを含めてください。詳細については、『AmazonRedshift Database Developer Guide』の「CREATE TABLE」および「CREATE TABLE AS」を参照してください。

別のリージョンにスナップショットをコピーするクラスターのスナップショット (自動または手動) を自動的に別のリージョンにコピーするように AmazonRedshift を設定できます。スナップショットがクラスターのプライマリリージョンで作成されると、セカンダリリージョンにコピーされます。これらは、それぞれソースリージョンおよびコピー先リージョンと呼ばれます。別のリージョンにスナップショットのコピーは保存することで、プライマリリージョンに影響が及んだ場合に最新のデータからクラスターを復元できるようになります。一度に 1 つのコピー先リージョンにのみスナップショットをコピーするようにクラスターを設定できます。Amazon Redshift リージョンのリストについては、『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエンドポイント」を参照してください。

Amazon Redshift が別のリージョンに自動的にコピーできるようにするには、スナップショットのコピー先リージョンを指定します。自動スナップショットの場合、コピー先リージョンに保持する保持期間も指定できます。自動スナップショットがコピー先リージョンにコピーされ、保有期間に到達すると、スナップショット使用率を低く抑えるため、コピー先リージョンから削除されます。自動スナップショットをコピー先リージョンに短い期間または長い期間保持する必要があるばあいは、この保持期間を変更できます。

コピー先リージョンにコピーされる自動スナップショットに対して設定する期間は、ソースリージョンの自動スナップショットの保存期間とは異なります。コピーされたスナップショットのデフォルトの保持期間は 7 日です。その 7 日間は、自動スナップショットにのみ適用されます。コピー元リージョンおよび送信先リージョンの両方で、手動スナップショットは、スナップショット保存期間の終わりまたは手動で削除すると削除されます。

クラスターの自動スナップショットコピーはいつでも無効にできます。この機能を無効にすると、スナップショットがソースリージョンからコピー先リージョンにコピーされなくなります。コピー先リージョンにコピーされら自動スナップショットは、手動スナップショットコピーを作成しない限り、保持期間の制限に達すると削除されます。これらの手動スナップショットと、コピー先リージョンからコピーされた手動スナップショットは、手動で削除するまでコピー先リージョンに保持されます。

スナップショットをコピーするコピー先リージョンを変更する場合、まずこの自動コピー機能を無効にして再度有効にした後、新しいコピー先リージョンを指定する必要があります。

リージョンをまたがってスナップショットをコピーすると、データ転送料金が発生します。スナップショットがコピー先リージョンにコピーされると、アクティブになり、復元目的で利用できるようになります。

AWS KMS で暗号化されたクラスターのスナップショットを別のリージョンにコピーする場合、コピー先のリージョンで AWS KMS カスタマーマスターキー (CMK) を使用する Amazon Redshift の許可を作成する必要があります。その場合、コピー元リージョンでスナップショットのコピーを有効にするときに、その許可を選択する必要があります。スナップショットコピー許可の設定に関する詳細については、「別のAWS リージョンに AWS KMS 暗号化スナップショットをコピーする (p. 198)」を参照してください。

スナップショットからのクラスターの復元スナップショットには、クラスター上で動作しているデータベースからのデータと、クラスターに関する情報 (ノード数、ノートのタイプ、マスターユーザー名など) が含まれます。スナップショットからクラスターを復元する必要がある場合は、Amazon Redshift でクラスター情報を使用して新しいクラスターを作成し、スナップショットデータからすべてのデータベースを復元します。Amazon Redshift がスナップ

163

Amazon Redshift クラスター管理ガイドスナップショットからのテーブルの復元

ショットから作成した新しいクラスターの設定 (ノード数やノードのタイプなど) は、スナップショットが取得された元のクラスターの設定と同じです。クラスターが復元される場所は、リクエスト時に別のアベイラビリティーゾーンを指定しない限り、同じリージョンおよびアベイラビリティーゾーンとなります。クラスターをスナップショットから復元する場合、新しいクラスターの互換性のあるメンテナンストラックをオプションで選択できます。

DescribeClusters API アクションを呼び出すか、AWS マネジメントコンソールでクラスターの詳細を表示することにより、復元の進行状況をモニタリングできます。これにより、進行中の復元について、スナップショットデータのサイズ、転送速度、経過時間、および推定残り時間などの情報が表示されます。これらのメトリクスの説明については、「RestoreStatus」を参照してください。

スナップショットを使用して、アクティブクラスターを前の状態に切り替えることはできません。Note

新しいクラスターにスナップショットを復元する場合、別の値を指定しない限り、デフォルトのセキュリティグループおよびパラメータグループが使用されます。

スナップショットからのテーブルの復元クラスター全体を復元する代わりに、スナップショットから単一のテーブルを復元できます。スナップショットから単一のテーブルを復元する場合、ソースのスナップショット、データベース、スキーマ、テーブル名、ターゲットクラスター、スキーマ、および復元されるテーブル用の新しいテーブル名を指定します。

新しいテーブル名を、既存のテーブルの名前にすることはできません。既存のテーブルを、スナップショットから復元されるテーブルに置き換えるには、スナップショットからテーブルを復元する前に、既存のテーブルの名前を変更するか、削除します。

ターゲットテーブルは、ソーステーブルの列の定義、テーブル属性、および外部キーを除く列の属性を使って作成されます。依存関係による競合を回避するため、ターゲットテーブルはソーステーブルから外部キーを継承しません。ソーステーブルで付与されたビューやアクセス権限などの依存関係は、ターゲットテーブルに適用されません。

ソーステーブルの所有者が存在するなら、そのユーザーは指定されたデータベースおよびスキーマの関係において所有者となるのに十分なアクセス許可がある場合にのみ、復元されたテーブルの所有者となります。それ以外の場合、復元されたテーブルは、クラスターの起動時に作成したマスターユーザーが所有します。

復元されたテーブルは、バックアップが作成された時の状態に戻されます。これには、Redshift の直列化分離への準拠により定義されるトランザクションの可視性のルールが含まれます。つまり、バックアップ後に開始した実行中のトランザクションにデータがすぐに見えるようになるということです。

スナップショットからのテーブルの復元には、以下の制限があります。

• テーブルは、実行中のアクティブなクラスターのみに復元でき、そのクラスターから作成されたスナップショットのみから復元できます。

• 一度に復元できるのは 1 つのテーブルのみです。• クラスターのサイズを変更する前に作成されたクラスタースナップショットからテーブルを復元するこ

とはできません。

Amazon Redshift コンソールを使用してスナップショットからテーブルを復元するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. [クラスター] を選択し、クラスターを選択します。3. [Table restore (テーブルの復元)] タブを選択します。

164

Amazon Redshift クラスター管理ガイドスナップショットからのテーブルの復元

4. [テーブルの復元] を選択します。5. [Table restore (テーブルの復元)] パネルで、復元元のクラスタースナップショットを含む日付範囲を

選択します。たとえば、先週に作成したクラスタースナップショットの場合は [Last 1 Week] を選択します。

6. 以下の内容を追加します。

• [スナップショットから] – 復元元のテーブルを含むクラスタースナップショットの識別子。• [Source table to restore from (復元元のソーステーブル)]

• [データベース] – 復元元のテーブルを含むクラスタースナップショットからのデータベースの名前。

• [スキーマ] – 復元元のテーブルを含むクラスタースナップショットからのデータベーススキーマの名前。

• [テーブル] – クラスタースナップショットの復元元のテーブルの名前。• [復元先のターゲットテーブル]

• [データベース] – テーブルの復元先となるターゲットクラスターのデータベースの名前。• [スキーマ] – テーブルの復元先となるターゲットクラスターのデータベーススキーマの名前。• [新しいテーブル名] – 復元されるテーブルの新しい名前。この名前をターゲットデータベースの既

存のテーブルの名前とすることはできません。

7. [復元] を選択してテーブルを復元します。

165

Amazon Redshift クラスター管理ガイドスナップショットの共有

クラスタースナップショットから少なくとも 1 つのテーブルを復元した場合、前のテーブル復元リクエストの値を、新しいテーブル復元リクエストにコピーできます。この方法を使用すれば、いくつかのテーブル復元オペレーションで同じになる値を再入力する必要がありません。

前のテーブル復元リクエストから新しいテーブル復元オペレーションにコピーするには:

1. [Table restore (テーブルの復元)] タブで、既存のテーブルの復元ステータスを選択します。

2. [復元リクエストのコピー] を選択します。

Example 例: AWS CLI を使用してスナップショットからテーブルを復元する

次の例では、restore-table-from-cluster-snapshot AWS CLI コマンドを使用して、my-source-table の sample-database スキーマから my-snapshot-id テーブルを復元します。例では、新しいテーブルの名前 mycluster-example を使用して、my-new-table クラスターにスナップショットを復元します。

aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example --new-table-name my-new-table --snapshot-identifier my-snapshot-id --source-database-name sample-database --source-table-name my-source-table

スナップショットの共有1 つの既存の手動スナップショットについては、そのスナップショットへのアクセスを許可することにより、他の AWS 顧客アカウントのユーザーと共有することができます。各スナップショットは最大 20個、各 AWS Key Management Service (AWS KMS) キーは最大 100 個まで許可できます。つまり、1 つのKMS キーで暗号化された 10 個のスナップショットがある場合、10 個の AWS アカウントで、各スナップショットを復元することを許可できます。または、最大 100 個のアカウントのその他の組み合わせや、スナップショットごとに 20 アカウントを超えないその他の組み合わせを許可できます。アクセス権限が付与されたいずれかのアカウントのユーザーとしてログインされた担当者は、スナップショットを表示することも、当該アカウントでスナップショットを復元して新しい Amazon Redshift クラスターを作成することもできます。例えば、実稼働用およびテスト用に個別の AWS 顧客アカウントを使用する場合、ユーザーは本番用アカウントを使用してログオンし、テスト用アカウントのユーザーとスナップショットを共有することができます。テスト用アカウントのユーザーとしてログオンされた担当者は、テストまたは診断作業のためのテスト用アカウントによって所有される新しいクラスターを作成するためにスナップショットを復元することができます。

手動スナップショットは、それが作成された AWS 顧客アカウントによって永続的に所有されます。スナップショットを所有するアカウントのユーザーのみが、スナップショットへのアクセスを他のアカウントに許可したり、アクセス許可を取り消したりすることができます。アクセス権限が付与されたアカウントのユーザーは、そのアカウントと共有されているスナップショットの表示または復元が行えるだけ

166

Amazon Redshift クラスター管理ガイドスナップショットの共有

で、共有されているスナップショットのコピーや削除を行うことはできません。アクセス許可はスナップショットの所有者がそれを取り消すまで有効です。アクセス許可が取り消されると、前にアクセス権限を付与されたユーザーはスナップショットの可視性を失い、スナップショットを参照する新しいアクションを起動できなくなります。アクセス権限が取り消される際、アカウントがスナップショットを復元するプロセスの途中にあった場合、復元は完了するまで実行されます。スナップショットにアクティブ認可がある限り、そのスナップショットを削除することはできません。まず、すべてのアクセス許可を取り消す必要があります。

AWS 顧客アカウントには、該当するアカウントによって所有されるスナップショットへのアクセスが常に許可されます。所有者アカウントへのアクセスを許可する試みまたは取り消す試みを行うと、エラーが発生します。非アクティブ AWS 顧客アカウントによって所有されているスナップショットを復元または表示することはできません。

AWS 顧客アカウントへのアクセスを許可した場合、そのアカウントの IAM ユーザーはスナップショットでのアクションの実行を許可する IAM ポリシーを持っていない限り、そのようなアクションを実行できません。

• スナップショット所有者アカウントの IAM ユーザーがスナップショットへのアクセスを許可および取り消しできるのは、それらのユーザーが、当該スナップショットが含まれるリソース仕様を使用してそうしたアクションを実行することを許可してくれる IAM ポリシーを持っている場合に限られます。たとえば、以下のポリシーを持っていれば、AWS アカウント 012345678912 のユーザーは、my-snapshot20130829 という名前のスナップショットへのアクセスを他のアカウントに許可することができます。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:AuthorizeSnapshotAccess", "redshift:RevokeSnapshotAccess" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829" ] } ]}

• スナップショットが共有されている AWS AWS アカウントの IAM ユーザーは、それらのアクションを許可する IAM ポリシーがない限り、そのスナップショットでアクションを実行できません。• スナップショットを一覧表示するか、または表示するためには、前述ユーザーはDescribeClusterSnapshots アクションを許可する IAM ポリシーを持っている必要があります。コードの例を以下に示します。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusterSnapshots" ], "Resource":[ "*" ] } ]}

167

Amazon Redshift クラスター管理ガイドコンソールを使用したスナップショットの管理

• スナップショットを復元するには、ユーザーは、RestoreFromClusterSnapshot アクションを許可すると共に、ユーザーが作成しようとしているクラスターとスナップショットを両方ともカバーしたリソースエレメントを含んでいる IAM ポリシーを持っている必要があります。たとえば、アカウント 012345678912 のユーザーがスナップショット my-snapshot20130829 をアカウント219876543210 と共有している場合、スナップショットを復元してクラスターを作成するには、アカウント 219876543210 のユーザーが次のようなポリシーを持っている必要があります。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:RestoreFromClusterSnapshot" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829", "arn:aws:redshift:us-east-1:219876543210:cluster:from-another-account" ] } ]}

• スナップショットへのアクセスが AWS アカウントによって取り消されると、そのアカウントのユーザーは、前に共有していたスナップショットリソースでのアクションを許可する IAM ポリシーを持っていたとしても、スナップショットにアクセスできなくなります。

コンソールを使用したスナップショットの管理トピック

• スナップショットスケジュールの作成 (p. 169)• 手動スナップショットの作成 (p. 170)• 手動スナップショット保持期間の変更 (p. 171)• 手動スナップショットの削除 (p. 173)• 自動スナップショットのコピー (p. 174)• スナップショットからのクラスターの復元 (p. 175)• クラスターのスナップショットの共有 (p. 177)• 暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定する (p. 178)• AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定 (p. 178)• クロスリージョンスナップショットのコピーの保持期間を修正する (p. 179)• クロスリージョンスナップショットのコピーを無効にする (p. 179)

Amazon Redshift は、データの自動的な増分スナップショットを定期的に取得し、Amazon S3 に保存します。さらに、いつでも好きなときにデータの手動スナップショットを取得することもできます。このセクションでは、Amazon Redshift コンソールからスナップショットを管理する方法について説明します。スナップショットの詳細については、Amazon Redshift スナップショット (p. 159) を参照してください。

Amazon Redshift コンソールでのスナップショットタスクはすべてスナップショットリストから開始します。時間範囲、スナップショットのタイプ、およびスナップショットに関連付けられたクラスターを使用して、リストをフィルタリングすることができます。さらに、日付、サイズ、スナップショットのタイプでリストを並べ替えることができます。既存のスナップショットを選択すると、以下の例に示すように、スナップショットの詳細がリスト内にインライン形式で表示されます。スナップショットを操作する場合に使用できるオプションは、選択するスナップショットのタイプに応じて異なります。

168

Amazon Redshift クラスター管理ガイドスナップショットスケジュールの作成

スナップショットスケジュールの作成スナップショットを作成するタイミングを正確に制御するために、スナップショットスケジュールを作成し、それを 1 つ以上のクラスターにアタッチすることができます。クラスターを作成するとき、またはクラスターを変更することによってスケジュールをアタッチできます。詳細については、「自動スナップショットのスケジュール (p. 160)」を参照してください。

スナップショットスケジュールを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. [Snapshot Schedules (スナップショットスケジュール)] を選択します。4. [Add Schedule (スケジュールの追加)] を選択します。5. [When do you want to take automated snapshots? (いつ自動スナップショットを作成しますか?)] で

[Configure custom automated snapshot rules (カスタム自動スナップショットルールの設定)] を選択して、1 つ以上のルールを追加します。または、[Take a snapshot every 8 hours (8 時間ごとにスナップショットを作成)] を選択して、時間数を指定します。

6. [Select a snapshot rule to add (追加するスナップショットルールの選択)] を選択して、ドロップダウンリストからルールのテンプレートを選択します。複数のルールを追加できます。

7. テンプレートのフィールドを変更して、スケジュールをカスタマイズします。

169

Amazon Redshift クラスター管理ガイド手動スナップショットの作成

8. スケジュールを表示して、[Preview schedule for all rules (すべてのルールのスケジュールのプレビュー)] を選択します。

9. [Add Schedule (スケジュールの追加)] を選択します。

手動スナップショットの作成クラスターの手動スナップショットは、以下に示すスナップショットリストから作成できます。あるいは、クラスター設定ペインでクラスターのスナップショットを取得することもできます。詳細については、「クラスターのスナップショットの作成 (p. 36)」を参照してください。

手動スナップショットを作成する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. [スナップショットの作成] を選択します。4. [スナップショットの作成] ダイアログボックスで、次の操作を行います。

a. [クラスター識別子] ボックスで、スナップショットを作成するクラスターを選択します。b. [スナップショット識別子] ボックスに、スナップショットの名前を入力します。c. [Snapshot retention period (スナップショット保持期間)] で、スナップショットを保持する日数を

入力します。スナップショットを無期限に保持するには、-1 を入力します。

170

Amazon Redshift クラスター管理ガイド手動スナップショット保持期間の変更

5. [Create] を選択します。

スナップショットの作成が完了するまで時間がかかる場合があります。新しいスナップショットとその現在の状態がスナップショットのリストに表示されます。以下の例は、snapshot-example が作成過程にあることを示しています。

手動スナップショット保持期間の変更スナップショット設定を変更して、手動スナップショット保持期間を変更できます。

171

Amazon Redshift クラスター管理ガイド手動スナップショット保持期間の変更

手動スナップショット保持期間を変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。

3. コピーするスナップショットを見つけるためにリストをフィルタリングするには、以下に示す操作のいずれか、またはすべてを実行します。

• [時間範囲] ボックスで、検索範囲を絞るための時間範囲を選択します。• [タイプ] ボックスの [手動] を選択します。• [クラスター] ボックスで、単一のクラスターのスナップショットを一覧表示するにはクラスター名

を選択し、すべてのクラスターのスナップショットを一覧表示するには [すべてのクラスター] を選択します。

• [並べ替え] フィールドで、リストの並べ方を選択します。4. スナップショットリストで、変更するスナップショットを選択します。5. [Manual Snapshot Settings (手動スナップショット設定)] を選択します。

6. [Snapshot retention period (スナップショット保持期間)] で、スナップショットを保持する日数を入力します。スナップショットを無期限に保持するには、-1 を入力します。

172

Amazon Redshift クラスター管理ガイド手動スナップショットの削除

7. [Save] を選択します。

手動スナップショットの削除スナップショットリストで 1 つ以上のスナップショットを選択して手動スナップショットを削除できます。

手動スナップショットを削除する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. リストをフィルタリングするには、以下のいずれかまたはすべてを実行します。

• [時間範囲] ボックスで、検索範囲を絞るための時間範囲を選択します。• [タイプ] ボックスの [手動] を選択します。• [クラスター] ボックスで、単一のクラスターのスナップショットを一覧表示するにはクラスター名

を選択し、すべてのクラスターのスナップショットを一覧表示するには [すべてのクラスター] を選択します。

• [並べ替え] フィールドで、リストの並べ方を選択します。4. スナップショットリストで、削除するスナップショットが含まれている行を選択します。5. [手動スナップショットの削除] を選択します。

6. [手動スナップショットの削除] ダイアログボックスの [削除] を選択します。

173

Amazon Redshift クラスター管理ガイド自動スナップショットのコピー

自動スナップショットのコピー自動スナップショットを無効にした場合、またはクラスターを削除した場合、自動スナップショットはその保持期間が過ぎると自動的に削除されます。自動スナップショットをもっと長い期間保持したい場合は、それを手動スナップショットにコピーします。

自動スナップショットをコピーする方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. リストをフィルタリングするには、以下のいずれかまたはすべてを実行します。

• [時間範囲] ボックスで、検索範囲を絞るための時間範囲を選択します。• [タイプ] ボックスの [自動] を選択します。• [クラスター] ボックスで、単一のクラスターのスナップショットを一覧表示するにはクラスター名

を選択し、すべてのクラスターのスナップショットを一覧表示するには [すべてのクラスター] を選択します。

• [並べ替え] フィールドで、リストの並べ方を選択します。4. スナップショットリストで、コピーするスナップショットを選択します。5. [自動スナップショットのコピー] を選択します。6. [自動スナップショットのコピー] ダイアログボックスの [スナップショット識別子] ボックスにスナッ

プショットのコピーの名前を入力します。7. [Snapshot retention period (スナップショット保持期間)] で、スナップショットを保持する日数を入力

します。スナップショットを無期限に保持するには、-1 を入力します。

8. [Continue] を選択します。

174

Amazon Redshift クラスター管理ガイドスナップショットからのクラスターの復元

スナップショットからのクラスターの復元クラスターをスナップショットから復元する場合は、Amazon Redshift によって新しいクラスターが作成され、その新しいクラスターにスナップショットのすべてのデータが含められます。

Note

以下の手順を使用して、クラスタープラットフォームを EC2-Classic から EC2-VPC に変更できます。逆についても同様です。

スナップショットからクラスターを復元する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. リストをフィルタリングするには、以下のいずれかまたはすべてを実行します。

• [時間範囲] ボックスで、検索範囲を絞るための時間範囲を選択します。• [タイプ] ボックスの [手動] または [自動] を選択します。• [クラスター] ボックスで、単一のクラスターのスナップショットを一覧表示するにはクラスター名

を選択し、すべてのクラスターのスナップショットを一覧表示するには [すべてのクラスター] を選択します。

• [並べ替え] フィールドで、リストの並べ方を選択します。4. スナップショットリストで、使用するスナップショットが含まれている行を選択します。5. [スナップショットからの復元] を選択します。

6. [Restore Cluster from Snapshot (スナップショットからのクラスターの復元)] ダイアログボックスで、以下の操作を行います。

a. [クラスター識別子] ボックスに、復元するクラスターのクラスター識別子を入力します。

クラスター識別子は、次の条件を満たしている必要があります。

• 1~255 文字の英数字またはハイフンを使用する必要があります。• 英字は小文字を使用する必要があります。• 1 字目は文字である必要があります。• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。• AWS アカウントのすべてのクラスター間で一意である必要があります。

b. [ポート] ボックスでは、スナップショットからのポートをそのまま使用するか、またはその値を適宜変更します。

c. 必要に応じて [バージョンアップグレードの許可] を選択します。d. [クラスターサブネットグループ] で、クラスターを復元するサブネットグループを選択します。

175

Amazon Redshift クラスター管理ガイドスナップショットからのクラスターの復元

このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示されます。

e. [パブリックアクセス可能] で、インターネットに対するパブリック接続を通じてアクセスできるパブリック IP アドレスをクラスターに指定する場合は [はい] を選択し、VPC 内からのみアクセスできるプライベート IP アドレスをクラスターに指定する場合は [いいえ] を選択します。AWSアカウントで EC2-Classic クラスターを作成できる場合、デフォルトは [いいえ] になります。それ以外の場合は、デフォルトは [はい] です。

このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示されます。

f. 既に設定した Elastic IP (EIP) アドレスを選択する場合は、[Choose a Public IP Address (パブリック IP アドレスの選択)] で、[はい] を選択します。それ以外の場合、Amazon Redshift にインスタンス の EIP を作成させるために、[いいえ] を選択します。

このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示されます。

g. [Elastic IP] で、VPC の外からクラスターに接続するために使用する EIP を選択します。

このオプションは、EC2-VPC プラットフォームにクラスターを復元するために、[Choose aPublic IP Address (パブリック IP アドレスの選択)] で [はい] を選択した場合にのみ表示されます。

h. [アベイラビリティーゾーン] ボックスでは、スナップショットからのアベイラビリティーゾーンをそのまま使用するか、その値を適宜変更します。

i. [クラスターパラメータグループ] で、クラスターに関連付けるパラメータグループを選択します。

j. [クラスターセキュリティグループ] または [VPC セキュリティグループ] で、クラスターに関連付けるセキュリティグループを選択します。ここに表示されるセキュリティグループのタイプは、クラスターを EC2-VPC または EC2-Classic プラットフォームのどちらに復元するかによって異なります。

クラスターセキュリティグループまたは VPC セキュリティグループを選択するオプションは、クラスターを EC2-VPC プラットフォームまたは EC2-Classic プラットフォームのどちらに復元するかによって異なります。

k. [メンテナンストラック] には、メンテナンストラックの値が表示されます。[メンテナンストラックの変更] で、リストされたメンテナンストラックのいずれかを使用してクラスターを復元することを必要に応じて選択します。

以下に、EC2-VPC プラットフォームを使用してクラスターにスナップショットを復元する例を示します。

以下に、EC2-Classic プラットフォームを使用してクラスターにスナップショットを復元する例を示します。

176

Amazon Redshift クラスター管理ガイドクラスターのスナップショットの共有

7. [復元] を選択します。

クラスターのスナップショットの共有自分が所有する手動スナップショットへのアクセスを他のユーザーに許可することができます。そのアクセス許可については後で不要になった場合に取り消すことができます。

クラスターのスナップショットを共有する方法

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[Snapshots] を選択します。3. 共有するスナップショットを見つけるためにリストをフィルタリングする必要がある場合は、以下に

示す操作のいずれか、またはすべてを実行します。

• [時間範囲] ボックスで、検索範囲を絞るための時間範囲を選択します。• [クラスター] ボックスで、共有するスナップショットが関連付けられているクラスターを選択しま

す。4. スナップショットリストで、使用するスナップショットが含まれている行を選択します。5. [アクセスの管理] を選択します。6. [スナップショットアクセスの管理] ダイアログボックスで、スナップショットにアクセスする権限を

ユーザーに与えることも、前に与えたアクセス権限を取り消すこともできます。

• スナップショットにアクセスする権限をユーザーに与えるには、対象ユーザーの 12 桁の AWS アカウント ID (ダッシュを除く) をボックスに入力し、[アカウントの追加] を選択します。

• ユーザーの認可を取り消すには、ユーザーの AWS アカウント ID の横にある [X] を選択します。

177

Amazon Redshift クラスター管理ガイド暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定する

7. [保存] を選択して変更内容を保存するか、[キャンセル] を選択して変更内容を元に戻します。

暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定するクラスターのスナップショットを別のリージョンにコピーするように Amazon Redshift を設定できます。クロスリージョンスナップショットのコピーを設定するには、各クラスターでこのコピー機能を有効にし、スナップショットをコピーする場所と、コピーされた自動スナップショットをコピー先リージョンに保持する期間を設定する必要があります。クロスリージョンコピーがクラスターで有効になると、すべての新しい手動および自動スナップショットが指定されたリージョンにコピーされます。コピーされたスナップショットには copy: というプレフィックスが付きます。

暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. [バックアップ] を選択し、[クロスリージョンスナップショットの設定] を選択します。4. [クロスリージョンスナップショットの設定] ダイアログボックスの [スナップショットのコピー] で [は

い] を選択します。5. [送信先リージョン] で、スナップショットをコピーするリージョンを選択します。6. [保持期間 (日数)] で、自動スナップショットが削除される前にコピー先のリージョンに保持される日

数を選択します。7. [Save] を選択します。

AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定Amazon Redshift クラスターを起動するとき、AWS Key Management Service (AWS KMS) のマスターキーを使用して暗号化するように選択できます。AWS KMS キーはリージョンに固有です。AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを有効化するには、コピー先のリージョンでマスターキーのスナップショットコピー権限を設定し、コピー先のリージョンで Amazon Redshift が暗号化オペレーションを実行できるようにする必要があります。次の手順は、AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを有効化するプロセスを示しています。Amazon Redshift およびスナップショットコピー権限での暗号化の詳細については、「別の AWS リージョンに AWS KMS 暗号化スナップショットをコピーする (p. 198)」を参照してください。

AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを設定するには

1. https://console.aws.amazon.com/redshift/ にある Amazon Redshift コンソールを開きます。2. ナビゲーションペインで [Clusters] を選択します。3. クラスターリストで、クラスターの [設定] ビューを開くクラスター名を選択します。

178

Amazon Redshift クラスター管理ガイドクロスリージョンスナップショットのコピーの保持期間を修正する

4. [バックアップ] を選択し、[クロスリージョンスナップショットの設定] を選択します。5. [クロスリージョンスナップショットの設定] ダイアログボックスの [スナップショットのコピー] で [は

い] を選択します。6. [送信先リージョン] で、スナップショットをコピーするリージョンを選択します。7. [保持期間 (日数)] で、自動スナップショットが削除される前にコピー先のリージョンに保持される日

数を選択します。8. [既存のスナップショットコピー権限] では、次のいずれかを実行します。

a. [いいえ] を選択し、新しいスナップショットコピー権限を作成します。[KMS キー] では、権限を作成する AWS KMS キーを選択した後、[スナップショットコピー権限名] に名前を入力します。

b. [はい] を選択し、コピー先のリージョンから既存のスナップショットコピー権限を選択します。その後、[スナップショットコピー権限] から権限を選択します。

9. [Save] を選択します。

クロスリージョンスナップショットのコピーの保持期間を修正するクロスリージョンスナップショットのコピーを設定するときは、設定を変更できます。新しい日数を選択し、変更を保存することにより、保持期間を簡単に変更できます。

Warning

クロスリージョンスナップショットのコピーが設定されると、コピー先リージョンを変更することはできません。別のリージョンにスナップショットをコピーする場合、まずクロスリージョンスナップショットのコピーを無効にしてから、新しいコピー先リージョンおよび保持期間で再度有効にします。クロスリージョンスナップショットのコピーを無効にするとコピーされた自動スナップショットが削除されるため、クロスリージョンスナップショットのコピーを無効にする前に、保持するスナップショットがあるかどうかを決定し、それらを手動スナップショットにコピーしてください。

コピー先クラスターにコピーされたスナップショットの保持期間を変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. [バックアップ] を選択し、[クロスリージョンスナップショットの設定] を選択します。4. [保持期間] ボックスで、コピー先リージョンに自動スナップショットを保持する新しい日数を選択し

ます。

コピー先リージョンにスナップショットを保持する日数として短い日数を選択した場合、新しい保持期間より前に作成された自動スナップショットはすべて削除されます。コピー先リージョンでスナップショットを保持する日数として長い日数を選択した場合、古い値と新しい値の差分だけ既存の自動スナップショットの保持期間が延長されます。

5. [設定の保存] を選択します。

クロスリージョンスナップショットのコピーを無効にするAmazon Redshift が今後はコピー先リージョンにスナップショットをコピーしないようにする場合は、クラスターのクロスリージョンスナップショットを無効にできます。

179

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したスナップショットの管理

クラスターのクロスリージョンスナップショットを無効にするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. [バックアップ] を選択し、[クロスリージョンスナップショットの設定] を選択して [クロスリージョン

スナップショットの設定] ダイアログボックスを開きます。4. [Enable Cross Region Snapshots (クロスリージョンスナップショットの有効化)] ボックスで、[いい

え] を選択します。5. [設定の保存] を選択します。

AWS SDK for Java を使用したスナップショットの管理

以下の例では、スナップショットに関係する一般的な操作を示します。

• クラスターの手動クラスタースナップショットの作成.• クラスターのすべてのスナップショットに関する情報の表示.• クラスターの手動スナップショットの削除.

この例では、クラスターのスナップショットが開始されます。スナップショットが正常に作成されると、新しいスナップショットよりも前に作成されていた、クラスターの手動スナップショットがすべて削除されます。手動スナップショットの作成が開始されても、スナップショットはすぐに使用可能になりません。したがって、この例では、describeClusterSnapshot メソッドを呼び出すことで、ループを使用してスナップショットのステータスをポーリングします。開始後スナップショットが使用できるようになるまでに通常は数分かかります。スナップショットの詳細については、Amazon Redshift スナップショット (p. 159) を参照してください。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードを更新し、クラスター識別子を指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[CreateAndDescribeSnapshot demonstrates how to create an Amazon Redshift cluster snapshot and describe existing snapshots.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[CreateClusterSnapshot]// snippet-keyword:[DeleteClusterSnapshot]

180

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使用したスナップショットの管理

// snippet-keyword:[DescribeClusterSnapshots]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-01-30]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.CreateAndDescribeSnapshot.complete]

package com.amazonaws.services.redshift;

import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;

import com.amazonaws.services.redshift.model.*;

public class CreateAndDescribeSnapshot {

public static AmazonRedshift client; public static String clusterIdentifier = "***provide a cluster identifier***"; public static long sleepTime = 20;

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient();

try { // Unique snapshot identifier String snapshotId = "my-snapshot-" + (new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss")).format(new Date());

Date createDate = createManualSnapshot(snapshotId); waitForSnapshotAvailable(snapshotId); describeSnapshots(); deleteManualSnapshotsBefore(createDate); describeSnapshots();

} catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static Date createManualSnapshot(String snapshotId) {

CreateClusterSnapshotRequest request = new CreateClusterSnapshotRequest() .withClusterIdentifier(clusterIdentifier) .withSnapshotIdentifier(snapshotId); Snapshot snapshot = client.createClusterSnapshot(request); System.out.format("Created cluster snapshot: %s\n", snapshotId); return snapshot.getSnapshotCreateTime(); }

private static void describeSnapshots() {

DescribeClusterSnapshotsRequest request = new DescribeClusterSnapshotsRequest() .withClusterIdentifier(clusterIdentifier); DescribeClusterSnapshotsResult result = client.describeClusterSnapshots(request);

printResultSnapshots(result); }

private static void deleteManualSnapshotsBefore(Date creationDate) {

DescribeClusterSnapshotsRequest request = new DescribeClusterSnapshotsRequest() .withEndTime(creationDate) .withClusterIdentifier(clusterIdentifier)

181

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI および API を

使用したスナップショットの管理

.withSnapshotType("manual");

DescribeClusterSnapshotsResult result = client.describeClusterSnapshots(request);

for (Snapshot s : result.getSnapshots()) { DeleteClusterSnapshotRequest deleteRequest = new DeleteClusterSnapshotRequest() .withSnapshotIdentifier(s.getSnapshotIdentifier()); Snapshot deleteResult = client.deleteClusterSnapshot(deleteRequest); System.out.format("Deleted snapshot %s\n", deleteResult.getSnapshotIdentifier()); } }

private static void printResultSnapshots(DescribeClusterSnapshotsResult result) { System.out.println("\nSnapshot listing:"); for (Snapshot snapshot : result.getSnapshots()) { System.out.format("Identifier: %s\n", snapshot.getSnapshotIdentifier()); System.out.format("Snapshot type: %s\n", snapshot.getSnapshotType()); System.out.format("Snapshot create time: %s\n", snapshot.getSnapshotCreateTime()); System.out.format("Snapshot status: %s\n\n", snapshot.getStatus()); } }

private static Boolean waitForSnapshotAvailable(String snapshotId) throws InterruptedException { Boolean snapshotAvailable = false; System.out.println("Wating for snapshot to become available."); while (!snapshotAvailable) { DescribeClusterSnapshotsResult result = client.describeClusterSnapshots(new DescribeClusterSnapshotsRequest() .withSnapshotIdentifier(snapshotId)); String status = (result.getSnapshots()).get(0).getStatus(); if (status.equalsIgnoreCase("available")) { snapshotAvailable = true; } else { System.out.print("."); Thread.sleep(sleepTime*1000); } } return snapshotAvailable; }

}// snippet-end:[redshift.java.CreateAndDescribeSnapshot.complete]

Amazon Redshift CLI および API を使用したスナップショットの管理

以下の Amazon Redshift CLI 操作を使用してスナップショットを管理できます。

• authorize-snapshot-access• copy-cluster-snapshot• create-cluster-snapshot• delete-cluster-snapshot• describe-cluster-snapshots• disable-snapshot-copy

182

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI および API を

使用したスナップショットの管理

• enable-snapshot-copy• modify-snapshot-copy-retention-period• restore-from-cluster-snapshot• revoke-snapshot-access

以下の Amazon Redshift API アクションを使用して、スナップショットを管理できます。

• AuthorizeSnapshotAccess• CopyClusterSnapshot• CreateClusterSnapshot• DeleteClusterSnapshot• DescribeClusterSnapshots• DisableSnapshotCopy• EnableSnapshotCopy• ModifySnapshotCopyRetentionPeriod• RestoreFromClusterSnapshot• RevokeSnapshotAccess

Amazon Redshift スナップショットの詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。

183

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift リザーブドノードの購入概要

AWS では、Amazon Redshift を使用するために発生する料金はコンピューティングノードに基づいています。各コンピューティングノードに対して、時間料金で課金されます。時間料金は、リージョン、ノードの種類、ノードに適用されるのがオンデマンドノード料金であるかリザーブドノード料金であるかなどの要因によって異なります。

オンデマンドノード料金は最も高価ですが、Amazon Redshift で最も柔軟性のあるオプションです。オンデマンドレートでは、実行中のクラスターにあるコンピューティングノードに対してのみ課金されます。クラスターをシャットダウンまたは削除すると、そのクラスターにあったコンピューティングノードに対して、それ以降は課金されません。使用するコンピューティングノードに対してのみ請求され、それ以外は課金されません。各コンピューティングノードに対して課金される時間料金は、リージョンやノードの種類などの要因によって異なります。

リザーブドノード料金はコンピューティングノードに対して、割引された時間単位の料金で課金されるため、オンデマンド料金よりも安価です。ただし、これらの割引料金の適用を受けるには、リザーブドノードのサービスを購入する必要があります。サービスを購入する際は、予約を行います。予約により、予約期間中に予約する各ノードについて割引料金が設定されます。サービスの割引料金は、リージョン、ノードの種類、期間、支払いオプションなどの要因によって異なります。

このトピックでは、リザーブドノードのサービスについてと、これらのサービスを購入して AmazonRedshift クラスターの実行コストを削減する方法について説明します。このトピックでは、一般的な用語としてオンデマンドレートまたは割引料金について説明し、料金の概念と、それによる課金への影響について理解できるようにします。特定のレートの詳細については、「Amazon Redshift 料金表」を参照してください。

リザーブドノードサービスについて長期間にわたって Amazon Redshift クラスターを実行したままにする予定の場合は、リザーブドノードサービスの購入を検討してください。これらのサービスでは、オンデマンド料金に比べて大幅なコスト削減ができますが、コンピューティングノードを予約し、1 年または 3 年の期間にわたってこれらのノードの料金の支払いを確約する必要があります。

リザーブドノードは、ノードに対する課金レートを決定するために厳密に使用される課金の概念です。ノードを予約しても、実際にはノードは作成されません。使用量にかかわらず、リザーブドノードに対して課金されます。つまり、割引料金の適用対象となる実行中のクラスターにノードがあるかどうかにかかわらず、予約期間中に予約する各ノードについて支払いを行う必要があります。

プロジェクトの評価フェーズ、または概念実証を開発する場合、オンデマンド料金により、従量料金制の柔軟性を得ることができ、使用した分だけ支払い、クラスターをシャットダウンまたは削除することでいつでも支払いを停止することができます。本稼働環境のニーズが確立され、実装段階を開始したら、1 つ以上のサービスを購入して、コンピューティングノードの予約を検討してください。

サービスでは 1 つ以上のコンピューティングノードを適用できます。サービスを購入するときに、予約するコンピューティングノードの数を指定します。複数のコンピューティングノードの 1 つのサービスを購入するか、複数のサービスを購入し、各ノードのコンピューティングノードの特定の数を指定する選択ができます。

たとえば、次のいずれも、3 つのコンピューティングノードのサービスを購入するための有効な方法です。

184

Amazon Redshift クラスター管理ガイドリザーブドノードサービス間の価格の比較

• 1 つのサービスを購入し、3 つのコンピューティングノードを指定する。• 2 つのサービスを購入し、最初のサービスに対して 1 つのコンピューティングノード、2 つ目のサービ

スに対して 2 つのコンピューティングノードを指定する。• 3 つのサービスを購入し、サービスごとに 1 つのコンピューティングノードを指定する。

リザーブドノードサービス間の価格の比較Amazon Redshift には、サービスについて複数の支払いオプションがあります。選択する支払いオプションは、支払いスケジュールと、予約に対して課金される割引料金に影響します。予約に対して支払う前払い料金が高いほど、全体的な削減額が大きくなります。

次の支払いオプションがサービスで利用できます。サービスは、オンデマンドレートに対する削減額が小さいものから大きいものの順に示されています。

Note

予約に指定された期間中は、リザーブドノードを使用するかどうかにかかわらず、毎時間、該当する時間料金で課金されます。支払いオプションによって決定されるのは、支払いの頻度と、適用される割引だけです。詳細については、「リザーブドノードサービスについて (p. 184)」を参照してください。

リザーブドノードサービスの比較

お支払い方法

支払いスケジュール 比較の削減額 所要時間 前払い料金 繰り返しの月額料金

前払いなし 予約期間中の月次の支払い額。前払い料金はありません。

オンデマンド料金に対して約 20 パーセントの割引。

1 年間の期間

なし はい

一部前払い 予約の期間については部分的な前払い料金と月次の支払い額。

期間によって最大 41~73 パーセントの割引。

1 年間または 3 年間

はい はい

全前払い 予約の完全な前払い料金。月額料金なし.

期間によって最大 42~76 パーセントの割引。

1 年間または 3 年間

はい なし

Note

以前に Amazon Redshift の [重度使用] サービスを購入した場合、比較できるサービスは [一部前払い] サービスとなります。

リザーブドノードの動作リザーブドノードサービスでは、前のセクションで説明したように、支払い条件に応じて支払いが発生します。すでに実行中のクラスターがあるか、予約後にクラスターを起動するかどうかにかかわらず、この方法で支払いを行います。

サービスを購入すると、予約が処理されるまで予約のステータスは [支払い保留中] になります。予約の処理に失敗した場合、ステータスは [支払い失敗] と表示され、プロセスを再試行することができます。予約が正常に処理されると、ステータスは [アクティブ] になります。予約の該当する割引料金は、ステータスが [アクティブ] になるまで適用されません。予約期間が経過すると、ステータスは [リタイア] になりますが、履歴の目的で予約に関する情報に引き続きアクセスすることができます。予約が [リタイア] になると、クラスターは引き続き実行されますが、ノードに割引価格を適用する別の予約がない限り、オンデマンドレートで課金される場合があります。

185

Amazon Redshift クラスター管理ガイドリザーブドノードと一括請求 (コ

ンソリデーティッドビリング)

リザーブドノードは、サービスを購入するリージョンに固有です。Amazon Redshift コンソールを使用してサービスを購入する場合は、サービスを購入する AWS リージョンを選択し、予約プロセスを完了します。サービスをプログラムで購入する場合、リージョンは接続先の Amazon Redshift エンドポイントによって決まります。Amazon Redshift リージョンの詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエンドポイント」を参照してください。

クラスターを起動するときに割引料金がすべてのノードに適用されるようにするには、リージョン、ノードの種類、および選択するノードの数が、1 つ以上のアクティブな予約に一致することを確認します。それ以外の場合、アクティブな予約に一致しないノードについては、オンデマンドレートで課金されます。

実行中のクラスターで、予約したノードの数を超えた場合は、それらの追加のノードに対して、オンデマンドレートで課金が発生し続けます。この発生は、予約したノードの数に応じて、同じクラスターのノードに対してさまざまなレートで課金される場合があることを示します。別のサービスを購入して、これらの追加のノードに対応することができます。その場合、予約のステータスが [アクティブ] になると、残りの期間は割引料金がノードに適用されます。

別のノードの種類にクラスターのサイズを変更し、その種類のノードを予約していない場合は、オンデマンドレートで課金されます。サイズ変更したクラスターに対して割引料金の適用を受けたい場合は、新しいノードの種類の別のサービスを購入できます。ただし、期間が経過するまで、元の予約についても引き続き支払いが発生します。期間の終了前に予約を変更する必要がある場合は、AWS コンソールを使用してサポートケースを作成してください。

リザーブドノードと一括請求 (コンソリデーティッドビリング)購入アカウントが、1 つの一括請求の支払いアカウントに請求される一連のアカウントの一部である場合、リザーブドノードの料金面でのメリットを広範囲に利用できます。すべてのサブアカウントの時間単位の使用量が月次で支払いアカウントに集約されます。さまざまな役割を持つチームやグループがある企業にとっては特に便利です。したがって、請求書の計算には通常のリザーブドノードのロジックが適用されます。詳しくは、『AWS Billing and Cost Management ユーザーガイド』の「一括請求 (コンソリデーティッドビリング)」を参照してください。

リザーブドノードの例このセクションのシナリオでは、次の予約の詳細を使用し、オンデマンドレートと割引料金に基づいて料金がどのように発生するかを示します。

• サービス対象: 米国西部 (オレゴン)• [Node Type]: ds1.xlarge• 支払い方法: 前払い料金なし• 期間: 1 年• リザーブドノード数: 16

例 120 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。

このシナリオでは、16 個のノードで予約から割引料金が適用されますが、クラスターのその他の 4 つのノードはオンデマンドレートで課金されます。

例 212 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。

186

Amazon Redshift クラスター管理ガイドコンソールを使用したリザーブドノードサービスの購入

このシナリオでは、クラスターの 12 個のノードにはすべて、予約から割引料金が適用されます。ただし、現在それらの適用対象となる実行中のクラスターがなくても、予約の残りのリザーブドノードに対して支払いが発生します。

例 312 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。この設定ではクラスターを数か月実行し、その後でクラスターにノードを追加する必要があります。クラスターのサイズを変更し、同じノードの種類を選択して、合計 16 個のノードを指定します。

このシナリオでは、16 個のノードに対して割引料金が請求されます。クラスターにあるノードの数は予約したノード数と等しいため、料金は 1 年間は同じままです。

例 416 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。この設定ではクラスターを数か月実行し、その後でノードを追加する必要があります。クラスターのサイズを変更し、同じノードの種類を選択して、合計 20 個のノードを指定します。

このシナリオでは、サイズ変更の前のすべてのノードに対して割引料金で課金されます。サイズ変更後は、1 年の残りの期間は 16 個のノードに対して割引料金で課金され、クラスターに追加した 4 つの追加のノードについてはオンデマンドレートで課金されます。

例 5米国西部 (オレゴン) リージョンに 2 つの ds1.xlarge クラスターがある。クラスターの 1 つは 6 個のノードを持ち、他のクラスターは 10 個のノードを持つ。

このシナリオでは、両方のクラスターのノードの合計数は予約したノードの数と等しいため、すべてのノードに対して割引料金で課金されます。

例 6米国西部 (オレゴン) リージョンに 2 つの ds1.xlarge クラスターがある。クラスターの 1 つは 4 個のノードを持ち、他のクラスターは 6 個のノードを持つ。

このシナリオでは、実行中のクラスターの 10 個のノードに対して割引料金で課金され、割引料金の適用対象となる実行中のクラスターが現在なくても、予約したその他の 6 個のノードに対して割引料金で支払いが発生します。

Amazon Redshift コンソールを使用したリザーブドノードサービスの購入

Amazon Redshift コンソールで [リザーブドノード] ページを使用して、リザーブドノードサービスを購入したり、現在および過去の予約を表示したりします。予約がない場合、[リザーブドノード] ページは以下のように表示されます。

187

Amazon Redshift クラスター管理ガイドコンソールを使用したリザーブドノードサービスの購入

サービスを購入した後、[リザーブドノード] リストには、各予約とその詳細 (ノードタイプ、ノード数、予約状況など) が表示されます。予約の詳細のさらなる情報については、「リザーブドノードの動作 (p. 185)」を参照してください。

リザーブドノードの予約を表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[リザーブドノード] を選択します。3. (オプション) [フィルター] で、予約リストでの結果を絞り込むための検索条件を指定します。

リザーブドノードサービスを購入するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[リザーブドノード] を選択します。3. [Purchase Reserved Nodes (リザーブドノードの購入)] を選択します。4. [Purchase Reserved Nodes (リザーブドノードの購入)] ウィザードで、[Node Type (ノードタイプ)]、

[期間]、[提供しているタイプ] を指定します。

5. [ノードの数] ボックスに、予約するノードの数を入力します。

188

Amazon Redshift クラスター管理ガイドリザーブドノードのアップグレード

6. [Continue] を選択します。7. サービスの詳細を確認し、[購入] を選択します。

8. [リザーブドノード] ページで、予約リストに [支払い保留中] ステータスの予約が表示されます。

DC1 から DC2 へのリザーブドノードのアップグレード現在の残りの有効期間に、DC1 リザーブドノードを無料で DC2 ノードにアップグレードできます。DC2は、低レイテンシーと高スループットを必要とする負荷の高いデータウェアハウスワークロード向けに設計されています。

前提条件

リザーブドノードをアップグレードする前に、アップグレードする予定のノードを含むクラスターを移行します。DC1 クラスターを DC2 に移行するには、サイズ変更または復元のオペレーションを使用します。クラスターが DC1.large クラスターである場合は、既存のスナップショットを使用して新しいDC2.large クラスターに復元できます。クラスターが DC1.8xlage クラスターの場合、サイズを変更してDC2.8xlarge クラスターとすることができます。リザーブドノードをアップグレードする前に、必ず DC1クラスターをシャットダウンします。DC2 クラスターでは、DC1 リザーブドノードをアップグレードするまで、オンデマンド料金が発生します。

スナップショットから復元する方法の詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。クラスターのサイズ変更の詳細については、「Amazon Redshift でのクラスターのサイズ変更 (p. 344)」を参照してください。

リザーブドノードの予約をアップグレードするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[リザーブドノード] を選択します。3. アップグレードする DC1 リザーブドノードを選択します。4. [リザーブドノードのアップグレード] ダイアログボックスの詳細を確認して、[アップグレード] を選

択します。

189

Amazon Redshift クラスター管理ガイドリザーブドノードのアップグレード

Amazon CLI を使用してリザーブドノードの予約をアップグレードするには

1. 支払いタイプ、期間、および条件の要件を満たすサービスに関する ReservedNodeOfferingID のリストを取得します。このステップを、次の例に示します。

aws redshift get-reserved-node-exchange-offerings --reserved-node-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx{ "ReservedNodeOfferings": [ { "Duration": 31536000, "ReservedNodeOfferingId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", "UsagePrice": 0.0, "NodeType": "dc2.large", "RecurringCharges": [ { "RecurringChargeFrequency": "Hourly", "RecurringChargeAmount": 0.2 } ], "CurrencyCode": "USD", "OfferingType": "No Upfront", "ReservedNodeOfferingType": "Regular", "FixedPrice": 0.0

190

Amazon Redshift クラスター管理ガイドJava を使用したリザーブドノードサービスの購入

} ]}

2. accept-reserved-node-exchange を呼び出して、前のステップで取得したReservedNodeOfferingID とともに交換する DC1 リザーブドノードの ID を指定します。

このステップを、次の例に示します。

aws redshift accept-reserved-node-exchange --reserved-node-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --target-reserved-node-offering-id yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyy{ "ExchangedReservedNode": { "UsagePrice": 0.0, "OfferingType": "No Upfront", "State": "exchanging", "FixedPrice": 0.0, "CurrencyCode": "USD", "ReservedNodeId": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", "NodeType": "dc2.large", "NodeCount": 1, "RecurringCharges": [ { "RecurringChargeFrequency": "Hourly", "RecurringChargeAmount": 0.2 } ], "ReservedNodeOfferingType": "Regular", "StartTime": "2018-06-27T18:02:58Z", "ReservedNodeOfferingId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyy", "Duration": 31536000 }}

describe-reserved-nodes を呼び出し、Node type の値を確認して、交換が完了したことを確認できます。

AWS SDK for Java を使用したリザーブドノードサービスの購入

以下の例は、AWS SDK for Java を使用して次の処理を実行する方法を示しています。

• 既存のリザーブドノードを一覧表示します。• 指定したノード条件に基づいて、新しいリザーブドノードサービスを検索します。• リザーブドノードを購入します。

この例は、指定したノードタイプと固定価格に一致するすべてのリザーブドノードサービスをまず選択します。次に、見つかった各サービスに対してコードを実行して、サービスを購入できるようにします。

Important

この例を実行し、リザーブドノードサービスを購入するサービスを承認すると、サービスについて課金されます。

191

Amazon Redshift クラスター管理ガイドJava を使用したリザーブドノードサービスの購入

この例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。リストに示している以外のノードタイプと固定価格について情報を得るには、そのノードタイプと固定価格でコードを更新します。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[ListAndPurchaseReservedNodeOffering demonstrates how to list and purchase Amazon Redshift reserved node offerings.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[DescribeReservedNodeOfferings]// snippet-keyword:[PurchaseReservedNodeOffering]// snippet-keyword:[ReservedNode]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-01-31]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.ListAndPurchaseReservedNodeOffering.complete]

package com.amazonaws.services.redshift;

import java.io.DataInput;import java.io.DataInputStream;import java.io.IOException;import java.util.ArrayList;

import com.amazonaws.services.redshift.model.*;

public class ListAndPurchaseReservedNodeOffering {

public static AmazonRedshift client; public static String nodeTypeToPurchase = "dc2.large"; public static Double fixedPriceLimit = 10000.00; public static ArrayList<ReservedNodeOffering> matchingNodes = new ArrayList<ReservedNodeOffering>();

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient();

try { listReservedNodes(); findReservedNodeOffer(); purchaseReservedNodeOffer();

} catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); }

192

Amazon Redshift クラスター管理ガイドJava を使用したリザーブドノードサービスの購入

}

private static void listReservedNodes() { DescribeReservedNodesResult result = client.describeReservedNodes(); System.out.println("Listing nodes already purchased."); for (ReservedNode node : result.getReservedNodes()) { printReservedNodeDetails(node); } }

private static void findReservedNodeOffer() { DescribeReservedNodeOfferingsRequest request = new DescribeReservedNodeOfferingsRequest(); DescribeReservedNodeOfferingsResult result = client.describeReservedNodeOfferings(request); Integer count = 0;

System.out.println("\nFinding nodes to purchase."); for (ReservedNodeOffering offering : result.getReservedNodeOfferings()) { if (offering.getNodeType().equals(nodeTypeToPurchase)){

if (offering.getFixedPrice() < fixedPriceLimit) { matchingNodes.add(offering); printOfferingDetails(offering); count +=1; } } } if (count == 0) { System.out.println("\nNo reserved node offering matches found."); } else { System.out.println("\nFound " + count + " matches."); } }

private static void purchaseReservedNodeOffer() throws IOException { if (matchingNodes.size() == 0) { return; } else { System.out.println("\nPurchasing nodes.");

for (ReservedNodeOffering offering : matchingNodes) { printOfferingDetails(offering); System.out.println("WARNING: purchasing this offering will incur costs."); System.out.println("Purchase this offering [Y or N]?"); DataInput in = new DataInputStream(System.in); String purchaseOpt = in.readLine(); if (purchaseOpt.equalsIgnoreCase("y")){

try { PurchaseReservedNodeOfferingRequest request = new PurchaseReservedNodeOfferingRequest() .withReservedNodeOfferingId(offering.getReservedNodeOfferingId()); ReservedNode reservedNode = client.purchaseReservedNodeOffering(request); printReservedNodeDetails(reservedNode); } catch (ReservedNodeAlreadyExistsException ex1){ } catch (ReservedNodeOfferingNotFoundException ex2){ } catch (ReservedNodeQuotaExceededException ex3){ }

193

Amazon Redshift クラスター管理ガイドAWS CLI および Amazon Redshift API を使用したリザーブドノードサービスの購入

catch (Exception ex4){ } } } System.out.println("Finished.");

} }

private static void printOfferingDetails( ReservedNodeOffering offering) { System.out.println("\nOffering Match:"); System.out.format("Id: %s\n", offering.getReservedNodeOfferingId()); System.out.format("Node Type: %s\n", offering.getNodeType()); System.out.format("Fixed Price: %s\n", offering.getFixedPrice()); System.out.format("Offering Type: %s\n", offering.getOfferingType()); System.out.format("Duration: %s\n", offering.getDuration()); }

private static void printReservedNodeDetails(ReservedNode node) { System.out.println("\nPurchased Node Details:"); System.out.format("Id: %s\n", node.getReservedNodeOfferingId()); System.out.format("State: %s\n", node.getState()); System.out.format("Node Type: %s\n", node.getNodeType()); System.out.format("Start Time: %s\n", node.getStartTime()); System.out.format("Fixed Price: %s\n", node.getFixedPrice()); System.out.format("Offering Type: %s\n", node.getOfferingType()); System.out.format("Duration: %s\n", node.getDuration()); }}// snippet-end:[redshift.java.ListAndPurchaseReservedNodeOffering.complete]

AWS CLI および Amazon Redshift API を使用したリザーブドノードサービスの購入

次の AWS CLI オペレーションで、リザーブドノードサービスを購入できます。

• purchase-reserved-node-offering• describe-reserved-node-offerings• describe-orderable-cluster-options

次の Amazon Redshift API を使用して、リザーブドノードサービスを購入できます。

• PurchaseReservedNodeOffering• DescribeReservedNodeOfferings• DescribeOrderableClusterOptions

194

Amazon Redshift クラスター管理ガイド

Amazon Redshift でのセキュリティAWS では、クラウドのセキュリティが最優先事項です。AWS のお客様は、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャから利点を得られます。

セキュリティは、AWS とお客様の間の共有責任です。共有責任モデルでは、これをクラウドのセキュリティおよびクラウド内のセキュリティとして説明しています。

• クラウドのセキュリティ – AWS は、AWS クラウド内で AWS サービスを実行するインフラストラクチャを保護する責任を担います。また、AWS は、使用するサービスを安全に提供します。セキュリティの有効性は、AWS コンプライアンスプログラムの一環として、サードパーティーの監査が定期的にテストおよび検証されています。Amazon Redshift に適用するコンプライアンスプログラムの詳細については、コンプライアンスプログラムによる AWS 対象範囲内のサービスを参照してください。

• クラウド内のセキュリティ – お客様の責任はお客様が使用する AWS のサービスによって決まります。また、お客様は、お客様のデータの機密性、組織の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

Amazon Redshift リソースへのアクセスは 4 つのレベルで制御されます。

• クラスター管理 クラスターを作成、設定、削除する機能は、IAM ユーザー、または AWS セキュリティ認証情報に関連付けられているアカウントに付与されるアクセス許可で制御されます。適切なアクセス許可が付与された IAM ユーザーは、AWS マネジメントコンソール、AWS Command Line Interface(CLI)、または Amazon Redshift アプリケーションプログラミングインターフェイス (API) を使用し、クラスターを管理できます。このアクセスは、IAM ポリシーを使用して管理されます。詳細については、「Amazon Redshift での Identity and Access Management (p. 212)」を参照してください。

• クラスター接続性 – Amazon Redshift セキュリティグループにより、クラスレスドメイン間ルーティング (CIDR) 形式での AWS クラスターへの接続が許可される Amazon Redshift インスタンスが指定されます。Amazon Redshift、Amazon EC2、Amazon VPC セキュリティグループを作成し、それらのグループとクラスターを関連付ける方法の詳細については、「Amazon Redshift クラスターセキュリティグループ (p. 272)」を参照してください。

• データベースアクセス – テーブルやビューなどのデータベースオブジェクトにアクセスできるかどうかは、Amazon Redshift データベースのユーザーアカウントにより制御されます。ユーザーは、ユーザーアカウントがアクセス権限を付与されたデータベースのリソースにのみアクセス可能です。これらのAmazon Redshift ユーザーアカウントの作成とそのアクセス権の管理は、CREATE USER、CREATEGROUP、GRANT、REVOKE SQL ステートメントを使用して行います。詳細については、AmazonRedshift Database Developer Guide の「データベースセキュリティの管理」を参照してください。

• 一時的データベース認証情報およびシングルサインオン – CREATE USER や ALTER USER などの SQLコマンドを使用したデータベースユーザーの作成と管理に加えて、カスタム Amazon Redshift JDBC または ODBC ドライバーで SQL クライアントを設定できます。これらのドライバーは、データベースのログオンプロセスの一部として、データベースユーザーや仮パスワードを作成するプロセスを管理します。

ドライバーは AWS Identity and Access Management (IAM) 認証に基づいてデータベースユーザーを認証します。既に AWS の外部でユーザー ID を管理している場合は、SAML 2.0 互換 ID プロバイダ (IdP) を使用して Amazon Redshift リソースへのアクセスを管理できます。IAM ロールを使用して、フェデレーティッドユーザーが一時データベース認証情報を生成して Amazon Redshift データベースにログオンすることを許可するよう IdP および AWS を設定できます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成 (p. 229)」を参照してください。

このドキュメントは、Amazon Redshift を使用する際に共有責任モデルを適用する方法を理解するのに役立ちます。以下のトピックでは、セキュリティおよびコンプライアンスの目的を達成するために Amazon

195

Amazon Redshift クラスター管理ガイドデータ保護

Redshift を設定する方法を示します。また、Amazon Redshift リソースのモニタリングや保護に役立つ他の AWS サービスの使用方法についても説明します。

トピック• Amazon Redshift でのデータ保護 (p. 196)• Amazon Redshift での Identity and Access Management (p. 212)• Amazon Redshift のログ記録とモニタリング (p. 256)• Amazon Redshift のコンプライアンス検証 (p. 270)• Amazon Redshift の耐障害性 (p. 271)• Amazon Redshift のインフラストラクチャセキュリティ (p. 271)• Amazon Redshift での設定と脆弱性の分析 (p. 285)

Amazon Redshift でのデータ保護Amazon Redshift では暗号化を使用して、保管時のデータを保護します。必要に応じて、AdvancedEncryption Standard AES-256 を使用して、クラスター内のディスクに保存されているデータと AmazonS3 のバックアップをすべて保護することができます。詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。

データの暗号化データ保護には、転送時 (Amazon Redshift との間でデータを送受信するとき) のデータを保護するものと、保管時 (Amazon Redshift データセンター内のディスクに格納されているとき) のデータを保護するものがあります。SSL を使用するか、クライアント側の暗号化を使用することによって、転送中のデータを保護できます。Amazon Redshift で保管時のデータを保護するには、次のようなオプションがあります。

• サーバー側の暗号化を使用する – データをデータセンター内のディスクに保存する前に暗号化し、オブジェクトをダウンロードするときに復号するように Amazon Redshift にリクエストします。

• クライアント側の暗号化を使用する – クライアント側でデータを暗号化し、暗号化したデータをAmazon Redshift にアップロードできます。この場合、暗号化プロセス、暗号化キー、関連ツールはお客様が管理してください。

保管時の暗号化サーバー側の暗号化は、保管時のデータ暗号化に関するものです。つまり、Amazon Redshift は、必要に応じて、データセンターに書き込まれるときにデータを暗号化し、お客様がデータにアクセスするときに復号します。リクエストが認証され、お客様がアクセス許可を持っている限りは、オブジェクトが暗号化されているかどうかに関係なく同じ方法でアクセスできます。

Amazon Redshift では暗号化を使用して、保管時のデータを保護します。必要に応じて、AdvancedEncryption Standard AES-256 を使用して、クラスター内のディスクに保存されているデータと AmazonS3 のバックアップをすべて保護することができます。

Amazon Redshift リソースを暗号化および復号するために使用するキーを管理するには、AWS KeyManagement Service (AWS KMS) を使用します。AWS KMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。AWS KMS を使用すると、キーの暗号化を作成し、このキーの使用方法を制御するポリシーを定義できます。AWS KMSは AWS CloudTrail をサポートするため、キーの使用を監査して、キーが適切に使用されていることを確認できます。AWS KMS キーは、Amazon Redshift やサポートされている AWS のサービスと組み合わせて使用できます。AWS KMS をサポートしているサービスの一覧については、『AWS Key ManagementService 開発者ガイド』の「AWS サービスでの AWS KMS の使用方法」を参照してください。

トピック

196

Amazon Redshift クラスター管理ガイドデータの暗号化

• Amazon Redshift データベース暗号化 (p. 197)

Amazon Redshift データベース暗号化Amazon Redshift では、クラスターに対してデータベースの暗号化を有効にして、保管時のデータを保護できます。クラスターに対して暗号化を有効にすると、クラスターとそのスナップショットのデータブロックとシステムメタデータが暗号化されます。

クラスターの起動時に暗号化を有効にするか、AWS Key Management Service (AWS KMS) 暗号化を使用するように暗号化されていないクラスターを変更できます。そのためには、AWS マネージドキーまたはカスタマー管理キー (CMK) のどちらかを使用できます。クラスターを変更して KMS 暗号化を有効にすると、Amazon Redshift は自動的にデータを新たな暗号化されたクラスターに移行します。暗号化されたクラスターから作成されたスナップショットも暗号化されます。また、クラスターを変更して [データベースの暗号化] オプションを変更することで、暗号化されたクラスターを暗号化されていないクラスターに移行することもできます。詳細については、「クラスターの暗号化の変更 (p. 200)」を参照してください。

暗号化は Amazon Redshift ではオプションの設定ですが、機密データを含むクラスターに対しては有効にすることをお勧めします。また、データに適用されるガイドラインやルールに応じて暗号化の使用が必要になる場合があります。たとえば、Payment Card Industry Data Security Standard (PCI DSS)、Sarbanes-Oxley Act (SOX)、Health Insurance Portability and Accountability Act (HIPAA) といった規制では、特定の種類のデータの取り扱いに関するガイドラインが規定されています。

Amazon Redshift では、暗号化キーの階層を使用してデータベースを暗号化します。AWS KeyManagement Service (AWS KMS) またはハードウェアセキュリティモジュール (HSM) のいずれかを使用して、この階層の最上位の暗号化キーを管理できます。Amazon Redshift で暗号化に使用するプロセスはキーの管理方法によって異なります。Amazon Redshift は自動的に AWS KMS に統合されますが、HSMには統合されません。HSM を使用するときは、クライアントとサーバーの証明書を使用して、AmazonRedshift と HSM との間で信頼された接続を設定する必要があります。

トピック• Amazon Redshift での AWS KMS を使用したデータベース暗号化 (p. 197)• Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化 (p. 199)• Amazon Redshift での暗号化キーの更新 (p. 200)• クラスターの暗号化の変更 (p. 200)• コンソールを使用したデータベース暗号化の設定 (p. 204)• Amazon Redshift API および AWS CLI を使用したデータベース暗号化の設定 (p. 209)

Amazon Redshift での AWS KMS を使用したデータベース暗号化

Amazon Redshift によるキー管理用に AWS KMS を選択すると、4 階層の暗号化キーがあります。これらのキーは、階層の最上位から順にマスターキー、クラスターの暗号化キー (CEK)、データベースの暗号キー (DEK)、データ暗号化キーとなっています。

クラスターを起動すると、Amazon Redshift では、AWS アカウントが作成したか AWS KMS での使用アクセス権限のあるカスタマーマスターキー (CMK) のリストが返されます。暗号化キーの階層でマスターキーとして使用する CMK を選択します。

Amazon Redshift の初期の設定では、スターキーとしてデフォルトのキーが選択されています。デフォルトのキーは AWS マネージドキーであり、AWS アカウントが Amazon Redshift 用に作成したものです。暗号化されたクラスターを AWS リージョンで初めて起動してデフォルトのキーを選択すると、AWS KMSでこのキーが作成されます。

デフォルトのキーを使用しない場合は、Amazon Redshift でクラスターを起動する前に、AWS KMS でカスタマー管理 CMK を別途用意 (作成) する必要があります。カスタマー管理 CMK を作成すると、データの保護に使用する暗号化キーを作成、更新、無効化、アクセス制御定義、監査できるなど、より柔軟に取り扱うことができます。CMK 作成の詳細については、『AWS Key Management Service DeveloperGuide』の「キーの作成」を参照してください。

197

Amazon Redshift クラスター管理ガイドデータの暗号化

別の AWS アカウントの AWS KMS キーを使用する場合は、そのキーを使用するアクセス許可が必要であり、Amazon Redshift でその Amazon リソースネーム (ARN) を指定する必要があります。AWS KMS でのキーのアクセスの詳細については、『AWS Key Management Service Developer Guide』の「キーへのアクセスの制御」を参照してください。

マスターキーを選択した後、Amazon Redshift は AWS KMS に、データキーの生成と選択されたマスターキーでの暗号化をリクエストします。このデータは Amazon Redshift で CEK として使用されます。AWSKMS は暗号化された CEK を Amazon Redshift にエクスポートします。その CEK はクラスターから別のネットワークのディスクに内部で保存され、同時に、CMK とその CEK の暗号化コンテキストに対する権限も保存されます。暗号化された CEK のみが Amazon Redshift にエクスポートされます。CMK は AWSKMS に残ります。また、Amazon Redshift は、暗号化された CEK を安全なチャンネル経由でクラスターに渡し、メモリにロードします。その後、Amazon Redshift は、AWS KMS を呼び出して CEK を復号化し、復号化された CEK をメモリにロードします。権限、暗号化コンテキスト、その他の AWS KMS 関連の概念の詳細については、『AWS Key Management Service Developer Guide』の「概念」を参照してください。

次に、Amazon Redshift は DEK として使用するキーを生成し、クラスターのメモリにランダムにロードします。復号化された CEK は DEK の暗号化に使用されます。その後、暗号化された DEK はクラスターから安全なチャンネル経由で Amazon Redshift に渡され、クラスターとは別のネットワーク内のディスクに内部で保存されます。CEK と同様に、DEK の暗号化および復号の両方のバージョンはクラスターのメモリにロードされます。その後、DEK の復号バージョンは、データベース内の各データブロックのランダムに生成された暗号化キーを暗号化するために使用されます。

クラスターを再起動すると、Amazon Redshift は、内部で保存した CEK と DEK の暗号化バージョンをまずメモリに再ロードしてから、AWS KMS を呼び出して CMK で CEK を再び復号化します。これで、CEKはメモリにロードできるようになります。復号された CEK で DEK は再び復号され、復号された DEK はメモリにロードされて、必要に応じてデータブロックキーの暗号化および復号に使用されます。

AWS KMS キーで暗号化された Amazon Redshift クラスターの作成の詳細については、「クラスターの作成 (p. 20)」と「Amazon Redshift CLI および API を使用してクラスターを管理する (p. 40)」を参照してください。

別の AWS リージョンに AWS KMS 暗号化スナップショットをコピーする

AWS KMS キーは、AWS リージョンに固有です。別の AWS リージョンへの Amazon Redshift スナップショットのコピーを有効にし、ソースクラスターとそのスナップショットが AWS KMS からのマスターキーを使用して暗号化される場合は、ターゲットの AWS リージョンで Amazon Redshift に対してマスターキーの使用権限を設定する必要があります。この権限により、Amazon Redshift はターゲットの AWSリージョンでスナップショットを暗号化できるようになります。リージョン間スナップショットコピーに関する詳細については、「別のリージョンにスナップショットをコピーする (p. 163)」を参照してください。

Note

暗号化されたクラスターからのスナップショットのコピーを有効にし、マスターキーに AWSKMS を使用する場合、クラスター名は暗号化コンテキストの一部になるため、クラスター名を変更することはできません。クラスター名を変更するには、ソースの AWS リージョンでスナップショットのコピーを無効にし、クラスター名を変更してから、再びスナップショットのコピーを設定して有効にする必要があります。

スナップショットのコピー権限を設定するプロセスは、以下のとおりです。

1. ターゲットの AWS リージョンで、次の手順を実行してスナップショットのコピー権限を作成します。• 使用する AWS KMS キーがまだなければ作成します。AWS KMS キーの作成の詳細については、

『AWS Key Management Service Developer Guide』の「キーの作成」を参照してください。• スナップショットのコピー権限の名前を指定します。この名前は AWS アカウントの AWS リージョ

ンで一意であることが必要です。• 作成する権限が適用される AWS KMS キーの ID を指定します。キー ID を指定しない場合は、この権

限はデフォルトのキーに適用されます。

198

Amazon Redshift クラスター管理ガイドデータの暗号化

2. ソースの AWS リージョンで、スナップショットのコピーを有効にし、ターゲットの AWS リージョンで作成したスナップショットのコピー権限の名前を指定します。

この事前のプロセスは、AWS CLI、Amazon Redshift API、または SDK を使用してスナップショットのコピーを有効にする場合にのみ必要です。コンソールを使用する場合、Amazon Redshift では、リージョン間のスナップショットのコピーを有効にするときに、権限の設定ワークフローがあります。コンソールを使用して、AWS KMS で暗号化されたクラスター用にリージョン間のスナップショットのコピーを設定する方法の詳細については、「AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定 (p. 178)」を参照してください。

スナップショットがターゲットの AWS リージョンにコピーされる前に、Amazon Redshift はソースのAWS リージョンでマスターキーを使用してスナップショットを復号し、Amazon Redshift が内部で管理しているランダムに生成された RSA キーを使用して一時的に再暗号化します。その後、Amazon Redshiftはスナップショットを安全なチャンネル経由でターゲットの AWS リージョンにコピーし、内部で管理している RSA キーを使用してスナップショットを復号してから、ターゲットの AWS リージョンでマスターキーを使用してスナップショットを再暗号化します。

AWS KMS 暗号化されたクラスター用にスナップショットのコピー権限を設定する方法の詳細については、「Amazon Redshift API および AWS CLI を使用して、AWS KMS 暗号化キーを使用するようにAmazon Redshift を設定する (p. 209)」を参照してください。

Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化

キー管理に AWS KMS を使用しない場合は、Amazon Redshift ではキー管理にハードウェアセキュリティモジュール (HSM) を使用できます。

Important

HSM 暗号化は DC2 ノードタイプではサポートされません。

HSM は、キー生成と管理を直接に制御するデバイスです。キーの管理をアプリケーションとデータベースのレイヤーから切り離すことで、より優れたセキュリティを実現します。Amazon Redshift はキー管理にAWS CloudHSM Classic をサポートしています。AWS KMS の代わりに HSM を使用して暗号化キーを管理するときは、暗号化プロセスが異なります。

Important

Amazon Redshift は AWS CloudHSM Classic のみをサポートします。新しい AWS CloudHSMサービスはサポートしていません。AWS CloudHSM Classic はすべての AWS リージョンで使用できるわけではありません。使用できる AWS リージョンについては、「製品およびサービス一覧 (リージョン別)」を参照してください。

HSM を使用するようにクラスターを設定すると、Amazon Redshift は HSM に、CEK として使用されるキーの生成と保存をリクエストします。ただし、AWS KMS とは異なり、HSM は Amazon Redshiftに CEK をエクスポートしません。代わりに、Amazon Redshift はクラスターで DEK をランダムに生成し、HSM に DEK を渡して、DEK は CEK で暗号化されます。HSM は暗号化された DEK を AmazonRedshift に返します。その DEK は、内部で保存されているランダムに生成されたマスターキーでさらに暗号化され、クラスターとは別のネットワーク内のディスクに内部で保存されます。また、AmazonRedshift は、DEK の復号バージョンをクラスターのメモリにロードします。それにより、DEK を使用して個々のデータブロックキーを暗号化および復号できるようになります。

クラスターを再起動した場合、Amazon Redshift は、内部に保存したマスターキーを使用して、内部で保存した二重に暗号化された DEK を復号化することで、その DEK を CEK で暗号化した状態に戻します。その後、CEK で暗号化された DEK は HSM に渡され、復号化されて、Amazon Redshift に戻され、再びメモリにロードされて、個々のデータブロックキーに使用できるようになります。

Amazon Redshift と HSM との間の信頼された接続の設定

クラスターキーの管理に HSM を使用するように選択した場合、Amazon Redshift と HSM の間に信頼されたネットワークリンクを構成する必要があります。これを行うには、クライアント証明書とサーバー

199

Amazon Redshift クラスター管理ガイドデータの暗号化

証明書の設定が必要です。信頼された接続は、暗号化と復号化のオペレーション中に、HSM と AmazonRedshift との間で暗号化キーを渡すために使用されます。

Amazon Redshift は、ランダムに生成されたプライベートキーとパブリックキーの組み合わせから、パブリッククライアント証明書を作成します。これらは内部的に暗号化されて保管されます。ユーザーは、パブリッククライアント証明書を HSM にダウンロードして登録し、該当する HSM パーティションに割り当てます。

ユーザーは、HSM の IP アドレス、HSM パーティションの名前、HSM パーティションのパスワード、および内部マスターキーで暗号化された HSM サーバー証明書を、Amazon Redshift に伝達します。AmazonRedshift は設定プロセスを完了し、HSM に接続できることを確認します。接続できない場合、クラスターは INCOMPATIBLE_HSM 状態に設定され、クラスターは作成されません。この場合、不完全なクラスターを削除してから、もう一度やり直す必要があります。

Important

別の HSM パーティションを使用するクラスターを変更する場合、Amazon Redshift は新しいパーティションに接続できるか確認しますが、有効な暗号化キーがあるかは確認しません。新しいパーティションを使用する前に、新しいパーティションのキーを複製する必要があります。クラスターを再起動し、Amazon Redshift が有効なキーを見つけることができない場合、再起動は失敗します。詳細については、「HSM 間のキーのレプリケート」を参照してください。

HSM を使用するように Amazon Redshift を設定する方法の詳細については、「Amazon Redshift consoleを使用し、HSM を使用するように Amazon Redshift を設定する (p. 204)」と「Amazon Redshift API および AWS CLI を使用し、HSM を使用するように Amazon Redshift を設定する (p. 209)」を参照してください。

初期設定の後で Amazon Redshift が HSM に接続できない場合、イベントが記録されます。これらのイベントの詳細については、「Amazon Redshift イベント通知」を参照してください。

Amazon Redshift での暗号化キーの更新

Amazon Redshift では、暗号化したクラスターの暗号化キーを更新することができます。キーの更新プロセスを開始する際、Amazon Redshift は、指定されたクラスターとそのクラスターの自動または手動スナップショット用の CEK を更新します。また、Amazon Redshift は指定されたクラスターの DEKを更新しますが、スナップショットの DEK を更新することはできません。スナップショットの DEKは、Amazon Simple Storage Service (Amazon S3) に内部で保存されている間、既存の DEK で暗号化されているためです。

更新の進行中、クラスターはその完了まで ROTATING_KEYS 状態に設定され、完了すると AVAILABLE状態に戻ります。Amazon Redshift は、キーの更新プロセスの間に、復号と再暗号化の処理を行います。

Note

ソースクラスターなしでスナップショットのキーを更新することはできません。クラスターを削除する際には、スナップショットのキー更新が必要になるかどうかを検討してください。

キー更新プロセス中はクラスターが一時的に使用不能になるので、キーの更新は、データのニーズによって必要となるか、キーの漏洩の疑いがある場合のみ行ってください。ベストプラクティスとして、保存するデータの種類を考慮してデータの暗号化キーの更新頻度を計画してください。キーの更新の頻度は、データセキュリティに対する企業のポリシーと、機密データおよび規制コンプライアンスに関する業界標準によって異なります。セキュリティのニーズとクラスターの可用性のバランスを考慮して計画を立ててください。

キーの更新の詳細については、「Amazon Redshift console を使用した暗号化キーの更新 (p. 208)」と「Amazon Redshift API および AWS CLI を使用した暗号化キーの更新 (p. 210)」を参照してください。

クラスターの暗号化の変更

AWS が管理するキーまたはお客様が管理するキー (CMK) を使用し、暗号化されていないクラスターを変更して AWS Key Management Service (AWS KMS) 暗号化を使用できます。クラスターを変更して KMS暗号化を有効にすると、Amazon Redshift は自動的にデータを新たな暗号化されたクラスターに移行しま

200

Amazon Redshift クラスター管理ガイドデータの暗号化

す。また、クラスターを変更することで、暗号化されていないクラスターを暗号化されたクラスターに移行することもできます。

移行オペレーション中、クラスターは読み取り専用モードで閲覧可能になり、クラスターのステータスは[サイズ変更] と表示されます。

クラスターが AWS リージョン間のスナップショットコピーを有効にするように設定されている場合は、暗号化を変更する前に無効にする必要があります。詳細については、「別のリージョンにスナップショットをコピーする (p. 163)」および「AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定 (p. 178)」を参照してください。クラスターを変更してハードウェアセキュリティモジュール(HSM) 暗号化を有効にすることはできません。代わりに、HSM で暗号化された新しいクラスターを作成し、データを新しいクラスターに移行します。詳細については、「HSM 暗号化されたクラスターへの移行 (p. 202)」を参照してください。

コンソールを使用してクラスターの暗号化を変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[クラスター] を選択して、変更するクラスターを選択します。3. [クラスター]、[変更] の順に選択します。4. [データベースの暗号化] で、[KMS] を選択して暗号化を有効にするか、[なし] を選択して暗号化を無

効にします。5. カスタマー管理キーを使用するには、[マスターキー] で [キーの ARN を入力] を選択して [ARN]

フィールドで ARN を入力します。

6. [Modify] を選択します。

201

Amazon Redshift クラスター管理ガイドデータの暗号化

CLI を使用してクラスターの暗号化を変更するには

暗号化を解除したクラスターを変更して KMS を使用するには、次に示すように modify-cluster CLI コマンドを実行して –-encrypted を指定します。デフォルトでは、デフォルトの KMS キーが使用されています。カスタマー管理キーを指定するには、--kms-key-id オプションを含めます。

aws redshift modify-cluster --cluster-identifier <value> --encrypted --kms-key-id <value>

クラスターから暗号化を削除するには、次の CLI コマンドを実行します。

aws redshift modify-cluster --cluster-identifier <value> --no-encrypted

HSM 暗号化されたクラスターへの移行

ハードウェアセキュリティモジュール (HSM) を使用して、暗号化されていないクラスターを暗号化されたクラスターに移行するには、新しい暗号化クラスターを作成し、データを新しいクラスターに移動します。クラスターを変更して HSM 暗号化クラスターに移行することはできません。

暗号化されていないクラスターから HSM 暗号化されたクラスターに移行するには、まず既存のソースクラスターからデータをアンロードします。次に、選択した暗号化設定を使用して、新しいターゲットクラスター内のデータを再ロードします。暗号化されたクラスターを起動する方法の詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。

移行プロセスの間、ソースクラスターは最後の手順まで読み取り専用クエリで使用できます。最後のステップは、エンドポイントを切り替えるターゲットクラスターとソースクラスターの名前を変更して、すべてのトラフィックが新しいターゲットクラスターにルーティングされるようにすることです。名前を変更して再起動するまで、ターゲットクラスターは使用できません。データの転送中に、ソースクラスター上のすべてのデータロードおよびその他の書き込み操作を中断します。

移行の準備をするには

1. ビジネスインテリジェンス (BI) ツールや抽出、変換、ロード (ETL) システムなど、Amazon Redshiftと対話するすべての依存システムを特定します。

2. 検証クエリを特定して移行をテストします。

たとえば、次のクエリを使用してユーザー定義テーブルの数を検索できます。

select count(*)from pg_table_defwhere schemaname != 'pg_catalog';

次のクエリは、すべてのユーザー定義テーブルの一覧と各テーブルの行数を返します。

select "table", tbl_rowsfrom svv_table_info;

3. 移行に適した時間を選択します。クラスター使用率が最も低い時間を見つけるには、CPU 使用率やデータベース接続数などのクラスターメトリクスを監視します。詳細については、「クラスターのパフォーマンスデータを表示する (p. 303)」を参照してください。

4. 未使用のテーブルを削除します。

テーブルのリストを作成し、各テーブルがクエリされた回数を知るには、次のクエリを実行します。

select database,schema,table_id,"table",

202

Amazon Redshift クラスター管理ガイドデータの暗号化

round(size::float/(1024*1024)::float,2) as size,sortkey1,nvl(s.num_qs,0) num_qsfrom svv_table_info tleft join (select tbl,perm_table_name,count(distinct query) num_qsfrom stl_scan swhere s.userid > 1and s.perm_table_name not in ('internal worktable','s3')group by tbl,perm_table_name) s on s.tbl = t.table_idwhere t."schema" not in ('pg_internal');

5. 暗号化された新しいクラスターを起動します。

ソースクラスターと同じポート番号をターゲットクラスターに使用します。暗号化されたクラスターを起動する方法の詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。

6. アンロードとロードのプロセスを設定します。

Amazon Redshift アンロード/コピーユーティリティを使用すると、クラスター間でデータを移行するのに役立ちます。このユーティリティは、ソースクラスターから Amazon S3 上の場所にデータをエクスポートします。データは AWS KMS で暗号化されます。ユーティリティーは、データをターゲットに自動的にインポートします。必要に応じて、移行が完了した後でこのユーティリティーを使用して Amazon S3 をクリーンアップすることができます。

7. テストを実行してプロセスを検証し、書き込み操作を中断する必要のある期間を見積もります。

アンロードおよびロード操作中に、データのロードおよびその他の書き込み操作を中断して、データの整合性を維持します。最も大きなテーブルの 1 つを使用して、アンロードとロードのプロセスを実行すると、タイミングを推定するのに役立ちます。

8. スキーマ、ビュー、テーブルなどのデータベースオブジェクトを作成します。必要なデータ定義言語(DDL) 文を生成するために、AWS GitHub リポジトリの AdminViews にあるスクリプトを使用できます。

クラスターを移行するには

1. ソースクラスターですべての ETL プロセスを停止します。

処理中に書き込み操作がないことを確認するには、Amazon Redshift マネジメントコンソールを使用して書き込み IOPS を監視します。詳細については、「クラスターのパフォーマンスデータを表示する (p. 303)」を参照してください。

2. 以前に特定した検証クエリを実行して、移行前に暗号化されていないソースクラスターに関する情報を収集します。

3. (オプション) 1 つのワークロード管理 (WLM) キューを作成して、ソースクラスターとターゲットクラスターの両方で使用可能な最大限のリソースを使用します。たとえば、data_migrate という名前のキューを作成し、メモリーを 95 パーセント、同時実行レベル 4 でキューを構成します。詳細については、『Amazon Redshift Database Developer Guide』の「ユーザーグループとクエリグループに基づいてクエリをキューにルーティング」を参照してください。

4. data_migrate キューを使用して UnloadCopyUtility を実行します。

Amazon Redshift コンソールを使用して UNLOAD および COPY プロセスを監視します。5. 検証クエリを再度実行し、結果がソースクラスターの結果と一致することを確認します。6. ソースクラスターおよびターゲットクラスターの名前を変更して、エンドポイントをスワップしま

す。混乱を避けるために、この操作は営業時間外に実行してください。7. ETL やレポートツールなどのすべての SQL クライアントを使用して、ターゲットクラスターに接続

できることを確認します。

203

Amazon Redshift クラスター管理ガイドデータの暗号化

8. 暗号化されたソースクラスターをシャットダウンします。

コンソールを使用したデータベース暗号化の設定

Amazon Redshift console を使用すると、HSM を使用して暗号化キーを更新するように Amazon Redshiftを設定できます。AWS KMS 暗号化キーを使用してクラスターを作成する方法については、「クラスターの作成 (p. 20)」または「Amazon Redshift CLI および API を使用してクラスターを管理する (p. 40)」を参照してください。

Amazon Redshift console を使用し、HSM を使用するように Amazon Redshift を設定する

次の手順を使用すると、Amazon Redshift console を使用して Amazon Redshift の HSM 接続と構成情報を指定できます。

HSM 接続を作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. 左のナビゲーションペインで [セキュリティ] をクリックし、[HSM 接続] タブをクリックします。3. [HSM 接続の作成] をクリックします。

4. [HSM 接続の作成] ページで、以下の情報を入力します。

a. [HSM 接続名] ボックスに、この接続を識別する名前を入力します。b. [説明] ボックスに、接続に関する説明を入力します。c. [HSM の IP アドレス] ボックスに、HSM の IP アドレスを入力します。d. [HSM のパーティション名] ボックスに、Amazon Redshift が接続するパーティションの名前を入

力します。e. [HSM のパーティションのパスワード] ボックスに、HSM パーティションに接続するために必要

なパスワードを入力します。f. HSM からパブリックサーバー証明書をコピーし、[Paste the HSM's public server certificate here

(こちらに HSM のパブリックサーバー証明書を貼り付ける)] ボックスに貼り付けます。g. [Create] をクリックします。

204

Amazon Redshift クラスター管理ガイドデータの暗号化

5. 接続が作成されたら、HSM クライアント証明書を作成できます。接続を作成した後すぐに HSM クライアント証明書を作成する場合は、[はい] をクリックし、次の手順を実行します。すぐに作成しない場合は、[今はしない] をクリックして HSM 接続のリストに戻り、プロセスの残りの操作を後で実行します。

HSM クライアント証明書を作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. 左のナビゲーションペインで [セキュリティ] をクリックし、[HSM 証明書] タブをクリックします。3. [HSM クライアント証明書の作成] をクリックします。

205

Amazon Redshift クラスター管理ガイドデータの暗号化

4. [HSM クライアント証明書の作成] ページの [HSM Client Certificate Identifier (HSM クライアント証明書識別子)] ボックスに、このクライアント証明書を識別する名前を入力します。

5. [Next] をクリックします。6. 証明書が作成されると、HSM にキーを登録するための情報を示す確認ページが表示されます。HSM

を設定するアクセス許可がない場合は、HSM 管理者に依頼して次の手順を実行します。

a. コンピュータで新しいテキストファイルを開きます。b. Amazon Redshift console の [HSM クライアント証明書の作成] 確認ページで、パブリックキーを

コピーします。c. さきほど開いたファイルにパブリックキーを貼り付け、確認ページのステップ 1 に表示

されたファイル名で保存します。ファイルには必ず拡張子 .pem を付けてください (例:123456789mykey.pem)。

d. .pem ファイルを HSM にアップロードします。

206

Amazon Redshift クラスター管理ガイドデータの暗号化

e. HSM で、コマンドプロンプトウィンドウを開き、確認ページのステップ 4 に示されたコマンドを実行して、キーを登録します。コマンドの形式は次のとおりです。ここで、ClientName、KeyFilename、PartitionName は実際に必要な値に置き換えます。

client register -client ClientName -hostname KeyFilename

client assignPartition -client ClientName -partition PartitionName

例:

client register -client MyClient -hostname 123456789mykey

client assignPartition -client MyClient -partition MyPartition

f. HSM にキーを登録したら、[次へ] をクリックします。7. HSM クライアント証明書が作成されて登録されたら、以下のボタンのうち 1 つをクリックします。

• [HSM を使用してクラスターを起動]。このオプションは、新しいクラスターを起動するプロセスを開始します。このプロセスの間に、暗号化キーを保存する HSM を選択できます。クラスターの起動プロセスの詳細については、「コンソールを使ったクラスターの管理 (p. 19)」を参照してください。

[HSM 接続を作成]。このオプションは、[HSM 接続を作成] プロセスを開始します。

[証明書の表示]。このオプションは、ナビゲーションペインの [HSM] に戻り、[証明書] タブにクライアント証明書のリストを表示します。

[戻る]。このオプションは、[HSM クライアント証明書の作成] 確認ページに戻ります。

[閉じる]。このオプションは、ナビゲーションペインの [HSM] に戻り、[接続] タブに HSM 接続のリストを表示します。

HSM クライアント証明書のパブリックキーを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [セキュリティ] をクリックし、[HSM 証明書] タブをクリックします。3. パブリックキーを表示する HSM クライアント証明書をクリックします。このキーは、前の手順

「HSM クライアント証明書を作成するには (p. 205)」で HSM に追加したのと同じキーです。

207

Amazon Redshift クラスター管理ガイドデータの暗号化

HSM 接続を削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. 左のナビゲーションペインで [セキュリティ] をクリックし、[HSM 接続] タブをクリックします。3. 削除する HSM 接続をクリックします。4. [HSM 接続の削除] ダイアログボックスで、[削除] をクリックして接続を Amazon Redshift から削除す

るか、[キャンセル] をクリックして接続を削除せずに [HSM 接続] タブに戻ります。

HSM クライアント証明書を削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [セキュリティ] をクリックし、[HSM 証明書] タブを選択します。3. リストで、削除する HSM クライアント証明書をクリックします。4. [HSM 接続の削除] ダイアログボックスで、[削除] をクリックして証明書を Amazon Redshift から削除

するか、[キャンセル] をクリックして証明書を削除せずに [証明書] タブに戻ります。

Amazon Redshift console を使用した暗号化キーの更新

Amazon Redshift console を使用して暗号化キーを更新するには、次の手順を使用します。

暗号化キーを更新するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters (クラスター)] をクリックします。3. リストで、キーを更新するクラスターをクリックします。4. [データベース] をクリックし、[暗号化キーの更新] をクリックします。

208

Amazon Redshift クラスター管理ガイドデータの暗号化

5. キーを更新する場合は [Yes, Rotate Keys (はい、キーを更新します)] を、更新しない場合は [キャンセル] をクリックします。

Note

キーの更新プロセスが完了するまで、クラスターは一時的に使用不能になります。

Amazon Redshift API および AWS CLI を使用したデータベース暗号化の設定

Amazon Redshift API および AWS Command Line Interface (AWS CLI) を使用し、Amazon Redshift データベースの暗号化キーオプションを設定します。データベース暗号化の詳細については、「AmazonRedshift データベース暗号化 (p. 197)」を参照してください。

Amazon Redshift API および AWS CLI を使用して、AWS KMS 暗号化キーを使用するようにAmazon Redshift を設定する

次の Amazon Redshift API アクションを使用して、AWS KMS 暗号化キーを使用するように AmazonRedshift を設定できます。

• CreateCluster• CreateSnapshotCopyGrant• DescribeSnapshotCopyGrants• DeleteSnapshotCopyGrant• DisableSnapshotCopy• EnableSnapshotCopy

次の Amazon Redshift CLI 操作を使用して、AWS KMS 暗号化キーを使用するように Amazon Redshift を設定できます。

• create-cluster• create-snapshot-copy-grant• describe-snapshot-copy-grants• delete-snapshot-copy-grant• disable-snapshot-copy• enable-snapshot-copy

Amazon Redshift API および AWS CLI を使用し、HSM を使用するように Amazon Redshift を設定する

次の Amazon Redshift API アクションを使用して、ハードウェアセキュリティモジュールを管理できます。

• CreateHsmClientCertificate• CreateHsmConfiguration• DeleteHsmClientCertificate• DeleteHsmConfiguration• DescribeHsmClientCertificates• DescribeHsmConfigurations

次の AWS CLI 操作を使用して、ハードウェアセキュリティモジュールを管理できます。

• create-hsm-client-certificate

209

Amazon Redshift クラスター管理ガイドデータの暗号化

• create-hsm-configuration• delete-hsm-client-certificate• delete-hsm-configuration• describe-hsm-client-certificates• describe-hsm-configurations

Amazon Redshift API および AWS CLI を使用した暗号化キーの更新

次の Amazon Redshift API アクションを使用して、暗号化キーを更新できます。

• RotateEncryptionKey

次の AWS CLI 操作を使用して、暗号化キーを更新できます。

• rotate-encryption-key

転送中の暗号化送信中の機密データと整合性データを保護するように環境を設定できます。

Amazon Redshift クラスターと SQL クライアントの間の送信時のデータを JDBC/ODBC 経由で暗号化する

• Java Database Connectivity (JDBC)、Open Database Connectivity (ODBC) 接続を介して SQL クライアントツールから Amazon Redshift クラスターに接続できます。

• Amazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサーバー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。このクライアントは、Amazon Redshift クラスターのリーダーノードに接続されます。詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

• SSL 接続をサポートするために、Amazon Redshift では、「AWS Certificate Manager (ACM)」によって発行された証明書を作成して各クラスターにインストールします。詳細については、「SSL 接続用ACM 証明書への移行 (p. 110)」を参照してください。

• AWS クラウド内の送信中のデータを保護するために、Amazon Redshift は、COPY、UNLOAD、バックアップ、および復元オペレーションを実行する際、ハードウェアによる SSL を使用して、Amazon S3または Amazon DynamoDB と通信します。

Amazon Redshift クラスターと、Amazon S3 または DynamoDB の間の送信時のデータを暗号化する

• Amazon Redshift では、COPY、UNLOAD、バックアップ、および復元オペレーションを実行する際、ハードウェアによる SSL を使用して、Amazon S3 または DynamoDB と通信します。

• Redshift Spectrum では、AWS Key Management Service (KMS) によって使用されるアカウントのデフォルトのマネージドキーによる Amazon S3 サーバー側の暗号化がサポートされています。

• Amazon S3 および AWS KMS を使用して、Amazon Redshift ロードを暗号化します。詳細については、https://aws.amazon.com/blogs/big-data/encrypt-your-amazon-redshift-loads-with-amazon-s3-and-aws-kms/ を参照してください。

AWS CLI/SDK/API クライアントと Amazon Redshift エンドポイントの間で転送されるデータの暗号化と署名

• Amazon Redshift には、送信時のデータを暗号化するための HTTP エンドポイントが用意されています。

210

Amazon Redshift クラスター管理ガイドインターネットトラフィックのプライバシー

• Amazon Redshift への API リクエストの整合性を保護するために、API コールは、署名バージョン 4 の署名プロセス (Sigv4) に従って、発信者によって (X.509 証明書またはお客様の AWS シークレットアクセスキーを使用して) 署名される必要があります。詳細については、「署名バージョン 4 の署名プロセス」を参照してください。

• AWS CLI、またはいずれかの AWS SDK を使用して AWS にリクエストを送信します。これらのツールで、設定時に指定されたアクセスキーを使用して自動的にリクエストに署名されます。

キーの管理キーでデータを保護するように環境を設定することができます。

• キー管理のために Amazon Redshift は AWS KMS (AWS KMS) と統合されます。AWS KMS では、エンベロープ暗号化が使用されます。詳細については、「エンベロープ暗号化」を参照してください。

• 暗号化キーが AWS KMS で管理されている場合、Amazon Redshift では、4 層のキーベースの暗号化アーキテクチャを使用します。これらのキーは、ランダムに生成された AES-256 データ暗号化キー、データベースキー、クラスターキー、マスターキーから構成されます。詳細については、「AmazonRedshift で AWS KMS を使用する方法」を参照してください。

• 独自のカスタマーマスターキー (CMK) は、KMS で作成できます。詳細については、「キーの作成」を参照してください。

• また、新しい CMK の独自のキーマテリアルをインポートすることもできます。詳細については、「AWS Key Management Service (AWS KMS) でのキーマテリアルのインポート」を参照してください。

• Amazon Redshift では、外部のハードウェアセキュリティモジュール (HSM) を使用した暗号化キーの管理がサポートされています。HSM は、オンプレミスまたは AWS CloudHSM です。HSM を使用するときは、クライアントとサーバーの証明書を使用して、Amazon Redshift と HSM との間で信頼された接続を設定する必要があります。詳細については、「Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化 (p. 199)」を参照してください。AWS CloudHSM の詳細については、「AWS CloudHSM とは」を参照してください。

• 暗号化したクラスターの暗号化キーを更新することができます。詳細については、「Amazon Redshiftでの暗号化キーの更新 (p. 200)」を参照してください。

インターネットトラフィックのプライバシーAmazon Redshift と、企業ネットワークのクライアントおよびアプリケーションの間でトラフィックをルーティングするには:

• Amazon VPC と企業ネットワークの間でプライベート接続をセットアップします。インターネット経由の IPsec VPN 接続、または AWS Direct Connect 接続を使用したプライベートな物理接続を設定します。AWS Direct Connect を使用すると、オンプレミスネットワークから Amazon VPC に直接接続するためのプライベート仮想インターフェースを確立できます。お客様のネットワークと VPC とをプライベートの高帯域幅ネットワークで接続することで、これが可能となります。複数の仮想インターフェイスを使用するため、ネットワーク分離が維持しながら、複数の VPC へのプライベート接続も確立できます。詳細については、「AWS Site-to-Site VPN とは?」および「AWS Direct Connect とは?」を参照してください。

VPC の Amazon Redshift クラスターと、同じ AWS リージョン内の Amazon S3 バケットの間でトラフィックをルーティングするには、以下の手順を実行します。

• ETL ロードまたはアンロードから Amazon S3 データにプライベートにアクセスするように Amazon S3プライベート VPC エンドポイントをセットアップします。詳細については、「Amazon S3 におけるエンドポイント」を参照してください。

• ターゲットの Amazon S3 VPC エンドポイントを指定して、Amazon Redshift クラスターの [拡張された VPC のルーティング] を有効にします。Amazon Redshift COPY、UNLOAD、または CREATE

211

Amazon Redshift クラスター管理ガイドIdentity and Access Management

LIBRARY コマンドによって生成されたトラフィックは、プライベートエンドポイントを介してルーティングされます。詳細については、「拡張された VPC ルーティングの有効化 (p. 130)」を参照してください。

Amazon Redshift での Identity and AccessManagement

Amazon Redshift へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必要です。これらの認証情報には、Amazon Redshift クラスターなどの AWS リソースへのアクセス権限が必要です。次のセクションでは、AWS Identity and Access Management (IAM) と Amazon Redshift を使用してリソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

• 認証 (p. 212)• アクセスコントロール (p. 213)

認証AWS には、次のタイプのアイデンティティでアクセスできます。

• AWS アカウントのルートユーザー – AWS アカウントを初めて作成する場合は、このアカウントのすべての AWS サービスとリソースに対して完全なアクセス権限を持つシングルサインインアイデンティティで始めます。このアイデンティティは AWS アカウント ルートユーザー と呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでのサインインによりアクセスします。強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためだけに ルートユーザー を使用するというベストプラクティスに従います。その後、ルートユーザー認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。

• IAM ユーザー – IAM ユーザーは、特定のカスタム権限 (たとえば、Amazon Redshift で a cluster を作成するアクセス権限) を持つ AWS アカウント内のアイデンティティです。IAM のユーザー名とパスワードを使用して、AWS マネジメントコンソール、AWS ディスカッションフォーラム、AWS Support Centerなどのセキュリティ保護された AWS ウェブページにサインインできます。

ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。いくつかのSDK の 1 つまたは AWS Command Line Interface (CLI) を使ってプログラムで AWS サービスにアクセスするときに、これらのキーを使用できます。SDK と CLI ツールでは、アクセスキーを使用してリクエストが暗号で署名されます。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。Amazon Redshift supports では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、『AWSGeneral Reference』の「署名バージョン 4 の署名プロセス」を参照してください。

• IAM ロール – IAM ロールは、特定のアクセス権限を持ち、アカウントで作成できる IAM アイデンティティです。IAM ロールは、AWS で許可/禁止する操作を決めるアクセス権限ポリシーが関連付けられている AWS アイデンティティであるという点で、IAM ユーザーと似ています。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。 IAM ロールと一時的な認証情報は、次の状況で役立ちます。• フェデレーティッドユーザーアクセス – IAM ユーザーを作成する代わりに、AWS Directory Service、

エンタープライズユーザーディレクトリ、またはウェブ ID プロバイダーに既存のアイデンティティを使用できます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。AWS では、IDプロバイダーを通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割

212

Amazon Redshift クラスター管理ガイドアクセスコントロール

り当てます。フェデレーティッドユーザーの詳細については、IAM ユーザーガイドの「フェデレーティッドユーザーとロール」を参照してください。

• AWS のサービスのアクセス – サービスロールは、サービスがお客様に代わってお客様のアカウントでアクションを実行するために引き受ける IAM ロールです。一部の AWS のサービス環境を設定するときに、サービスが引き受けるロールを定義する必要があります。このサービスロールには、サービスが必要とする AWS のリソースにサービスがアクセスするために必要なすべてのアクセス権限を含める必要があります。サービスロールはサービスによって異なりますが、多くのサービスロールでは、そのサービスの文書化された要件を満たしている限り、アクセス権限を選択することができます。サービスロールは、お客様のアカウント内のみでアクセスを提供します。他のアカウントのサービスへのアクセス権を付与するためにサービスロールを使用することはできません。IAM 内部からロールを作成、修正、削除できます。たとえば、Amazon Redshift がお客様に代わって Amazon S3 バケットにアクセスし、バケットからデータを Amazon Redshift クラスターにロードすることを許可するロールを作成できます。詳細については、IAM ユーザーガイドのAWS サービスにアクセス権限を委任するロールの作成を参照してください。

• Amazon EC2 で実行中のアプリケーション – IAM ロールを使用して、EC2 インスタンスで実行され、AWS CLI または AWS API リクエストを作成しているアプリケーションの一時的な認証情報を管理できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、IAM ユーザーガイドの「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス権限を付与する」を参照してください。

アクセスコントロール有効な認証情報があればリクエストを認証できますが、Amazon Redshift リソースを作成したり、それらのリソースにアクセスしたりするには、そのためのアクセス権限が必要です。たとえば、AmazonRedshift クラスターの作成、スナップショットの作成、イベントサブスクリプションの追加などにはアクセス権限が必要です。

以下のセクションでは、Amazon Redshift のアクセス権限を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。

• Amazon Redshift リソースへのアクセス権限の管理の概要 (p. 213)• Amazon Redshift のアイデンティティベースのポリシー (IAM ポリシー) の使用 (p. 218)

Amazon Redshift リソースへのアクセス権限の管理の概要すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス許可ポリシーを IAMアイデンティティ (ユーザー、グループ、ロール)にアタッチできます。一部のサービス(AWS Lambdaなど) では、アクセス許可ポリシーをリソースにアタッチすることもできます。

Note

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

213

Amazon Redshift クラスター管理ガイドアクセス管理の概要

Amazon Redshift リソースおよびオペレーションAmazon Redshift のプライマリリソースはクラスターです。Amazon Redshift は、スナップショット、パラメータグループ、イベントサブスクリプションなどのプライマリリソースとともに使用できるその他のリソースをサポートします。これらはサブリソースと呼ばれます。

これらのリソースとサブリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

リソースタイプ ARN 形式

クラスター arn:aws:redshift:region:account-id:cluster:cluster-name

クラスターデータベース

arn:aws:redshift:region:account-id:dbname:cluster-name/database-name

クラスターデータベースユーザー

arn:aws:redshift:region:account-id:dbuser:cluster-name/database-user-name

クラスターデータベースユーザーグループ

arn:aws:redshift:region:account-id:dbgroup:cluster-name/database-group-name

クラスターパラメータグループ

arn:aws:redshift:region:account-id:parametergroup:parameter-group-name

クラスターセキュリティグループ

arn:aws:redshift:region:account-id:securitygroup:security-group-name

CIDR/IP アドレス arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/cidrip/IP-range

EC2 セキュリティグループ

arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/ec2securitygroup/owner/EC2-security-group-id

イベントサブスクリプション

arn:aws:redshift:region:account-id:eventsubscription:event-subscription-name

ハードウェアセキュリティモジュール (HSM)のクライアント証明書

arn:aws:redshift:region:account-id:hsmclientcertificate:HSM-client-certificate-id

HSM の設定 arn:aws:redshift:region:account-id:hsmconfiguration:HSM-configuration-id

パラメータグループ arn:aws:redshift:region:account-id:parametergroup:parameter-group-name

スナップショット arn:aws:redshift:region:account-id:snapshot:cluster-name/snapshot-name

スナップショットコピー権限

arn:aws:redshift:region:account-id:snapshotcopygrant:snapshot-copy-grant-name

サブネットグループ arn:aws:redshift:region:account-id:subnetgroup:subnet-group-name

214

Amazon Redshift クラスター管理ガイドアクセス管理の概要

Amazon Redshift には、Amazon Redshift リソースを操作するための一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、「Amazon Redshift API のアクセス権限リファレンス (p. 226)」を参照してください。

リソース所有権についてリソース所有者は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ(ルートアカウント、IAM ユーザー、または IAMロール)の AWS アカウントです。以下の例では、このしくみを示しています。

• AWS アカウントの root アカウントの認証情報を使用して DB クラスターを作成する場合、AWS アカウントは Amazon Redshift リソースの所有者です。

• AWS アカウントに IAM ユーザーを作成し、そのユーザーに Amazon Redshift リソースを作成するアクセス権限を付与する場合、そのユーザーは Amazon Redshift リソースを作成できます。ただし、ユーザーが属する AWS アカウントは Amazon Redshift リソースを所有しています。

• Amazon Redshift リソースを作成するためのアクセス許可を持つ AWS アカウントに IAM ロールを作成すると、ロールを引き受けることのできるいずれのユーザーも Amazon Redshift リソースを作成できます。Amazon Redshift リソースを所有しているのは、このロールが属する AWS アカウントです。

リソースへのアクセスの管理アクセスポリシーでは、誰が何にアクセスできるかを記述します。 以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

Note

このセクションでは、Amazon Redshift のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。詳細な IAM ドキュメントについては、IAM ユーザーガイドの「IAM とは」を参照してください。IAM ポリシー構文の詳細および説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してください。

IAM アイデンティティにアタッチされたポリシーはアイデンティティベースのポリシー (IAM ポリシー)と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。AmazonRedshift はアイデンティティベースのポリシー (IAM ポリシー) のみをサポートします。

アイデンティティベースのポリシー (IAM ポリシー)

ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。

• アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする – アカウント管理者は特定のユーザーに関連付けられるアクセス権限ポリシーを使用できます。そうしたポリシーによって、そのユーザーがクラスターなどの Amazon Redshift リソースを作成するためのアクセス権限が付与されます。

• アクセス許可ポリシーをロールにアタッチする (クロスアカウントのアクセス許可を付与する) – アイデンティティベースのアクセス許可ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス許可を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロー

ルに権限ポリシーをアタッチします。2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別する

ロールに、信頼ポリシーをアタッチします。3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるように

なります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許

215

Amazon Redshift クラスター管理ガイドアクセス管理の概要

可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。

IAM を使用したアクセス許可の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照してください。

次は、ユーザーが AWS アカウントで Amazon Redshift クラスターを作成、削除、変更、および再起動することを許可するポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowManageClusters", "Effect":"Allow", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource":"*" } ]}

Amazon Redshift でアイデンティティベースのポリシーを使用する詳細については、「Amazon Redshiftのアイデンティティベースのポリシー (IAM ポリシー) の使用 (p. 218)」を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、IAM ユーザーガイド の「アイデンティティ(ユーザー、グループ、ロール)」を参照してください。

リソースベースのポリシー

Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理できます。Amazon Redshift はリソースベースのポリシーをサポートしていません。 

ポリシー要素の指定 : アクション、効果、リソース、プリンシパルサービスは、Amazon Redshift リソースごとに (Amazon Redshift リソースおよびオペレーション (p. 214) を参照)、一連の API オペレーションを定義します (アクションを参照)。これらの API オペレーションのアクセス権限を付与するために、Amazon Redshift は、ポリシー内に指定できる一連のアクションを定義します。1 つの API オペレーションの実行で、複数のアクションのアクセス権限が必要になる場合があります。

以下は、基本的なポリシーの要素です。

• リソース – ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「Amazon Redshift リソースおよびオペレーション (p. 214)」を参照してください。

• アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、redshift:DescribeClusters アクセス許可は、Amazon RedshiftDescribeClusters オペレーションの実行をユーザーに許可します。

• 効果 – ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。—リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否され

216

Amazon Redshift クラスター管理ガイドアクセス管理の概要

ます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

• プリンシパル – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、リソースに対するアクセス権限 (リソースベースのポリシーにのみ適用) が付与されるエンティティ (ユーザー、アカウント、サービスなど) を指定します。Amazon Redshift はリソースベースのポリシーをサポートしていません。

IAM ポリシーの構文と記述の詳細については、IAM ユーザーガイド の「AWS IAM ポリシーの参照」を参照してください。

すべての Amazon Redshift API アクションとそれらが適用されるリソースを示す表については、「Amazon Redshift API のアクセス権限リファレンス (p. 226)」を参照してください。

ポリシーでの条件の指定アクセス権限を付与するとき、アクセスポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。アクセスポリシー言語での条件の指定の詳細については、IAM ユーザーガイド の「IAM JSON ポリシーエレメント: Condition」を参照してください。

アクセス権限ポリシーが適用される条件を指定するには、IAM アクセス権限ポリシーに Condition 要素を含めます。たとえば、redshift:CreateCluster アクションを使用してクラスターを作成することをユーザーに許可するポリシーを作成します。その後、特定のリージョンでのクラスターの作成のみにそのアクションを制限する Condition 要素を追加できます。詳細については、「詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用 (p. 217)」を参照してください。すべての条件キー値とそれらが適用される Amazon Redshift アクションとリソースを示すリストについては、「AmazonRedshift API のアクセス権限リファレンス (p. 226)」を参照してください。

詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用

Amazon Redshift では、2 つの条件キーを使用し、リソースのタグに基づいてリソースへのアクセスを制限できます。Amazon Redshift の一般的な条件キーは以下のとおりです。

条件キー 説明

redshift:RequestTag リソースの作成時にはタグのキー (名前) と値を含める必要があります。redshift:RequestTag 条件キーは、リソースを作成する AmazonRedshift の API アクションにのみ適用されます。

redshift:ResourceTag特定のタグのキーと値に基づいてリソースへのユーザーアクセスを制限します。

タグの詳細については、「タグ付けの概要 (p. 353)」を参照してください。

redshift:RequestTag および redshift:ResourceTag 条件キーをサポートする API アクションのリストについては、「Amazon Redshift API のアクセス権限リファレンス (p. 226)」を参照してください。

次の条件キーは Amazon Redshift の GetClusterCredentials アクションで使用できます。

条件キー 説明

redshift:DurationSeconds期間に対して指定できる秒数を制限します。

redshift:DbName 指定できるデータベース名を制限します。

217

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

条件キー 説明

redshift:DbUser 指定できるデータベースユーザー名を制限します。

例 1: redshift:ResourceTag 条件キーを使用してアクセスを制限する

次の IAM ポリシーを使用すると、us-west-2 リージョンで特定の AWS アカウントの Amazon Redshiftクラスターにタグ (名前が environment、値が test) が含まれている場合に限り、クラスターを変更することが許可されます。

{ "Version": "2012-10-17", "Statement": { "Sid":"AllowModifyTestCluster", "Effect": "Allow", "Action": "redshift:ModifyCluster", "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*" "Condition":{"StringEquals":{"redshift:ResourceTag/environment":"test"} }}

例 2: redshift:RequestTag 条件キーを使用してアクセスを制限する

次の IAM ポリシーを使用すると、クラスターを作成するコマンドにタグ (名前が usage、値がproduction) が含まれている場合に限り、Amazon Redshift クラスターを作成することが許可されます。

{ "Version": "2012-10-17", "Statement": { "Sid":"AllowCreateProductionCluster", "Effect": "Allow", "Action": "redshift:CreateCluster", "Resource": "*" "Condition":{"StringEquals":{"redshift:RequestTag/usage":"production"} }}

Amazon Redshift のアイデンティティベースのポリシー (IAM ポリシー) の使用このトピックでは、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、ロール) へのアクセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。

Important

初めに、Amazon Redshift リソースへのアクセスを管理するための基本概念と使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「Amazon Redshift リソースへのアクセス権限の管理の概要 (p. 213)」を参照してください。

以下に示しているのは、アクセス権限ポリシーの例です。このポリシーでは、ユーザーはすべてのクラスターを作成、削除、変更、再起動できます。さらに、クラスター識別子が production で始まるクラスターを削除または変更するアクセス権限が拒否されます。

{ "Version": "2012-10-17", "Statement": [ {

218

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

"Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ]}

このポリシーには以下の 2 つのステートメントがあります。

• 最初のステートメントでは、ユーザーがクラスターを作成、削除、変更し、および再起動するユーザーのアクセス権限を付与します。ステートメントはワイルドカード文字 (*) を、Resource 値として指定し、ポリシーをルート AWS アカウントが所有するすべての Amazon Redshift リソースに適用できるようにします。

• 2 番目のステートメントでは、クラスターの削除または変更するアクセス権限を拒否します。ステートメントではワイルドカード文字 (*) が含まれる Resource 値のためにクラスター Amazon リソースネーム (ARN) を指定します。その結果、このステートメントはクラスター識別子が production で始まるルート AWS アカウントが所有するすべての Amazon Redshift クラスターに適用されます。

Redshift Spectrum を使用する上で必要なアクセス許可Redshift Spectrum には、リソースにアクセスするためのその他の AWS のサービスへのアクセス許可が必要です。Redshift Spectrum の IAM ポリシーのアクセス許可の詳細については、Amazon RedshiftDatabase Developer Guide の「Amazon Redshift Spectrum の IAM ポリシー」を参照してください。

Amazon Redshift コンソールを使用するために必要なアクセス権限Amazon Redshift コンソールを使用して作業するユーザーに対しては、ユーザーに AWS アカウントのAmazon Redshift リソースの記述を許可する最小限のアクセス権限のセットが必要です。それらのアクセス権限により、Amazon EC2 セキュリティやネットワーク情報など、その他の関連情報の記述も許可される必要があります。

これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。「Amazon Redshift での AWS 管理 (事前定義) ポリシー (p. 220)」で説明されているとおり、ユーザーが Amazon Redshift コンソールを使用できること、および、AmazonRedshiftReadOnlyAccess 管理ポリシーがユーザーにアタッチされていることを確認してください。

ユーザーに Amazon Redshift コンソールのクエリエディタへのアクセス権を付与するには、AmazonRedshiftQueryEditor 管理ポリシーをアタッチします。

219

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

AWS CLI または Amazon Redshift API のみを呼び出すユーザーには、最小限のコンソールアクセス権限を付与する必要はありません。

GetClusterCredentials のリソースポリシーJDBC または ODBC 接続と IAM データベース認証情報を使用してクラスターデータベースに接続するか、必要な GetClusterCredentials アクションをプログラムで呼び出すには、最小限のアクセス権限が必要です。少なくとも、redshift:GetClusterCredentials アクションを呼び出すアクセス許可と、dbuser リソースへのアクセス権が必要です。

JDBC または ODBC 接続を使用する場合、server および port の代わりに cluster_id および regionを指定できますが、そのためには、ポリシーで redshift:DescribeClusters アクションと clusterリソースへのアクセス権を許可する必要があります。

オプションパラメータ Autocreate、DbGroups、および DbName で GetClusterCredentials を呼び出す場合は、アクションを許可し、次の表にリストされているリソースへのアクセスも許可する必要もあります。

GetClusterCredentialsパラメータ

アクション

リソース

Autocreate redshift:CreateClusterUserdbuser

DbGroups redshift:JoinGroupdbgroup

DbName NA dbname

リソースの詳細については、「Amazon Redshift リソースおよびオペレーション (p. 214)」を参照してください。

また、次の条件をポリシーに含めることもできます。

• redshift:DurationSeconds

• redshift:DbName

• redshift:DbUser

条件の詳細については、「ポリシーでの条件の指定 (p. 217)」を参照してください

Amazon Redshift での AWS 管理 (事前定義) ポリシーAWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的ユースケースに対応します。管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすることができます。詳細については、『IAMユーザーガイド』の「AWS 管理ポリシー」を参照してください。

アカウントのユーザーにアタッチ可能な以下の AWS 管理ポリシーは、Amazon Redshift に固有のものです。

• AmazonRedshiftReadOnlyAccess – AWS アカウントのすべての Amazon Redshift リソースへの読み取り専用アクセスを許可します。

• AmazonRedshiftFullAccess – AWS アカウントのすべての Amazon Redshift リソースへのフルアクセスを許可します。

• AmazonRedshiftQueryEditor – Amazon Redshift コンソールのクエリエディタへのフルアクセスを付与します。

220

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

独自のカスタム IAM ポリシーを作成して、Amazon Redshift API アクションとリソースのためのアクセス権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス権限が必要な IAM ユーザーまたはグループにアタッチできます。

お客様が管理するポリシーの例このセクションでは、さまざまな Amazon Redshift アクションのアクセス権限を付与するユーザーポリシー例を示しています。これらのポリシーは、Amazon Redshift API、AWS SDK、または AWS CLI を使用しているときに機能します。

Note

すべての例で、米国西部 (オレゴン) リージョン (us-west-2) を使用し、架空のアカウント ID を含めています。

例 1: ユーザーにすべての Amazon Redshift アクションおよびリソースへの完全アクセスを許可する

次のポリシーでは、すべてのリソースですべての Amazon Redshift アクションにアクセスできます。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ]}

Action 要素の値 redshift:* は、Amazon Redshift のすべてのアクションを示します。

例 2: 一連の Amazon Redshift アクションへのユーザーアクセスを拒否する

デフォルトでは、すべてのアクセス権が拒否されます。ただし、特定のアクションまたは一連のアクションへのアクセスを明示的に拒否しなければならない場合もあります。次のポリシーでは、すべてのAmazon Redshift アクションへのアクセスが許可され、名前が Delete で始まる Amazon Redshift アクションへのアクセスが明示的に拒否されます。このポリシーは、us-west-2 のすべての Amazon Redshiftリソースに適用されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ],

221

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

"Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ]}

例 3: ユーザーがクラスターを管理することを許可する

次のポリシーでは、ユーザーはすべてのクラスターを作成、削除、変更、再起動できます。さらに、名前が protected で始まるクラスターを削除するアクセス権限が拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ]}

例 4: ユーザーにスナップショットアクセスを許可し、取り消す

次のポリシーでは、ユーザー (例: ユーザー A) に次の操作を許可します。

• shared というクラスターから作成されたスナップショットへのアクセスを許可します。• shared クラスターから作成されたスナップショット (スナップショット名の先頭が revokable) のス

ナップショットアクセスを取り消します。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow"

222

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

}, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ]}

ユーザー A がスナップショットへのアクセスをユーザー B に許可した場合、スナップショットからクラスターを復元できるように、ユーザー B には次のようなポリシーを与える必要があります。次のポリシーでは、ユーザー B はスナップショットを表現したり、スナップショットから復元したり、クラスターを作成したりできます。これらのクラスター名の先頭は from-other-account にする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ]}

例 5: クラスタースナップショットのコピーとスナップショットからのクラスターの復元をユーザーに許可する次のポリシーでは、ユーザーは big-cluster-1 という名前のクラスターから作成したスナップショットをコピーし、名前が snapshot-for-restore で始まるスナップショットを復元できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*"

223

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ]}

例 6: ユーザーの Amazon Redshift および関連する AWS のサービスの一般的なアクションとリソースへのアクセスを許可する

次のポリシー例は、Amazon Redshift、Amazon Simple Notification Service (Amazon SNS)、AmazonCloudWatch のすべてのアクションとリソースへのアクセスを許可します。アカウントにおける関連するAmazon EC2 リソースでの指定されたアクションも許可します。

Note

リソースレベルのアクセス権限は、このサンプルポリシーで指定された Amazon EC2 アクションではサポートされません。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, {

224

Amazon Redshift クラスター管理ガイドアイデンティティベースのポリシー (IAM ポリシー) を使用する

"Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ]}

GetClusterCredentials を使用するポリシーの例以下のポリシーでは、これらのサンプルパラメータの値を使用します。

• サービス対象: us-west-2• AWS アカウント: 123456789012• クラスター名: examplecluster

次のポリシーでは、GetCredentials、CreateClusterUser および JoinGroup アクションが有効になります。このポリシーでは条件キーを使用して、AWS ユーザー ID が GetClusterCredentialsに一致する場合のみ、CreateClusterUser および "AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" アクションが許可されます。IAM アクセスは、"testdb"データベース対してのみリクエストされます。また、このポリシーは、ユーザーが "common_group" という名前のグループに参加することを許可します。

{"Version": "2012-10-17", "Statement": [ { "Sid": "GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser"

225

Amazon Redshift クラスター管理ガイドAmazon Redshift API のアクセス権限リファレンス

], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ]} }}

Amazon Redshift API のアクセス権限リファレンスアクセスコントロール (p. 213) をセットアップし、IAM アイデンティティにアタッチできるアクセス権限ポリシー (アイデンティティベースのポリシー) を作成するときは、以下のテーブルをリファレンスとして使用できます。、各 Amazon Redshift API オペレーションとそれを実行するためのアクセス権限を付与できる対応するアクションが含まれます。また、アクセス権限を付与できる AWS リソースや、きめ細かなアクセスコントロールに含めることができる条件キーも含まれます(条件の詳細については、詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用 (p. 217)を参照してください)。 ポリシーの [Action] フィールドにアクションを、ポリシーの [Resource] フィールドにリソース値を、ポリシーの[Condition] フィールドに条件を指定します。

Note

アクションを指定するには、API オペレーション名 (redshift: など) の前にredshift:CreateCluster プレフィックスを使用します。

Amazon Redshift では、Amazon Redshift API をベースとしない以下のアクションもサポートされます。

• redshift:ViewQueriesInConsole アクションは、ユーザーが Amazon Redshift console コンソールの [クラスター] セクションの [クエリ] タブでクエリを参照できるかどうかを制御します。

• redshift:CancelQuerySession アクションは、ユーザーが Amazon Redshift console の [クラスター] セクションから実行中のクエリとロードを終了できるかどうかを制御します。

• 次のアクションは、Amazon Redshift コンソールのクエリエディタへのアクセスを制御します。• redshift:ListSchemas

• redshift:ListTables

• redshift:ListDatabases

• redshift:ExecuteQuery

• redshift:FetchResults

• redshift:CancelQuery

• redshift:DescribeQuery

• redshift:DescribeTable

226

Amazon Redshift クラスター管理ガイドサービスにリンクされたロールの使用

• redshift:ViewQueriesFromConsole

• redshift:ListSavedQueries

• redshift:CreateSavedQuery

• redshift:DeleteSavedQueries

• redshift:ModifySavedQuery

Amazon Redshift のサービスにリンクされたロールの使用Amazon Redshift は、AWS Identity and Access Management (IAM)サービスにリンクされたロールを使用します。サービスにリンクされたロールは、Amazon Redshift に直接リンクされた一意のタイプのIAM ロールです。サービスにリンクされたロールは、Amazon Redshift による事前定義済みのロールであり、Amazon Redshift cluster に代わってサービスから AWS サービスを呼び出すために必要なすべてのアクセス権限を備えています。

サービスにリンクされたロールを使用することで、必要なアクセス権限を手動で追加する必要がなくなるため、Amazon Redshift の設定が簡単になります。このロールは、Amazon Redshift ユースケースにリンクされており、事前定義されたアクセス許可があります。Amazon Redshift のみがロールを引き受けることができ、サービスにリンクされたロールのみが事前定義されたアクセス権限のポリシーを使用できます。クラスターをはじめて作成する場合は、Amazon Redshift によって、サービスにリンクされたロールがアカウントに作成されます。このサービスにリンクされたロールを削除するには、アカウントのAmazon Redshift クラスターをすべて削除する必要があります。これにより、不注意で Amazon Redshiftリソースへのアクセスに必要なアクセス許可の削除が防止され、このリソースは保護されます。

Amazon Redshift は、サービスを利用できるすべてのリージョンで、サービスにリンクされたロールの使用をサポートします。詳細については、「AWS Regions and Endpoints」を参照してください。

サービスにリンクされたロールをサポートする他のサービスについては、「IAM と連携する AWS サービス」を参照の上、「サービスにリンクされたロール」列が「はい」になっているサービスを検索してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

Amazon Redshift のサービスにリンクされたロールのアクセス許可Amazon Redshift では、サービスにリンクされたロールとして AWSServiceRoleForRedshift – AllowsAmazon Redshift to call AWS services on your behalf を使用します。

AWSServiceRoleForRedshift サービスにリンクされたロールは、ロールを引き受ける上でredshift.amazonaws.com のみを信頼します。

AWSServiceRoleForRedshift サービスにリンクされたロールのアクセス権限ポリシーでは、AmazonRedshift はすべての関連リソースで以下のことを実行することができます。

• ec2:DescribeVpcs

• ec2:DescribeSubnets

• ec2:DescribeNetworkInterfaces

• ec2:DescribeAddress

• ec2:AssociateAddress

• ec2:DisassociateAddress

• ec2:CreateNetworkInterface

• ec2:DeleteNetworkInterface

227

Amazon Redshift クラスター管理ガイドサービスにリンクされたロールの使用

• ec2:ModifyNetworkInterfaceAttribute

IAM エンティティが AWSServiceRoleForRedshift サービスにリンクされたロールを作成することを許可するには

以下のポリシーステートメントを IAM エンティティのアクセス許可に追加します。

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}}}

IAM エンティティが AWSServiceRoleForRedshift サービスにリンクされたロールを削除することを許可するには

以下のポリシーステートメントを IAM エンティティのアクセス許可に追加します。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}}}

または、AWS 管理ポリシーを使用して、Amazon Redshift にフルアクセスを付与することもできます。

のサービスにリンクされたロールの作成Amazon RedshiftAWSServiceRoleForRedshift サービスにリンクされたロールを手動で作成する必要はありません。Amazon Redshift は、お客様のサービスにリンクされたロールを作成します。AWSServiceRoleForRedshift サービスにリンクされたロールがアカウントより削除されている場合は、新しい Amazon Redshift クラスターを起動すると、Amazon Redshift によってロールが作成されます。

Important

September 18, 2017 以前に Amazon Redshift サービスを使用していた場合は、サービスにリンクされたロールのサポートが開始された時点で、Amazon Redshift によってAWSServiceRoleForRedshift ロールがアカウントに作成されています。詳細については、「IAMアカウントに新しいロールが表示される」を参照してください。

Amazon Redshift のサービスにリンクされたロールの編集Amazon Redshift では、AWSServiceRoleForRedshift サービスにリンクされたロールを編集することはできません。サービスにリンクされたロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、ロールの説明は IAM コンソール、AWS コマンドラインインターフェイス (AWS CLI)、または IAM API を使用して編集することができます。詳細については、IAM ユーザーガイド の「ロールの修正」を参照してください。

228

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

Amazon Redshift のサービスにリンクされたロールの削除サービスにリンクされたロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。

アカウントのサービスにリンクされたロールを削除するには、アカウントのクラスターをシャットダウンし、削除する必要があります。詳細については、「クラスターのシャットダウンと削除 (p. 17)」を参照してください。

サービスにリンクされたロールは、IAM コンソール、AWS CLI、または IAM API を使用して削除することができます。詳細については、『IAM ユーザーガイド』の「サービスにリンクされたロールの削除」を参照してください。

IAM 認証を使用したデータベースユーザー認証情報の生成AWS Identity and Access Management (IAM) のアクセス権限ポリシーによって許可されるアクセス権限に基づいて一時的データベース認証情報を生成して、Amazon Redshift データベースに対するユーザーのアクセス権を管理することができます。

一般的に、Amazon Redshift データベースユーザーは、データベースのユーザー名とパスワードを提供してデータベースにログオンします。Amazon Redshift データベースでユーザー名とパスワードを管理する代わりに、ユーザー認証情報の作成をユーザーに許可し、IAM 認証情報に基づいてデータベースにログオンするようにシステムを設定できます。ユーザーが SAML 2.0 互換 ID プロバイダを通じ、フェデレーテッドシングルサインオン (SSO) を使用してサインオンできるようにシステムを設定することもできます。

トピック• 概要 (p. 229)• IAM ユーザー認証情報の作成 (p. 230)• IAM 認証情報の提供オプション (p. 241)• データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)• Amazon Redshift CLI または API を使用した IAM データベース認証情報の生成 (p. 245)

概要Amazon Redshift は、一時的データベースユーザー認証情報を生成する GetClusterCredentials API アクションを提供します。GetClusterCredentials アクションを呼び出すプロセスを管理する AmazonRedshift、JDBC、または ODBC ドライバーで SQL クライアントを設定できます。これは、データベースのユーザー認証情報を取得し、SQL クライアントと Amazon Redshift データベース間の接続を確立することにより行われます。また、データベースアプリケーションを使用してプログラムでGetClusterCredentials アクションを呼び出し、データベースのユーザー認証情報を取得して、データベースに接続することもできます。

既に AWS の外部でユーザー ID を管理している場合は、SAML 2.0 互換 ID プロバイダ (IdP) を使用してAmazon Redshift リソースへのアクセスを管理できます。IAM ロールへのフェデレーティッドユーザーアクセスを許可するよう IdP を設定します。この IAM ロールにより、一時的データベース認証情報を生成し、Amazon Redshift データベースにログオンできます。

SQL クライアントには、自動的に GetClusterCredentials アクションを呼び出すためのアクセス許可が必要です。IAM ロールを作成し、GetClusterCredentials アクションおよび関連アクションへのアクセスを付与または制限する IAM アクセス権限ポリシーをアタッチして、それらのアクセス許可を管理します。

このポリシーでは、Amazon Redshift クラスター、データベース、データベースユーザー名、ユーザーグループ名など特定のリソースへのアクセスが付与または制限されます。

229

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

Note

Amazon Redshift、JDBC、または ODBC ドライバーを使用して GetClusterCredentials アクションを呼び出し、データベースにログオンするプロセスを管理することをお勧めします。分かりやすいように、このトピック全体で JDBC または ODBC ドライバーとともに SQL クライアントを使用するものと仮定します。GetClusterCredentials アクションまたは並列 get-cluster-credentialsCLI アクションの使用の具体的な詳細と例については、「GetClusterCredentials」および「get-cluster-credentials」を参照してください。

IAM ユーザー認証情報の作成このセクションでは、IAM ベースの一時的データベースユーザー認証情報を生成し、新しい認証情報を使用してデータベースにログオンするようシステムを設定するためのステップを示します。

プロセスのおおまかな流れは次のとおりです。

1. ステップ 1: IAM シングルサインオン (SSO) アクセス用の IAM ロールを作成する (p. 230)

(オプション) IAM 認証と、PingFederate、Okta、ADFS などのサードパーティー認証プロバイダ (IdP)を統合して、Amazon Redshift データベースへのアクセスをユーザーに認証できます。

2. ステップ 2: IdP の SAML アサーションを設定する (p. 231)

(オプション) IdP を使って IAM 認証を使用するには、組織のユーザーまたはグループを IAM ロールにマッピングするクレームルールを IdP アプリケーションで定義する必要があります。オプションで、属性要素を含めて GetClusterCredentials パラメータを設定できます。

3. ステップ 3: GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールまたはユーザーを作成する (p. 232)

SQL クライアントアプリケーションは、GetClusterCredentials アクションを呼び出すときに IAM ロールを引き受けます。ID プロバイダアクセス用の IAM ロールを作成したら、そのロールに必要なアクセス権限を追加できます。

4. ステップ 4: データベースユーザーとデータベースグループを作成する (p. 233)

(オプション) デフォルトでは、GetClusterCredentials は既存のユーザーの認証情報を返します。ユーザー名がない場合、GetClusterCredentials で新しいユーザーを作成することもできます。ログオン時にユーザーが参加するユーザーグループを指定することもできます。デフォルトでは、データベースユーザーは PUBLIC グループに参加します。

5. ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する (p. 234)

Amazon Redshift データベースに接続するには、Amazon Redshift JDBC または ODBC ドライバーを使用するよう SQL クライアントを設定します。

ステップ 1: IAM シングルサインオン (SSO) アクセス用の IAM ロールを作成する

シングルサインオンアクセスに ID プロバイダを利用しない場合は、このステップを省略できます。

すでに AWS の外部でユーザー ID を管理している場合、IAM 認証と、ADFS、PingFederate、Okta などのサードパーティーの SAML-2.0 ID プロバイダ (IdP) を統合して、Amazon Redshift データベースへのアクセスをユーザーに認証できます。

詳細については、AWS IAM ユーザーガイドの「ID プロバイダーとフェデレーション」を参照してください。

Amazon Redshift IdP 認証を使用する前に、AWS SAML ID プロバイダを作成する必要があります。IAMコンソールで ID プロバイダを作成し、IdP およびその設定について AWS に通知できます。これにより、AWS アカウントと IdP の間の信頼が確立されます。ロールを作成する手順については、「SAML 2.0フェデレーション用のロールの作成 (コンソール)」を参照してください。

230

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

ステップ 2: IdP の SAML アサーションを設定する

IAM ロールを作成したら、組織のユーザーまたはグループを IAM ロールにマッピングするクレームルールを IdP アプリケーションで定義する必要があります。詳細については、「認証レスポンスの SAML アサーションを設定する」を参照してください。

オプションの GetClusterCredentials パラメータである DbUser、AutoCreate、および DbGroups を使用する場合は、JDBC または ODBC 接続でパラメータの値を設定するか、IdP に SAML 属性要素を追加して値を設定できます。DbUser、AutoCreate、および DbGroups パラメータの詳細については、「ステップ 5:IAM 認証情報を使用するように JDBC または ODBC 接続を設定する (p. 234)」を参照してください。

Note

「${redshift:DbUser}」で説明されているように、IAM ポリシー変数 GetClusterCredentialsのリソースポリシー (p. 220) を使用する場合、DbUser の値は API オペレーションのリクエストコンテキストから取得した値で置き換えられます。Amazon Redshift ドライバーは、SAML 属性として提供される値ではなく、接続 URL から提供される DbUser 変数の値を使用します。この接続の安全性を維持するには、IAM ポリシーの条件を使用して、DbUser 値をRoleSessionName で検証することが推奨されます。IAM ポリシーを使用して条件を設定する方法の例は、「GetClusterCredentials を使用するポリシーの例 (p. 225)」で参照できます。

IdP を設定して DbUser、AutoCreate、および DbGroups パラメータを設定するには、次の Attribute 要素を含めます。

• Name 属性を持つ Attribute 要素は「https://redshift.amazon.com/SAML/Attributes/DbUser」に設定します。

AttributeValue は、Amazon Redshift データベースに接続するユーザー名に設定します。

AttributeValue 要素の値は小文字のみで、先頭は文字にし、英数字、アンダースコア (_)、プラス記号(+)、ドット (.)、アットマーク (@)、ハイフン (_) のみを含み、128 文字以内である必要があります。通常、ユーザー名はユーザー ID (例: bobsmith) またはメールアドレス (例: [email protected]) になります。値にスペースを含めることはできません (ユーザーの表示名を Bob Smith にするなど)。

<Attribute Name="https://redshift.amazon.com/SAML/Attributes/DbUser"> <AttributeValue>user-name</AttributeValue></Attribute>

• Name 属性を持つ Attribute 要素は「https://redshift.amazon.com/SAML/Attributes/AutoCreate」に設定します。

存在していない場合に、新しいデータベースユーザーを作成するには、AttributeValue 要素を true に設定します。データベースユーザーが Amazon Redshift データベースに存在している必要があることを指定するには、AttributeValue を false に設定します。

<Attribute Name="https://redshift.amazon.com/SAML/Attributes/AutoCreate"> <AttributeValue>true</AttributeValue></Attribute>

• Name 属性を持つ Attribute 要素は「https://redshift.amazon.com/SAML/Attributes/DbGroups」に設定します。

この要素には 1 つ以上の AttributeValue 要素が含まれます。Amazon Redshift データベースに接続するとき、セッションの期間中に DbUser が参加するデータベースグループ名に各 AttributeValue 要素を設定します。

<Attribute Name="https://redshift.amazon.com/SAML/Attributes/DbGroups"> <AttributeValue>group1</AttributeValue> <AttributeValue>group2</AttributeValue>

231

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

<AttributeValue>group3</AttributeValue></Attribute>

ステップ 3: GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールまたはユーザーを作成するSQL クライアントには、自動的に GetClusterCredentials アクションを呼び出すための許可が必要です。その許可を付与するには、IAM ユーザーまたはロールを作成し、必要なアクセス許可を付与するポリシーをアタッチします。

GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールを作成するには

1. IAM サービスを使用して、IAM ユーザーまたはロールを作成します。既存のユーザーまたはロールを使用することもできます。たとえば、ID プロバイダアクセス用の IAM ロールを作成したら、そのロールに必要な IAM ポリシーをアタッチできます。

2. redshift:GetClusterCredentials アクションを呼び出すアクセス許可を持つアクセス許可ポリシーをアタッチします。指定するオプションパラメータにより、追加のアクションやリソースをポリシーで許可または制限することもできます。

• SQL クライアントによるクラスター ID、リージョン、およびポートの取得を許可するには、redshift:DescribeClusters アクションを呼び出すアクセス許可を Redshift クラスターリソースに含めます。

• AutoCreate オプションを使用する場合、redshift:CreateClusterUser を呼び出す権限をdbuser リソースに含めます。次の Amazon リソースネーム (ARN) は、Amazon Redshift dbuserを指定します。region、account-id、および cluster-name を、リージョン、アカウント、クラスターそれぞれの値に置き換えます。dbuser-name には、クラスターへのログオンに使用するユーザー名を指定します。

arn:aws:redshift:region:account-id:dbuser:cluster-name/dbuser-name

• オプションで、次の形式で Amazon Redshift dbname リソースを指定する ARN を追加します。region、account-id、および cluster-name を、リージョン、アカウント、クラスターそれぞれの値に置き換えます。database-name には、ユーザーがログオンするデータベースの名前を指定します。

arn:aws:redshift:region:account-id:dbname:cluster-name/database-name

• DbGroups オプションを使用する場合、次の形式で、redshift:JoinGroup アクションを呼び出すアクセス許可を Amazon Redshift dbgroup リソースに含めます。region、account-id、および cluster-name を、リージョン、アカウント、クラスターそれぞれの値に置き換えます。[dbgroup-name] には、ユーザーがログオン時に参加するユーザーグループの名前を指定します。

arn:aws:redshift:region:account-id:dbgroup:cluster-name/dbgroup-name

詳細な説明と例については、「GetClusterCredentials のリソースポリシー (p. 220)」を参照してください。

次の例では、IAM ロールで GetClusterCredentials アクションの呼び出しを許可するポリシーを示します。Amazon Redshift dbuser リソースを指定すると、examplecluster というクラスターで、データベースユーザー名 temp_creds_user にロールのアクセスが付与されます。

{ "Version": "2012-10-17",

232

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

"Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user" }}

ワイルドカード (*) を使用して、クラスター名、ユーザー名、およびデータベースグループ名のすべてまたは一部を置き換えることができます。次の例では、指定したアカウントのすべてのクラスターで、temp_で始まるすべてのユーザー名が許可されます。

Important

次の例のステートメントでは、指定された文字から始まるすべてのリソースがポリシーで許可されるように、 リソースの値の一部として、ワイルドカード文字 (*) を指定します。IAM ポリシーでワイルドカード文字を使用すると、過度に許可される場合があります。ベストプラクティスとして、ビジネスアプリケーションを最も制限する現実的なポリシーを使用することをお勧めします。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*" }}

次の例では、IAM ロールが GetClusterCredentials アクションを呼び出すことを許可するポリシーを示します。オプションで新しいユーザーを自動的に作成し、ログオン時にユーザーが参加するグループを指定することができます。"Resource": "*" 句により、クラスター、データベースユーザー、またはユーザーグループを含めて、任意のリソースへのロールアクセスが許可されます。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": "*" }}

詳細については、「Amazon Redshift ARN 構文」を参照してください。

ステップ 4: データベースユーザーとデータベースグループを作成するオプションで、クラスターデータベースにログオンするために使用するデータベースユーザーを作成できます。既存のユーザー用の一時的ユーザー認証情報を作成する場合、ユーザーのパスワードを無効にして、一時パスワードでログオンするようユーザーに強制できます。または、GetClusterCredentialsAutocreate オプションを使用して、自動的に新しいデータベースユーザーを作成できます。

アクセス許可により、IAM データベースユーザーがログオン時に参加するデータベースユーザーグループを作成できます。GetClusterCredentials アクションを呼び出す場合、新しいユーザーがログオン時に参加するユーザーグループ名のリストを指定できます。これらのグループメンバーシップは、特定のリクエストで生成された認証情報を使用して作成されたセッションに対してのみ有効です。

233

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

データベースユーザーとデータベースグループを作成するには

1. Amazon Redshift データベースにログオンし、CREATE USER を使用してデータベースユーザーを作成するか、ALTER USER を使用して既存のユーザーを変更します。

2. オプションで、ユーザーがパスワードを使用することを防ぐために PASSWORD DISABLE オプションを指定します。ユーザーのパスワードが無効になると、ユーザーは IAM ユーザーの一時的認証情報を使用してのみログオンできます。パスワードが無効になっていない場合、ユーザーはパスワードまたは IAM ユーザーの一時的認証情報を使用してログオンできます。スーパーユーザーのパスワードを無効にすることはできません。

次の例では、パスワードを無効にしてユーザーを作成します。

create user temp_creds_user password disable;

次の例では、既存のユーザーのパスワードを無効にします。

alter user temp_creds_user password disable;

3. CREATE GROUP を使用してデータベースユーザーグループを作成します。4. GRANT コマンドを使用して、グループのアクセス権限を定義します。

ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する

データベースユーザー認証情報を作成し、SQL クライアントと Amazon Redshift データベース間の接続を確立するプロセスを管理する Amazon Redshift JDBC または ODBC ドライバーを使用して、SQL クライアントを設定できます。

IAM 認証情報を使用するように JDBC 接続を設定するには

1. 「JDBC 接続を設定する (p. 70)」ページから最新の Amazon Redshift JDBC ドライバーをダウンロードします。

Important

Amazon Redshift JDBC ドライバーはバージョン 1.2.7.1003 以降である必要があります。2. 次のいずれかの形式で IAM 認証情報オプションを使用して JDBC URL を作成します。IAM 認証を使

用するには、次の例に示すように、jdbc:redshift: に続いて Amazon Redshift JDBC URL に iam: を追加します。

jdbc:redshift:iam://

cluster-name、region、および dbname は、それぞれクラスター名、リージョン、データベース名に置き換えます。JDBC ドライバーは IAM アカウント情報とクラスター名を使用して、クラスターID、リージョン、およびポート番号を取得します。そのためには、IAM ユーザーまたはロールには、指定したクラスターで redshift:DescribeClusters アクションを呼び出すアクセス権限が必要です。

jdbc:redshift:iam://cluster-name:region/dbname

IAM ユーザーまたはロールで、redshift:DescribeClusters アクションを呼び出す権限がない場合は、次の例に示すように、クラスター ID、リージョン、およびポートを含めます。ポート番号はオプションです。デフォルトのポート番号は 5439 です。

jdbc:redshift:iam://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev

234

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

3. JDBC オプションを追加して IAM 認証情報を提供します。さまざまな組み合わせの JDBC オプションを使用して、IAM 認証情報を提供できます。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

次の URL は、IAM ユーザーの AccessKeyID および SecretAccessKey を指定します。

jdbc:redshift:iam://examplecluster:us-west-2/dev?AccessKeyID=AKIAIOSFODNN7EXAMPLE&SecretAccessKey=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

次の例では、IAM 認証情報を含む名前付きプロファイルを指定します。

jdbc:redshift:iam://examplecluster:us-west-2/dev?Profile=user2

4. JDBC ドライバーを使用して GetClusterCredentials API アクションを呼び出す JDBC オプションを追加します。GetClusterCredentials API アクションをプログラムで呼び出す場合、これらのオプションは含めないでください。詳細については、「IAM 認証情報を使用するように JDBC または ODBC 接続を設定する (p. 234)」を参照してください。

次の例では JDBC GetClusterCredentials オプションを含めています。

jdbc:redshift:iam://examplecluster:us-west-2/dev?Profile=user2&DbUser=newuser&AutoCreate=true&DbGroups=group1,group2

IAM 認証情報を使用するように ODBC 接続を設定するには

このトピックでは、IAM 認証を設定するステップのみを示します。データベースユーザー名とパスワードを使用して標準認証を使用するステップについては、「ODBC 接続を設定する (p. 87)」を参照してください。

1. 1.オペレーティングシステム用の最新の Amazon Redshift OBDC ドライバーをインストールおよび設定します。詳細については、「ODBC 接続を設定する (p. 87)」ページを参照してください。

Important

Amazon Redshift ODBC ドライバーはバージョン 1.3.6.1000 以降である必要があります。2. 接続設定に関するオペレーティングシステムのステップに従います。

詳細については、次のトピックのいずれかを参照してください。

• Microsoft Windows オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールして設定する (p. 89)

• Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設定する (p. 95)3. Microsoft Windows オペレーティングシステムでは、Amazon Redshift ODBC ドライバーの DSN 設定

ウィンドウにアクセスします。

a. [接続設定] で以下の情報を入力します。

• [Data Source Name (データソース名)]• [サーバー] (オプション)• [ポート] (オプション)• [データベース]

IAM ユーザーまたはロールに redshift:DescribeClusters アクションを呼び出すアクセス許可がある場合、[Data Source Name (データソース名)] および [データベース] のみが必要で

235

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

す。Amazon Redshift は [ClusterId] および [リージョン] を使用し、DescribeCluster アクションを呼び出してサーバーとポートを取得します。

IAM ユーザーまたはロールには、redshift:DescribeClusters を呼び出し、[Server (サーバー)] および [Port (ポート)] を指定するアクセス許可はありません。デフォルトのポート番号は5439 です。

b. [Authentication (認証)] で、[Auth Type (認証タイプ)] を選択します。

各認証タイプについて、次に示すように特定のフィールドが表示されます。

AWS プロファイル

次の情報を入力します。

• [ClusterID]• [リージョン]

必要に応じて、GetClusterCredentials API アクションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

• [DbUser]• [User AutoCreate (ユーザー AutoCreate)]• [DbGroups]

詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

• [Profile name (プロファイル名)]

ODBC 接続オプションの値を含む AWS Config ファイルのプロファイル名を入力します。詳細については、「設定プロファイルを使用する (p. 243)」を参照してください。

236

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

AWS IAM Credentials

次の情報を入力します。

• [ClusterID]• [リージョン]

GetClusterCredentials API アクションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

• [DbUser] (必須)• [User AutoCreate (ユーザー AutoCreate)] (オプション)• [DbGroups] (オプション)

詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

• [AccessKeyID] および [SecretAccessKey]

IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー ID およびシークレットアクセスキー。

• [SessionToken]

[SessionToken] は、一時的認証情報を持つ IAM ロールに必要です。詳細については、Temporary Security Credentials を参照してください。

237

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

Identity Provider: AD FS

AD FS を使用した Windows 統合認証の場合、[User (ユーザー)] および [Password (パスワード)]は空白にしておきます。

必要に応じて、GetClusterCredentials API アクションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

• [DbUser]• [User AutoCreate (ユーザー AutoCreate)]• [DbGroups]

詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

IdP の詳細を指定します。

• [IdP Host (IdP ホスト)]

企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。• [IdP Port (IdP ポート)] (オプション)

ID プロバイダが使用するポート。デフォルトは 443 です。• [Preferred Role (優先ロール)]

SAML アサーションの Role 属性の AttributeValue 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「IdP の SAML アサーションを設定する (p. 231)」を参照してください。

238

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

ID プロバイダー: PingFederate

[User (ユーザー)] と [Password (パスワード)] に、IdP のユーザー名とパスワードを入力します。

必要に応じて、GetClusterCredentials API アクションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

• [DbUser]• [User AutoCreate (ユーザー AutoCreate)]• [DbGroups]

詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

IdP の詳細を指定します。

• [IdP Host (IdP ホスト)]

企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。• [IdP Port (IdP ポート)] (オプション)

ID プロバイダが使用するポート。デフォルトは 443 です。• [Preferred Role (優先ロール)]

SAML アサーションの Role 属性の AttributeValue 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「IdP の SAML アサーションを設定する (p. 231)」を参照してください。

239

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

ウェブ ID プロバイダー: Okta

[User (ユーザー)] と [Password (パスワード)] に、IdP のユーザー名とパスワードを入力します。

必要に応じて、GetClusterCredentials API アクションを呼び出すために ODBC ドライバーが使用するオプションの詳細を指定します。

• [DbUser]• [User AutoCreate (ユーザー AutoCreate)]• [DbGroups]

詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

IdP の詳細を指定します。

• [IdP Host (IdP ホスト)]

企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。• [IdP Port (IdP ポート)]

IdP ポートは Okta では使用されません。• [Preferred Role (優先ロール)]

SAML アサーションの Role 属性の AttributeValue 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「IdP の SAML アサーションを設定する (p. 231)」を参照してください。

• [Okta App ID (Okta アプリケーション ID)]

Okta アプリケーションの ID。アプリ ID の値は、Okta アプリケーションの埋め込みリンクの「amazon_aws」に続きます。IdP 管理者と連携して、この値を取得します。以下に、アプリケーション埋め込みリンクの例を示します。

https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272

240

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

IAM 認証情報の提供オプションJDBC または ODBC 接続の IAM 認証情報を提供するには、次のいずれかの認証タイプを選択します。

• AWS プロファイル

JDBC または ODBC 設定形式で認証情報の値を指定する代わりとして、名前付きプロファイルで値を指定できます。

• AWS IAM Credentials

JDBC または ODBC 設定の形式で、AccessKeyID、SecretAccessKey、および必要に応じてSessionToken の値を指定します。SessionToken は、一時的認証情報を持つ IAM ロールにのみ必要です。詳細については、Temporary Security Credentials を参照してください。

• ID プロバイダー

認証に ID プロバイダを使用する場合は、ID プロバイダプラグインの名前を指定します。AmazonRedshift JDBC および ODBC ドライバーには、次の SAML ベースの認証情報プロバイダのプラグインが含まれます。• AD FS• PingFederate• Okta

JDBC または ODBC 設定の形式、またはプロファイルを使用して、プラグイン名前と関連する値を指定できます。詳細については、「JDBC ドライバー設定オプション (p. 72)」および「ODBC ドライバー設定オプション (p. 99)」を参照してください。

詳細については、「IAM 認証情報を使用するように JDBC または ODBC 接続を設定する (p. 234)」を参照してください。

IAM 認証情報を提供するための JDBC および ODBC のオプション

以下の表に、IAM 認証情報を提供するための JDBC および ODBC のオプションを示します。

241

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

オプション Description

Iam ODBC 接続文字列内でのみ使用できます。IAM 認証を使用するには、1 に設定します。

AccessKeyID

SecretAccessKey

SessionToken

IAM データベース認証用に設定された IAM ロールまたは IAM ユーザーのアクセスキー IDおよびシークレットアクセスキー。SessionToken は、一時的認証情報を持つ IAM ロールにのみ必要です。SessionToken は IAM ユーザーに対しては使用されません。詳細については、 Temporary Security Credentials を参照してください。

Plugin_Name 認証情報プロバイダを実装する完全修飾クラス名。Amazon Redshift JDBC ドライバーには SAML ベースの認証情報プロバイダプラグインが含まれます。plugin_name が表示される場合、関連する他のパラメータを利用できます。詳細については、「認証情報プロバイダプラグインの使用 (p. 242)」を参照してください。

プロフィール

JDBC 接続オプションの値を含む AWS 認証情報または設定ファイルのプロファイル名。詳細については、「設定プロファイルを使用する (p. 243)」を参照してください。

認証情報プロバイダプラグインの使用

次の認証情報プロバイダプラグインは、Amazon Redshift JDBC ドライバに含まれています。

• Active Directory フェデレーションサービス (AD FS)• Ping フェデレーション (Ping)

Ping は、フォーム認証を使用する既定の PingFederate IdP Adapter でのみサポートされます。• Okta

Okta は、Okta が提供する AWS コンソールのデフォルトアプリケーションでのみサポートされます。

SAML ベースの認証情報プロバイダープラグインを使用するには、名前付きプロファイルで JBDC またはODBC オプションを使用して次のオプションを指定します。

オプション Description

plugin_name JDBC の場合、認証情報プロバイダを実装するクラス名。次のいずれかを指定します。

• ADFS の場合

com.amazon.redshift.plugin.AdfsCredentialsProvider

• Okta の場合

com.amazon.redshift.plugin.OktaCredentialsProvider

• PingFederate の場合

com.amazon.redshift.plugin.PingCredentialsProvider

ODBC の場合、次のいずれかを指定します。

• AD FS の場合: adfs• Okta の場合: okta

242

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

オプション Description• PingFederate の場合: ping

idp_host 企業 ID プロバイダホストの名前。この名前には、スラッシュ (/) を含めないでください。Okta 認証プロバイダの場合、idp_host の値は、.okta.com で終わる必要があります。

idp_port ID プロバイダが使用するポート。デフォルトは 443 です。ポートは Okta に対して無視されます。

preferred_role SAML アサーションの Role 属性の AttributeValue 要素からのロールの Amazon リソースネーム (ARN)。IdP 管理者と連携して、目的のロールに適した値を見つけます。詳細については、「IdP の SAML アサーションを設定する (p. 231)IdP の SAML アサーションの設定」を参照してください。

ユーザー 該当する場合はドメインを含む、社内ユーザー名。たとえば、Active Directory の場合、必要なドメイン名の形式は domain\username です。

password 社内ユーザーのパスワード。このオプションを使用しないことをお勧めします。代わりに、SQL クライアントを使用してパスワードを指定します。

ssl_insecure true (JDBC) または 1 (ODBC) を使用して、IdP を使用したセキュアでない SSL を使用します (お勧めしません)。

app_id Okta アプリケーションの ID。Okta でのみ使用します。app_id の値は、Oktaアプリケーションの埋め込みリンクの「amazon_aws」に続きます。IdP管理者と連携して、この値を取得します。以下に、アプリケーション埋め込みリンクの例を示します。https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272

次の例は、名前付きプロファイルの認証情報プロバイダプラグインのパラメータを示します。

[plug-in-creds]plugin_name=com.amazon.redshift.plugin.AdfsCredentialsProvideridp_host=demo.example.comidp_port=443 preferred_role=arn:aws:iam::123456789012:role/ADFS-Devuser=example\userpassword=Password1234

設定プロファイルを使用するAWS 設定ファイルの名前付きプロファイルで、IAM 認証情報オプションと GetClusterCredentials オプションを設定として指定できます。プロファイルの JDBC オプションを使用してプロファイル名を指定します。

この設定は、ホームディレクトリで config というフォルダ内の .aws という名前のファイルに保存されています。ホームディレクトリの場所は異なりますが、Windows では %UserProfile%、また Unix 系のシステムでは $HOME または ~ (チルダ) といった環境変数を使用して参照できます。

バンドルされた SAML ベースの認証情報プロバイダプラグインで Amazon Redshift JDBC ドライバーやODBC ドライバーを使用するときは、以下の設定がサポートされます。plugin_name を使用しない場合、以下のオプションは無視されます。

• plugin_name• idp_host• idp_port• preferred_role

243

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

• ユーザー• password• ssl_insecure• app_id (Okta の場合のみ)

3 つのプロファイルのある設定ファイルの例を以下に示します。plug-in-creds の例では、オプションの DbUser、AutoCreate、および DbGroups が含まれています。

[default]aws_access_key_id=AKIAIOSFODNN7EXAMPLEaws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user2]aws_access_key_id=AKIAI44QH8DHBEXAMPLEaws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEYsession_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==

[plug-in-creds]plugin_name=com.amazon.redshift.plugin.AdfsCredentialsProvideridp_host=demo.example.comidp_port=443preferred_role=arn:aws:iam::1234567:role/ADFS-Devuser=example\userpassword=Password1234

user2 の例の認証情報を使用するには、JDBC URL で Profile=user2 を指定します。plug-in credsの例の認証情報を使用するには、JDBC URL で Profile=plug-in-creds を指定します。

詳細については、『AWS Command Line Interface ユーザーガイド』の「名前付きプロファイル」を参照してください。

データベースユーザー認証情報を作成するための JDBC およびODBC のオプションAmazon Redshift JDBC または ODBC ドライバーを使用してデータベースユーザー認証情報を作成するには、JDBC または ODBC オプションとしてデータベースユーザー名を指定します。オプションで、存在しない場合は新しいデータベースユーザーをドライバーで作成し、ユーザーがログオン時に参加するデータベースユーザーグループのリストを指定できます。

ID プロバイダ (IdP) を使用する場合は、IdP 管理者と連携して、これらのオプションに合った正しい値を確認します。IdP 管理者は、JDBC または ODBC のオプションとして提供する必要がない場合、それらのオプションを提供するように IdP を設定できます。詳細については、「IdP の SAML アサーションを設定する (p. 231)」を参照してください。

Note

「${redshift:DbUser}」で説明されているように、IAM ポリシー変数 GetClusterCredentialsのリソースポリシー (p. 220) を使用する場合、DbUser の値は API オペレーションのリクエストコンテキストから取得した値で置き換えられます。Amazon Redshift ドライバーは、SAML 属性として提供される値ではなく、接続 URL から提供される DbUser 変数の値を使用します。この接続の安全性を維持するには、IAM ポリシーの条件を使用して、DbUser 値をRoleSessionName で検証することが推奨されます。IAM ポリシーを使用して条件を設定する方法の例は、「GetClusterCredentials を使用するポリシーの例 (p. 225)」で参照できます。

244

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

次の表は、データベースユーザー認証情報を作成するためのオプションを示しています。

オプション Description

DbUser データベースユーザーの名前。DbUser というユーザーがデータベースに存在する場合、一時的ユーザー認証情報のアクセス許可は、既存のユーザーと同じになります。DbUserがデータベースに存在せず、AutoCreate が true の場合、DbUser という名前の新しいユーザーが作成されます。必要に応じて、既存ユーザーのパスワードを無効にします。詳細については、「ALTER_USER」を参照してください。

AutoCreate DbUser に指定した名前でデータベースユーザーを作成するには (存在しない場合)、trueを指定します。デフォルト: false。

DbGroups データベースユーザーが現在のセッションで参加する 1 つまたは複数の既存データベースグループの名前のカンマ区切りリスト。デフォルトでは、新しいユーザーは PUBLIC のみに追加されます。

Amazon Redshift CLI または API を使用した IAM データベース認証情報の生成プログラムで一時的データベースユーザー認証情報を生成するため、Amazon Redshift は AWS コマンドラインインターフェイス (AWS CLI) および GetClusterCredentials API アクション用に get-cluster-credentials コマンドを提供します。または、GetClusterCredentials アクションを呼び出し、データベースユーザー認証情報を取得して、SQL クライアントと Amazon Redshift データベース間の接続を確立するプロセスを管理する、Amazon Redshift JDBC または ODBC ドライバーを使用して SQL クライアントを設定できます。詳細については、「データベースユーザー認証情報を作成するための JDBC および ODBC のオプション (p. 244)」を参照してください。

Note

Amazon Redshift JDBC または ODBC ドライバーを使用して、データベースユーザー認証情報を生成することをお勧めします。

このセクションでは、プログラムで GetClusterCredentials アクションまたは get-cluster-credentials コマンドを呼び出し、データベースのユーザー認証情報を取得して、データベースに接続するステップを示します。

一時的データベース認証情報を生成して使用するには

1. 必要なアクセス許可を使用して、IAM ユーザーまたはロールを作成または変更します。IAM 権限の詳細については、「GetClusterCredentials を呼び出すアクセス許可を持つ IAM ロールまたはユーザーを作成する (p. 232)」を参照してください。

2. 前のステップで許可した IAM ユーザーまたはロールとして、get-cluster-credentials CLI コマンドを実行するか、GetClusterCredentials API アクションを呼び出し、次の値を指定します。

• クラスター識別子 – データベースを含むクラスターの名前。• データベースユーザー名 – 既存の、または新しいデータベースユーザーの名前。

• ユーザーがデータベースに存在せず、AutoCreate が true の場合、PASSWORD を無効にして新しいユーザーが作成されます。

• ユーザーが存在せず、AutoCreate が false の場合、リクエストは失敗します。• この例では、データベースユーザー名は temp_creds_user です。

• Autocreate – (オプション) データベースユーザー名が存在しない場合は新しいユーザーを作成します。

245

Amazon Redshift クラスター管理ガイドIAM 認証を使用したデータベースユーザー認証情報の生成

• Database name – (オプション) ユーザーがログオンする権限が付与されているデータベースの名前。データベース名を指定しない場合、ユーザーは任意のクラスターデータベースにログオンできます。

• データベースグループ – (オプション) 既存のデータベースユーザーグループのリスト。正常にログオンすると、データベースユーザーが、指定されたユーザーグループに追加されます。グループを指定しない場合、ユーザーには PUBLIC アクセス許可のみが与えられます。このユーザーグループ名は、IAM ユーザーまたはロールにアタッチされた IAM ポリシーで指定された dbgroup リソースのARN に一致する必要があります。

• 有効期限 – (オプション) 一時的認証情報が期限切れになるまでの時間 (秒単位)。900 秒 (15 分) と3600 秒 (60 分間) の間の値を指定できます。デフォルト値は 900 秒です。

3. Amazon Redshift は、IAM ユーザーに、指定されたリソースで GetClusterCredentials オペレーションを呼び出すアクセス許可があることを確認します。

4. Amazon Redshift は一時パスワードとデータベースユーザー名を返します。

次の例は、Amazon Redshift CLI を使用して、temp_creds_user という既存のユーザー用に一時的データベース認証情報を生成します。

aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600

結果は次のようになります。

{ "DbUser": "IAM:temp_creds_user", "Expiration": "2016-12-08T21:12:53Z", "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="}

次の例では、Amazon Redshift CLI と autocreate を使用して、新しいユーザー用の一時的データベース認証情報を生成し、そのユーザーをグループ example_group に追加します。

aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user -–auto-create true --db-name exampledb -–db-groups example_group --duration-seconds 3600

結果は次のようになります。

{ "DbUser": "IAMA:temp_creds_user:example_group", "Expiration": "2016-12-08T21:12:53Z", "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="}

5. Amazon Redshift クラスターとの Secure Sockets Layer (SSL) 認証接続を確立し、GetClusterCredentials のレスポンスからのユーザー名とパスワードとともにログオンリクエストを送信します。ユーザー名には IAM: または IAMA: というプレフィックスを含めます (例:IAM:temp_creds_user または IAMA:temp_creds_user)。

Important

SSL を必要とするように SQL クライアントを設定します。それ以外の場合、SQL クライアントが自動的に SSL との接続を試みた場合、なんらかの失敗があると、非 SSL にフォールバックする可能性があります。その場合、最初の接続の試行は、認証情報が期限切れまたは無効なために失敗する可能性があり、2 番目の接続の試行は、接続が SSL でないために失

246

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

敗します。その場合、最初のエラーメッセージは表示されない可能性があります。SSL を使用したクラスターへの接続の詳細については、「接続のセキュリティオプションを設定する (p. 107)」を参照してください。

6. 接続で SSL を使用しない場合、接続の試行は失敗します。7. クラスターは authentication リクエストを SQL クライアントに送信します。8. 次に、SQL クライアントは一時パスワードをクラスターに送信します。9. パスワードが有効で期限切れでない場合、クラスターは接続を完了します。

ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する一部の Amazon Redshift 機能では、ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスする必要があります。たとえば、COPY および UNLOAD コマンドでは、Amazon Simple StorageService (Amazon S3) バケットを使用してデータを Amazon Redshift クラスターにロードまたはアンロードできます。Amazon Redshift Spectrum では、Amazon Athena または AWS Glue のデータカタログを使用できます。Amazon Redshift クラスターがユーザーに代わってタスクを実行するには、クラスターにセキュリティ認証情報を指定します。セキュリティ認証情報を指定する望ましい方法は、AWS Identity andAccess Management (IAM) ロールを指定する方法です。COPY と UNLOAD には、AWS アクセスキーを指定することもできます。

他の AWS のサービスにアクセスするための適切なアクセス許可を持つ IAM ロールを作成する方法を以下で説明します。Amazon Redshift コマンドの実行時に、ロールをクラスターに関連付けてから、そのロールの Amazon リソースネーム (ARN) を指定する必要があります。詳細については、「IAM ロールを使用して COPY、UNLOAD、および CREATE EXTERNAL SCHEMA オペレーションを承認する (p. 252)」を参照してください。

Amazon Redshift クラスターが AWS のサービスにアクセスすることを許可する IAM ロールを作成するユーザーに代わって Amazon Redshift クラスターが他の AWS のサービスと通信することを許可する IAMロールを作成するには、以下の手順を実行します。

Amazon Redshift が AWS のサービスにアクセスすることを許可する IAM ロールを作成するには

1. IAM コンソールを開きます。2. ナビゲーションペインで [Roles (ロール) ] を選択します。3. [ロールの作成] を選択します。4. [AWS service (AWS サービス)]、[Redshift] の順に選択します。5. [Select your use case] で、[Redshift - Customizable]、[Next: Permissions] の順に選択します。6. [アクセス権限ポリシーをアタッチする] ページが表示されます。COPY および UNLOAD を使用

して Amazon S3 にアクセスするには、AmazonS3ReadOnlyAccess を選択します。For RedshiftSpectrum の場合は、Amazon S3 アクセスに加えて、AWSGlueConsoleFullAccess またはAmazonAthenaFullAccess を追加します。[次へ: タグ] を選択します。

7. [タグの追加] ページが表示されます。必要に応じてタグを追加できます。[次へ: 確認] を選択します。8. [ロール名] で、RedshiftCopyUnload などのロール名を入力します。[ロールの作成] を選択しま

す。9. 新しいロールは、そのロールを使用するクラスターのすべてのユーザーが利用できます。特定のク

ラスターの特定のユーザーのみ、または特定のリージョンのクラスターのみにアクセスを制限するには、ロールの信頼関係を編集します。詳細については、「IAM ロールへのアクセスの制限 (p. 248)」を参照してください。

247

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

10. ロールとクラスターを関連付けます。クラスターの作成時に IAM ロールをクラスターに関連付けるか、既存クラスターにロールを追加できます。詳細については、「IAM ロールをクラスターに関連付ける (p. 252)」を参照してください。

IAM ロールへのアクセスの制限デフォルトでは、Amazon Redshift クラスターに使用できる IAM ロールはそのクラスターですべてのユーザーが利用できます。特定のクラスターの特定の Amazon Redshift データベースユーザーまたは特定のリージョンに IAM ロールを制限することもできます。

IAM ロールの使用を特定のデータベースユーザーのみに許可するには、次の手順に従います。

IAM ロールへのアクセス権を持つ特定のデータベースユーザーを特定する

1. Amazon Redshift クラスターでデータベースユーザーの Amazon リソースネーム (ARN) を特定します。データベースユーザーの ARN は次の形式になります。arn:aws:redshift:region:account-id:dbuser:cluster-name/user-name

2. IAM コンソール url="https://console.aws.amazon.com/ を開きます。3. ナビゲーションペインで [Roles (ロール) ] を選択します。4. 特定の Amazon Redshift データベースユーザーに制限する IAM ロールを選択します。5. [Trust Relationships (信頼関係)] タブを選択し、[Edit Trust Relationship (信頼関係の編集)] を選択しま

す。ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する新しい IAM ロールは、次のような信頼関係を持ちます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

6. 指定した値に sts:AssumeRole フィールドを制限する信頼関係のセクションの sts:ExternalIdアクションに条件を追加します。ロールへのアクセスを許可する各データベースユーザーの ARN を含めます。

例えば、次の信頼関係では、user1 リージョンの user2 クラスターで my-cluster と us-west-2データベースユーザーのみがこの IAM ロールを使用するアクセス許可を持つよう指定されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user1", "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user2"

248

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

] } } }]}

7. [Update Trust Policy] を選択します。

AWS リージョンへの IAM ロールの制限特定の AWS リージョンにのみアクセスできるように IAM ロールを制限できます。デフォルトでは、Amazon Redshift の IAM ロールは、1 つのリージョンに限定されません。

IAM ロールの使用をリージョンごとに制限するには、次の手順に従います。

IAM ロールの許可されたリージョンを特定する

1. IAM コンソール (https://console.aws.amazon.com) を開きます。2. ナビゲーションペインで [Roles (ロール) ] を選択します。3. 特定のリージョンで変更するロールを選択します。4. [Trust Relationships (信頼関係)] タブを選択し、[Edit Trust Relationship (信頼関係の編集)] を選択しま

す。ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する新しい IAM ロールは、次のような信頼関係を持ちます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

5. ロールの使用を許可する特定のリージョンのリストで、Service の Principal リストを変更します。Service リストの各リージョンは、次の形式である必要があります。redshift.region.amazonaws.com

例えば、次の編集された信頼関係では、us-east-1 と us-west-2 リージョンでのみ IAM ロールの使用が許可されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.us-east-1.amazonaws.com", "redshift.us-west-2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

249

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

6. [Update Trust Policy (信頼ポリシーの更新)] を選択します。

Amazon Redshift で IAM ロールを連鎖するクラスターにロールをアタッチするとき、クラスターは Amazon S3、Athena、および AWS Glue にアクセスできるロールを引き受けることができます。クラスターにアタッチされたロールに必要なリソースへのアクセスがない場合、他のアカウントに属している可能性がある別のロールを連鎖することができます。クラスターは、このデータにアクセスするための連鎖ロールを一時的に引き受けます。また、ロールを連鎖してクロスアカウントアクセスを付与することもできます。連鎖における各ロールは、クラスターが連鎖の末尾のロールを引き受けるまで、連鎖の次のロールを引き受けます。最大で 10 個のロールを連鎖できます。

たとえば、企業 A が企業 B に属する Amazon S3 バケットのデータにアクセスするとします。企業 A はRoleA という名前の Amazon Redshift 用 AWS サービスロールを作成し、クラスターにアタッチします。企業 B は RoleB という名前のロールを作成します。このロールは企業 B のバケットのデータへのアクセスを承認されています。企業 B のバケットのデータにアクセスするには、A が iam_role と RoleA を連鎖させる RoleB パラメータを使用して COPY コマンドを実行します。COPY オペレーションの継続期間中は、RoleA は一時的に RoleB を引き受け Amazon S3 バケットにアクセスします。

ロールを連鎖するには、ロール間で信頼関係を確立します。別のロール (例: RoleA) を引き受けるロールには、次の連鎖したロール (例: RoleB) を引き受けることを許可するアクセス権限ポリシーがある必要があります。また、アクセス権限を渡すロール (RoleB) は、前に連鎖したロール (RoleA) にアクセス権限を渡すことができる信頼ポリシーを保持している必要があります。詳細については、IAM ユーザーガイド の「IAM ロールの作成」を参照してください。

連鎖の最初のロールは、クラスターにアタッチされたロールである必要があります。最初のロールと、次のロールを引き受ける後続の各ロールには、特定のステートメントを含むポリシーがあることが必要です。このステートメントには、Allow アクションに sts:AssumeRole 効果、そして Resource 要素に次のロールの Amazon リソースネーム (ARN) があります。この例では、RoleA に AWS アカウントRoleB が所有する 210987654321 を引き受けることを許可する次のアクセス権限ポリシーがあります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::210987654321:role/RoleB" } ]}

別のロールに渡されるロールは、そのロールを引き受けるロールまたはそのロールを所有する AWS アカウントとの信頼関係を確立する必要があります。この例では、RoleB に RoleA との信頼関係を確立する次の信頼ポリシーがあります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::role/RoleA" } ]

250

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

}

次の信頼ポリシーは、RoleA の所有者である AWS アカウント 123456789012 との信頼関係を確立します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::123456789012:root" } } ]}

UNLOAD、COPY、または CREATE EXTERNAL SCHEMA コマンドを実行すると、iam_role パラメータにロールの ARN のカンマ区切りのリストを含めることで、ロールを連鎖することができます。以下にiam_role パラメータ内の連鎖されたロールの構文を示します。

unload ('select * from venue limit 10') to 's3://acmedata/redshift/venue_pipe_'IAM_ROLE 'arn:aws:iam::<aws-account-id-1>:role/<role-name-1>[,arn:aws:iam::<aws-account-id-2>:role/<role-name-2>][,...]';

Note

ロールチェーン全体は一重引用符で囲まれ、スペースが含まれてはいけません。

次の例では、RoleA が AWS アカウント 123456789012 に属するクラスターにアタッチされます。RoleB は、アカウント 210987654321 に属しており、s3://companyb/redshift/ という名前のバケットにアクセスするアクセス権限を持っています。次の例では、RoleA および RoleB を連鎖させてデータを s3://companyb/redshift/ バケットに UNLOAD します。

unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_'iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

次の例では、COPY コマンドを使用して、前の例でアンロードしたデータをロードします。

copy venue from 's3://companyb/redshift/venue_pipe_'iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

次の例では、CREATE EXTERNAL SCHEMA は連鎖されたロールを使用してロール RoleB を引き受けます。

create external schema spectrumexample from data catalog database 'exampledb' region 'us-west-2' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

関連トピック• IAM ロールを使用して COPY、UNLOAD、および CREATE EXTERNAL SCHEMA オペレーションを承

認する (p. 252)

251

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

IAM ロールを使用して COPY、UNLOAD、および CREATEEXTERNAL SCHEMA オペレーションを承認するCOPY コマンドを使用してデータを Amazon Redshift にロード (またはインポート) および UNLOAD コマンドを使用してデータを Amazon Redshift からアンロード (またはエクスポート) できます。AmazonRedshift Spectrum を使用する場合、CREATE EXTERNAL SCHEMA コマンドを使用してデータを含むAmazon S3 バケットの場所を指定します。COPY、UNLOAD、または CREATE EXTERNAL SCHEMAコマンドを実行する場合、Amazon Redshift クラスターを許可するセキュリティ認証情報を指定してAmazon S3 バケットなどの送信先に対するデータの読み取りと書き込みを行う必要があります。セキュリティ認証情報を指定する望ましい方法は、AWS Identity and Access Management (IAM) ロールを指定する方法です。COPY と UNLOAD には、AWS アクセスキーを指定することもできます。IAM ロールの作成の詳細については、「ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する (p. 247)」を参照してください。

IAM ロールを使用する手順は次のとおりです。

• Amazon Redshift クラスターで使用する IAM ロールを作成します。• IAM ロールをクラスターに関連付けます。• COPY、UNLOAD、または CREATE EXTERNAL SCHEMA コマンドを呼び出す場合、IAM ロールの

ARN を含めます。

このトピックでは、IAM ロールを Amazon Redshift クラスターに関連付ける方法について説明します。

IAM ロールをクラスターに関連付ける

ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する IAM ロールを作成した後、そのロールを使用してデータをロードまたはアンロードする前に、そのロールを AmazonRedshift クラスターに関連付ける必要があります。

IAM ロールをクラスターに関連付けるために必要なアクセス許可

IAM ロールをクラスターに関連付けるには、IAM ユーザーは、その IAM ロールの iam:PassRole アクセス許可が必要です。このアクセス許可により、ユーザーが IAM ロールを Amazon Redshift クラスターに関連付けることを管理者が制限できます。

次の例は、ユーザーがアクションを実行することを許可する IAM ユーザーにアタッチできる IAM ポリシーを示します。

• そのユーザーアカウントによって所有されるすべての Amazon Redshift クラスターの詳細を取得します。

• 3 つの IAM ロールのいずれかを 2 つの Amazon Redshift クラスターのいずれかに関連付けます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:DescribeClusters", "Resource": "*" }, { "Effect": "Allow", "Action": [ "redshift:ModifyClusterIamRoles", "redshift:CreateCluster" ],

252

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

"Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster", "arn:aws:redshift:us-east-1:123456789012:cluster:cluster:my-second-redshift-cluster" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::123456789012:role/MyRedshiftRole", "arn:aws:iam::123456789012:role/SecondRedshiftRole", "arn:aws:iam::123456789012:role/ThirdRedshiftRole" ] } ]}

IAM ユーザーに適切なアクセス許可がある場合、そのユーザーは、COPY もしくは UNLOAD コマンド、または他の Amazon Redshift コマンドで使用する Amazon Redshift クラスターに IAM ロールを関連付けることができます。

IAM ポリシーの詳細については、IAM ユーザーガイドの IAM ポリシーの概要を参照してください。

クラスターに関連付けられる IAM ロールの管理

クラスターを作成する場合、IAM ロールを Amazon Redshift クラスターに関連付けるか、既存のクラスターを変更して 1 つ以上の IAM ロールの関連付けを追加または削除できます。次の点に注意してください。

• 最大 10 の IAM ロールを Amazon Redshift クラスターに関連付けることができます。• IAM ロールは複数の Amazon Redshift クラスターと関連付けることができます。• IAM ロールとクラスターの両方が同じ AWS アカウントによって所有されている場合にのみ、IAM ロー

ルを Amazon Redshift クラスターに関連付けることができます。

IAM ロールの関連付けを管理するコンソールの使用

次の手順を使用して、コンソールでクラスターに対する IAM ロールの関連付けを管理できます。

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. リストで、IAM ロールの関連付けを管理するクラスターを選択します。4. [See IAM Roles (IAM ロールの参照)] を選択します。5. IAM ロールをクラスターに関連付けるには、[Available roles (利用可能なロール)] リストから IAM

ロールを選択します。リストに表示されない場合は (IAM ロールがまだ作成されていない場合など)、手動で IAM ロールを入力することもできます。

6. クラスターから IAM ロールの関連付けを解除する場合は、関連付けを解除する IAM ロールの X を選択します。

7. クラスターの IAM ロールの関連付けを変更することが完了したら、[Apply Changes (変更を適用)] を選択してクラスターに関連付けられる IAM ロールを更新します。

[Manage IAM Roles (IAM ロールの管理)] パネルは、クラスターの IAM ロール関連付けのステータスを示します。クラスターに関連付けられているロールは、in-sync のステータスを示します。クラスターとの関連付けの途中であるロールは、adding のステータスを示します。クラスターから関連付けを解除されるロールは、removing のステータスを示します。

253

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

IAM ロールの関連付けを管理する AWS CLI の使用

次のアプローチを使用して、AWS CLI でクラスターに対する IAM ロールの関連付けを管理できます。

AWS CLI を使用して IAM ロールをクラスターに関連付ける

クラスターの作成時に IAM ロールをクラスターに関連付けるには、--iam-role-arns コマンドのcreate-cluster パラメータで IAM ロールの Amazon リソースネーム (ARN) を指定します。create-cluster コマンドを呼び出すときに追加する IAM ロールを最大 10 まで指定できます。

IAM ロールの Amazon Redshift クラスターへの関連付けおよび関連付けの解除は非同期処理です。describe-clusters コマンドを呼び出して、すべての IAM ロールのクラスター関連付けのステータスを取得できます。

次の例では、2 つの IAM ロールを my-redshift-cluster という名前の新しく作成されたクラスターに関連付けます。

aws redshift create-cluster \ --cluster-identifier "my-redshift-cluster" \ --node-type "dc1.large" \ --number-of-nodes 16 \ --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \ "arn:aws:iam::123456789012:role/SecondRedshiftRole"

既存の Amazon Redshift クラスターに IAM ロールを関連付けるには、modify-cluster-iam-rolesコマンドの --add-iam-roles パラメータで IAM ロールの Amazon リソースネーム (ARN) を指定します。modify-cluster-iam-roles コマンドを呼び出すときに追加する IAM ロールを最大 10 まで指定できます。

次の例では、IAM ロールを my-redshift-clusterという名前の既存のクラスターに関連付けます。

aws redshift modify-cluster-iam-roles \ --cluster-identifier "my-redshift-cluster" \

254

Amazon Redshift クラスター管理ガイドAmazon Redshift から AWS サー

ビスにアクセスすることを許可する

--add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"

AWS CLI を使用してクラスターから IAM ロールの関連付けを解除する

クラスターから IAM ロールの関連付けを解除するには、--remove-iam-roles コマンドの modify-cluster-iam-roles パラメータで IAM ロールの ARN を指定します。modify-cluster-iam-rolesコマンドを呼び出すときに削除する IAM ロールを最大 10 まで指定できます。

次の例では、123456789012という名前のクラスターから my-redshift-cluster AWS アカウントのIAM ロールの関連付けを削除します。

aws redshift modify-cluster-iam-roles \ --cluster-identifier "my-redshift-cluster" \ --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"

AWS CLI を使用してクラスターの IAM ロールの関連付けをリスト化する

Amazon Redshift クラスターに関連付けられている IAM ロールおよび IAM ロールの関連付けのステータスをリスト化するには、describe-clusters コマンドを呼び出します。クラスターに関連付けられた各IAM ロールの ARN は、次の出力例のように、IamRoles リストで返されます。

クラスターに関連付けられているロールは、in-sync のステータスを示します。クラスターとの関連付けの途中であるロールは、adding のステータスを示します。クラスターから関連付けを解除されるロールは、removing のステータスを示します。

{ "Clusters": [ { "ClusterIdentifier": "my-redshift-cluster", "NodeType": "dc1.large", "NumberOfNodes": 16, "IamRoles": [ { "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole", "IamRoleApplyStatus": "in-sync" } ], ... }, { "ClusterIdentifier": "my-second-redshift-cluster", "NodeType": "dc1.large", "NumberOfNodes": 10, "IamRoles": [ { "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole", "IamRoleApplyStatus": "in-sync" } ],

255

Amazon Redshift クラスター管理ガイドログ記録とモニタリング

... } ]}

AWS CLI の使用の詳細については、AWS Command Line Interface User Guide を参照してください。

Amazon Redshift のログ記録とモニタリングモニタリングは、Amazon Redshift と AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集できます。AWS には、Amazon Redshift リソースをモニタリングし、潜在的なインシデントに対応するための複数のツールが用意されています。

Amazon CloudWatch アラーム

Amazon CloudWatch アラームを使用して、指定した期間中、1 つのメトリクスをモニタリングします。メトリクスが指定されたしきい値を超える場合、Amazon SNS トピックまたは AWS AutoScaling ポリシーに通知が送信されます。CloudWatch アラームは特定の状態にあるため、アクションを呼び出しません。その代わり、状態が変更され、指定期間にわたって維持される必要があります。詳細については、「アラームを作成する (p. 320)」を参照してください。メトリクスの一覧については、「Amazon Redshift のパフォーマンスデータ (p. 297)」を参照してください。

AWS CloudTrail ログ

CloudTrail には、IAM ユーザー、ロール、または Amazon Redshift の AWS のサービスによって実行されるアクションのレコードが用意されています。CloudTrail によって収集された情報を使用して、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を調べて、Amazon Redshift に対してどのようなリクエストが行われたかを判断できます。詳細については、「AWS CloudTrail での Amazon Redshift API コールのログ記録 (p. 262)」を参照してください。

データベース監査ログ作成トピック

• 概要 (p. 256)• Amazon Redshift ログ (p. 257)• ログ作成の有効化 (p. 259)• ログファイルの管理 (p. 259)• Amazon Redshift 監査ログ作成のトラブルシューティング (p. 262)• AWS CloudTrail での Amazon Redshift API コールのログ記録 (p. 262)• AWS CloudTrail ログでの Amazon Redshift アカウント ID (p. 265)• コンソールを使用して監査を設定する (p. 267)• Amazon Redshift CLI および API を使用してログ作成を設定する (p. 269)

概要Amazon Redshift は、データベースの接続とユーザーアクティビティに関する情報を記録します。これらのログは、セキュリティとトラブルシューティングの目的でデータベースを監視するのに役立ちます。

256

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

このプロセスは、多くの場合データベース監査と呼ばれます。ログは、データベースのモニタリングアクティビティを担当するユーザーがデータセキュリティ機能を使用してアクセスしやすいように、AmazonSimple Storage Service (Amazon S3) バケットに格納されます。

Amazon Redshift ログAmazon Redshift は、次のログファイルに情報を記録します。

• 接続ログ — 認証の試みと、接続および切断を記録します。• ユーザーログ — データベースのユーザー定義への変更に関する情報を記録します。• ユーザーアクティビティログ — データベースで実行される前に各クエリを記録します。

接続ログとユーザーログは、主にセキュリティに役立ちます。接続ログを使用して、データベースに接続するユーザーに関する情報と、IP アドレスやリクエストした日時、使用した認証の種類など、関連する接続情報を監視できます。ユーザーログを使用して、データベースユーザーの定義への変更を監視できます。

ユーザーアクティビティログは、主にトラブルシューティングに役立ちます。ユーザーおよびシステムによってデータベースで実行されるクエリの種類についての情報を追跡します。

接続ログとユーザーログは、データベースのシステムテーブルに保存されている情報と一致します。システムテーブルを使用して同じ情報を取得できますが、ログファイルのほうがより簡単な方法で検索および参照できます。ログファイルは、テーブルに対してクエリを実行するのに、データベースのアクセス許可ではなく Amazon S3 のアクセス許可に依存しています。また、システムテーブルに対してクエリを実行するのではなくログファイルの情報を参照するので、データベースとのやりとりによる影響が軽減されます。

Note

ログファイルは、ベースシステムログテーブル、STL_USERLOG、およびSTL_CONNECTION_LOG ほど最新ではありません。最新のレコードを含まない、それより古いレコードはログファイルにコピーされます。

接続ログ

認証の試みと、接続および切断を記録します。次の表に、接続ログの情報を示します。

列名 説明

event 接続または認証イベント。

recordtime イベントが発生した時刻。

remotehost リモートホストの名前または IP アドレス。

remoteport リモートホストのポート番号。

pid ステートメントに関連付けられるプロセス ID。

dbname データベース名。

username ユーザー名。

authmethod 認証方法。

duration 接続時間 (マイクロ秒)。

sslversion Secure Sockets Layer (SSL) バージョン。

257

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

列名 説明

sslcipher SSL 暗号。

mtu 最大送信単位 (MTU)。

sslcompression SSL 圧縮タイプ。

sslexpansion SSL 拡張タイプ。

iamauthguid CloudTrail リクエストの IAM 認証 ID。

application_name セッションのアプリケーションの初期名または更新名。

ユーザーログデータベースユーザーに対する次の変更の詳細を記録します。

• ユーザーの作成• ユーザーの削除• ユーザーの変更 (名前の変更)• ユーザーの変更 (プロパティの変更)

列名 説明

userid 変更の影響を受けるユーザーの ID。

username 変更の影響を受けるユーザーのユーザー名。

oldusername 名前の変更アクションの場合、以前のユーザー名。その他のアクションの場合、このフィールドは空です。

action 実行されたアクション。有効な値:

• Alter• 作成• Drop• Rename

usecreatedb true (1) の場合、ユーザーに create database 権限があることを示します。

usesuper true (1) の場合、ユーザーがスーパーユーザーであることを示します。

usecatupd true (1) の場合、ユーザーはシステムカタログを更新できることを示します。

valuntil パスワードが失効する日付。

pid プロセス ID。

xid トランザクション ID。

recordtime UTC で表されたクエリの開始時間。

ユーザーアクティビティログデータベースで実行される前に各クエリを記録します。

258

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

列名 説明

recordtime イベントが発生した時刻。

db データベース名。

ユーザー ユーザー名。

pid ステートメントに関連付けられるプロセス ID。

userid ユーザー ID

xid トランザクション ID。

query プレフィックス LOG の後に、改行を含むクエリのテキストが続きます。

ログ作成の有効化Amazon Redshift の監査ログ作成はデフォルトで有効ではありません。クラスターでログ作成を有効にすると、Amazon Redshift はログを作成して Amazon S3 にアップロードし、クラスターの作成時から現在までのデータをキャプチャします。ログ作成の更新は、すでに記録された情報の続きになります。

Note

Amazon S3 への監査ログ作成は、任意で、手動のプロセスです。クラスターでログ作成を有効にすると、Amazon S3 へのログ作成のみ有効になります。システムテーブルへのログ作成は任意ではなく、クラスターに対して自動的に作成されます。システムテーブルへのログ作成に関する詳細については、Amazon Redshift Database Developer Guide の「システムテーブルのリファレンス」を参照してください。

接続ログ、ユーザーログ、およびユーザーアクティビティログは、AWS マネジメントコンソール、Amazon Redshift API リファレンス、または AWS Command Line Interface(AWSCLI)を使用すると同時に有効になります。ユーザーアクティビティログについては、enable_user_activity_logging データベースパラメータも有効にする必要があります。監査ログ作成機能のみを有効にし、関連するパラメータを有効にしない場合、データベース監査ログは接続ログとユーザーログの情報のみ記録し、ユーザーアクティビティログの情報は記録しません。デフォルトではenable_user_activity_logging パラメータは無効 (false) ですが、true に設定するとユーザーアクティビティログを有効にすることができます。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

Note

現在、Amazon S3 管理キー (SSE-S3) 暗号化 (AES-256) のみを監査ログ記録に使用できます。

ログファイルの管理Amazon S3 の Amazon Redshift のログファイルの数とサイズは、クラスターのアクティビティによって大きく異なります。大量のログを生成しているアクティブなクラスターがある場合、Amazon Redshift はより頻繁にログファイルを生成することがあります。同じ時間に複数の接続ログがあるなど、同じタイプのアクティビティに対して一連のログファイルが存在する場合があります。

Amazon Redshift は、Amazon S3 を使用してログを格納するため、Amazon S3 で使用するストレージの料金が発生します。ログ作成を設定する前に、ログファイルを保管する期間を計画し、監査の必要に応じていつ削除またはアーカイブするかを決定します。作成する予定は、コンプライアンス要件または規制要件に従ったデータなど、保管するデータの種類によって大きく異なります。Amazon S3 の料金の詳細については、Amazon Simple Storage Service(S3)料金表をご覧ください。

259

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

Amazon Redshift 監査ログ作成のためのバケットのアクセス許可

ログ作成を有効にすると、Amazon Redshift はログ作成情報を収集し、Amazon S3 に格納されたログファイルにアップロードします。既存のバケットか、新しいバケットを使用できます。Amazon Redshift では、バケットに対して以下の IAM アクセス許可が必要です。

• s3:GetBucketAcl サービスは、Amazon S3 バケットに対して読み取りのアクセス許可が必要です。これにより、バケット所有者を識別できます。

• s3:PutObject サービスは、ログをアップロードするため、put object のアクセス許可が必要です。ログがアップロードされるたびに、サービスは現在のバケット所有者がログ作成に有効になったときのバケット所有者と一致するかどうかを判定します。所有者が一致しない場合、ログ作成は有効なままですが、別のバケットが選択されるまでログファイルがアップロードされません。

新しいバケットを使用する必要があり、設定プロセスの一部として Amazon Redshift でバケットを作成する場合は、バケットに正しいアクセス許可が適用されます。ただし、Amazon S3 で独自のバケットを作成する場合、または既存のバケットを使用する場合、バケット名および次の表のリージョンに対応するAmazon Redshift のアカウント ID を含むバケットポリシーを追加する必要があります。

リージョン名 リージョン アカウント ID

米国東部 (バージニア北部) リージョン

us-east-1 193672423079

米国東部 (オハイオ) リージョン us-east-2 391106570357

米国西部 (北カリフォルニア) リージョン

us-west-1 262260360010

米国西部 (オレゴン) リージョン us-west-2 902366379725

アジアパシフィック (香港) リージョン

ap-east-1 313564881002

アジアパシフィック (ムンバイ)リージョン

ap-south-1 865932855811

アジアパシフィック (大阪: ローカル) リージョン

ap-northeast-3 090321488786

アジアパシフィック (ソウル) リージョン

ap-northeast-2 760740231472

アジアパシフィック (シンガポール) リージョン

ap-southeast-1 361669875840

アジアパシフィック (シドニー)リージョン

ap-southeast-2 762762565011

アジアパシフィック (東京) リージョン

ap-northeast-1 404641285394

カナダ (中部) リージョン ca-central-1 907379612154

欧州 (フランクフルト) リージョン eu-central-1 053454850223

欧州 (アイルランド) リージョン eu-west-1 210876761215

欧州 (ロンドン) リージョン eu-west-2 307160386991

260

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

リージョン名 リージョン アカウント ID

EU (パリ) リージョン eu-west-3 915173422425

欧州 (ストックホルム) リージョン eu-north-1 729911121831

中東 (バーレーン) リージョン me-south-1 013126148197

南米 (サンパウロ) リージョン sa-east-1 075028567923

バケットポリシーは次の形式を使用します。ここで、BucketName と AccountId は、個人の値のプレースホルダーです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:user/logs" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::BucketName/*" }, { "Sid": "Get bucket policy needed for audit logging ", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountID:user/logs" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::BucketName" } ]}

次の例は、米国東部 (バージニア北部) リージョン および AuditLogs という名前のバケットのバケットポリシーです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::193672423079:user/logs" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::AuditLogs/*" }, { "Sid": "Get bucket policy needed for audit logging ", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::193672423079:user/logs" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::AuditLogs" } ]

261

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

}

Amazon S3 バケットの作成およびバケットポリシーの追加に関する詳細については、Amazon SimpleStorage Service コンソールユーザーガイド の「バケットの作成」および「バケットのアクセス許可の編集」を参照してください。

Amazon Redshift 監査ログ作成のバケットの構造

デフォルトでは、Amazon Redshift は Amazon S3 バケット内のログファイルの整理に以下のバケットおよびオブジェクト構造を使用します。AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz

例: AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Amazon S3 のキープレフィックスを指定すると、キーの冒頭にプレフィックスが挿入されます。

たとえば、myprefix のプレフィックスを指定する場合。myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Amazon S3 のキープレフィックスは 512 文字を超えることはできません。スペース ( )、二重引用符 (“)、一重引用符 (‘)、バックスラッシュ (\) を含めることはできません。また、許可されない特殊文字、および制御文字もいくつかあります。これらの文字の 16 進コードは次のとおりです。

• x00 から x20• x 22• x 27• x5c• x7f 以上

Amazon Redshift 監査ログ作成のトラブルシューティングAmazon Redshift 監査ログ作成は、以下の理由で中断されることがあります。

• Amazon S3 バケットにログをアップロードするアクセス許可が Amazon Redshift にありません。バケットに正しい IAM ポリシーが設定されていることを確認します。詳細については、「Amazon Redshift 監査ログ作成のためのバケットのアクセス許可 (p. 260)」を参照してください。

• バケット所有者が変更されました。Amazon Redshift がログをアップロードするとき、バケット所有者がログが有効になった時と同じであることを確認します。バケット所有者を変更した場合、AmazonRedshift は、監査ログ作成に使用する別のバケットを設定するまでログをアップロードできません。詳細については、「監査ログ作成のバケットを変更する (p. 269)」を参照してください。

• バケットが見つかりません。バケットが Amazon S3 で削除された場合、Amazon Redshift はログをアップロードできません。バケットを再作成するか、別のバケットにログをアップロードするようにAmazon Redshift を設定する必要があります。詳細については、「監査ログ作成のバケットを変更する (p. 269)」を参照してください。

AWS CloudTrail での Amazon Redshift API コールのログ記録Amazon Redshift は AWS CloudTrail と統合されています。このサービスは、Amazon Redshift 内でユーザーやロール、または AWS のサービスによって実行されたアクションを記録するサービスです。CloudTrail は、Amazon Redshift コンソールからのコールや、Amazon Redshift API オペレーションへのコード呼び出しを含む、Amazon Redshift のすべての API コールをイベントとしてキャプチャします。証跡を作成する場合は、Amazon Redshift のイベントなど、Amazon S3 バケットへの CloudTrail イベ

262

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

ントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの[Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を調べて、Amazon Redshift に対してどのようなリクエストが行われたかを判断できます。

CloudTrail は、Amazon Redshift データベース監査ログ作成から独立して、または加えて使用できます。

CloudTrail の詳細については、「AWS CloudTrail User Guide」を参照してください。

CloudTrail 内の Amazon Redshift 情報CloudTrail は、アカウント作成時に AWS アカウントで有効になります。Amazon Redshift でアクティビティが発生すると、そのアクティビティは [Event history (イベント履歴)] の AWS の他のサービスのイベントとともに CloudTrail イベントに記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

Amazon Redshift のイベントなど、AWS アカウントのイベントの継続的な記録については、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべてのリージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、より詳細な分析と CloudTrail ログで収集されたデータに基づいた行動のためにその他の AWS サービスを設定できます。詳細については、以下のトピックを参照してください。

• 証跡を作成するための概要• CloudTrail でサポートされるサービスと統合• CloudTrail の Amazon SNS 通知の設定• 「複数のリージョンから CloudTrail ログファイルを受け取る」と「複数のアカウントから CloudTrail ロ

グファイルを受け取る」

すべての Amazon Redshift アクションは CloudTrail が記録し、Amazon Redshift API リファレンスに文書化されます。たとえば、CreateCluster、DeleteCluster、DescribeCluster の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。この ID 情報は以下のことを確認するのに役立ちます。

• リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。• リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用

して送信されたか.• リクエストが、別の AWS サービスによって送信されたかどうか。

詳細については、「CloudTrail userIdentity 要素」を参照してください。

Amazon Redshift ログファイルエントリの概要証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信できる設定です。CloudTrailログファイルには、1 つ以上のログエントリが含まれます。イベントは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストの パラメーターなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

サンプルの CreateCluster 呼び出しの CloudTrail ログエントリの例を以下に示します。

{

263

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

"eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "AIDAMVNPBQA3EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:51:56Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2017-03-03T16:56:09Z", "eventSource": "redshift.amazonaws.com", "eventName": "CreateCluster", "awsRegion": "us-east-2", "sourceIPAddress": "52.95.4.13", "userAgent": "signin.amazonaws.com", "requestParameters": { "clusterIdentifier": "my-dw-instance", "allowVersionUpgrade": true, "enhancedVpcRouting": false, "encrypted": false, "clusterVersion": "1.0", "masterUsername": "awsuser", "masterUserPassword": "****", "automatedSnapshotRetentionPeriod": 1, "port": 5439, "dBName": "mydbtest", "clusterType": "single-node", "nodeType": "dc1.large", "publiclyAccessible": true, "vpcSecurityGroupIds": [ "sg-95f606fc" ] }, "responseElements": { "nodeType": "dc1.large", "preferredMaintenanceWindow": "sat:05:30-sat:06:00", "clusterStatus": "creating", "vpcId": "vpc-84c22aed", "enhancedVpcRouting": false, "masterUsername": "awsuser", "clusterSecurityGroups": [], "pendingModifiedValues": { "masterUserPassword": "****" }, "dBName": "mydbtest", "clusterVersion": "1.0", "encrypted": false, "publiclyAccessible": true, "tags": [], "clusterParameterGroups": [ { "parameterGroupName": "default.redshift-1.0", "parameterApplyStatus": "in-sync" } ], "allowVersionUpgrade": true, "automatedSnapshotRetentionPeriod": 1, "numberOfNodes": 1, "vpcSecurityGroups": [

264

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

{ "status": "active", "vpcSecurityGroupId": "sg-95f606fc" } ], "iamRoles": [], "clusterIdentifier": "my-dw-instance", "clusterSubnetGroupName": "default" }, "requestID": "4c506036-0032-11e7-b8bf-d7aa466e9920", "eventID": "13ba5550-56ac-405b-900a-8a42b0f43c45", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

サンプルの DeleteCluster 呼び出しの CloudTrail ログエントリの例を以下に示します。

{ "eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "AIDAMVNPBQA3EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:58:23Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2017-03-03T17:02:34Z", "eventSource": "redshift.amazonaws.com", "eventName": "DeleteCluster", "awsRegion": "us-east-2", "sourceIPAddress": "52.95.4.13", "userAgent": "signin.amazonaws.com", "requestParameters": { "clusterIdentifier": "my-dw-instance", "skipFinalClusterSnapshot": true }, "responseElements": null, "requestID": "324cb76a-0033-11e7-809b-1bbbef7710bf", "eventID": "59bcc3ce-e635-4cce-b47f-3419a36b3fa5", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

AWS CloudTrail ログでの Amazon Redshift アカウント IDAmazon Redshift がユーザーに代わって AWS サービスを呼び出す場合、呼び出しは、自分のアカウント ID ではなく Amazon Redshift サービスに属するアカウント ID で記録されます。たとえば、AmazonRedshift が CreateGrant、Decrypt、Encrypt、RetireGrant などの AWS Key Management Service (AWSKMS) アクションを呼び出してクラスターの暗号化を管理する場合、呼び出しは Amazon Redshift アカウント ID を使用して AWS CloudTrail によって記録されます。

Amazon Redshift は他の AWS サービスを呼び出すときに、以下の表のアカウント ID を使用します。

265

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

リージョン リージョン アカウント ID

米国東部 (バージニア北部) リージョン

us-east-1 368064434614

米国東部 (オハイオ) リージョン us-east-2 790247189693

米国西部 (北カリフォルニア) リージョン

us-west-1 703715109447

米国西部 (オレゴン) リージョン us-west-2 473191095985

アジアパシフィック (香港) リージョン

ap-east-1 651179539253

アジアパシフィック (ムンバイ)リージョン

ap-south-1 408097707231

アジアパシフィック (大阪: ローカル) リージョン

ap-northeast-3 398671365691

アジアパシフィック (ソウル) リージョン

ap-northeast-2 713597048934

アジアパシフィック (シンガポール) リージョン

ap-southeast-1 960118270566

アジアパシフィック (シドニー)リージョン

ap-southeast-2 485979073181

アジアパシフィック (東京) リージョン

ap-northeast-1 615915377779

カナダ (中部) リージョン ca-central-1 764870610256

欧州 (フランクフルト) リージョン eu-central-1 434091160558

欧州 (アイルランド) リージョン eu-west-1 246478207311

欧州 (ロンドン) リージョン eu-west-2 885798887673

EU (パリ) リージョン eu-west-3 694668203235

欧州 (ストックホルム) リージョン eu-north-1 553461782468

中東 (バーレーン) リージョン me-south-1 051362938876

南米 (サンパウロ) リージョン sa-east-1 392442076723

次の例は、Amazon Redshift から呼び出された AWS KMS Decrypt オペレーションの CloudTrail ログエントリを示しています。

{

"eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAI5QPCMKLTL4VHFCYY:i-0f53e22dbe5df8a89", "arn": "arn:aws:sts::790247189693:assumed-role/prod-23264-role-wp/i-0f53e22dbe5df8a89",

266

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

"accountId": "790247189693", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:24:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAI5QPCMKLTL4VHFCYY", "arn": "arn:aws:iam::790247189693:role/prod-23264-role-wp", "accountId": "790247189693", "userName": "prod-23264-role-wp" } } }, "eventTime": "2017-03-03T17:16:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-2", "sourceIPAddress": "52.14.143.61", "userAgent": "aws-internal/3", "requestParameters": { "encryptionContext": { "aws:redshift:createtime": "20170303T1710Z", "aws:redshift:arn": "arn:aws:redshift:us-east-2:123456789012:cluster:my-dw-instance-2" } }, "responseElements": null, "requestID": "30d2fe51-0035-11e7-ab67-17595a8411c8", "eventID": "619bad54-1764-4de4-a786-8898b0a7f40c", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-2:123456789012:key/f8f4f94f-e588-4254-b7e8-078b99270be7", "accountId": "123456789012", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012", "sharedEventID": "c1daefea-a5c2-4fab-b6f4-d8eaa1e522dc"

}

コンソールを使用して監査を設定する監査ログファイルを作成し、S3 に格納するように Amazon Redshift を設定できます。

コンソールを使用して監査ログ作成を有効にする

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters (クラスター)] をクリックします。3. リストで、ログ作成を有効にするクラスターをクリックします。4. クラスターの詳細ページで、[Database (データベース)] をクリックし、[Configure Audit Logging (監

査ログ作成の設定)] をクリックします。5. [Configure Audit Logging (監査ログ作成の設定)] ダイアログボックスで、[Enable Audit Logging (監査

ログ作成の有効化)] ボックスの [Yes (はい)] をクリックします。

267

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

6. [S3 Bucket (S3 バケット)] で、次のいずれかを実行します。

• 使用する S3 バケットが既にある場合、[Use Existing (既存の使用)] を選択し、[Bucket (バケット)]リストからバケットを選択します。

• 新しい S3 バケットが必要な場合は、[Create New (新規作成)] を選択し、[New Bucket Name (新しいバケット名)] ボックスに名前を入力します。

7. 任意で、[S3 Key Prefix (S3 キープレフィックス)] ボックスに S3 バケットに追加するプレフィックスを入力します。

8. [Save] をクリックします。

監査ログ作成を設定すると、[Cluster (クラスター)] 詳細ページが更新され、ログ作成の設定に関する情報が表示されます。

[Cluster (クラスター)] 詳細ページの、[Backup, Maintenance, and Logging (バックアップ、メンテナンス、およびログ作成)] の下の [Go to the S3 console (S3 コンソールに移動)] をクリックして、バケットに移動します。

268

Amazon Redshift クラスター管理ガイドデータベース監査ログ作成

監査ログ作成のバケットを変更する

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters (クラスター)] をクリックします。3. リストで、監査ログ作成に使用されており、変更するバケットのクラスターをクリックします。4. クラスターの詳細ページで、[Database (データベース)] をクリックし、[Configure Audit Logging (監

査ログ作成の設定)] をクリックします。5. [S3 Bucket (S3 バケット)] で、既存のバケットを選択するか、新しいバケットを作成します。6. 任意で、[S3 Key Prefix (S3 キープレフィックス)] ボックスに S3 バケットに追加するプレフィックス

を入力します。7. [Save] をクリックします。

コンソールを使用して監査ログ作成を無効にする

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters (クラスター)] をクリックします。3. リストで、ログ作成を無効にするクラスターをクリックします。4. クラスターの詳細ページで、[Database (データベース)] をクリックし、[Configure Audit Logging (監

査ログ作成の設定)] をクリックします。5. [Configure Audit Logging (監査ログ作成の設定)] ダイアログボックスで、[Enable Audit Logging (監査

ログ作成の有効化)] ボックスの [No (いいえ)] をクリックします。

6. [Save] をクリックします。

Amazon Redshift CLI および API を使用してログ作成を設定する以下の Amazon Redshift CLI 操作を使用して監査ログ作成を設定できます。

• describe-logging-status• disable-logging• enable-logging

以下の Amazon Redshift API アクションを使用して、監査ログ作成を設定できます。

269

Amazon Redshift クラスター管理ガイドコンプライアンス検証

• DescribeLoggingStatus• DisableLogging• EnableLogging

Amazon Redshift のコンプライアンス検証サードパーティーの監査者は、複数の AWS コンプライアンスプログラムの一環として Amazon Redshiftのセキュリティとコンプライアンスを評価します。このプログラムには、SOC、PCI、FedRAMP、HIPAAなどがあります。

特定のコンプライアンスプログラムの範囲内の AWS サービスのリストについては、「コンプライアンスプログラムによる AWS 対象範囲内のサービス」を参照してください。一般的な情報については、「AWSコンプライアンスプログラム」を参照してください。

サードパーティーの監査レポートをダウンロードするには、AWS Artifact を使用します。詳細については、「AWS Artifact のレポートのダウンロード」を参照してください。

Amazon Redshift を使用する際のお客様のコンプライアンス責任は、お客様のデータの機密性や組織のコンプライアンス目的、適用可能な法律および規制によって決定されます。Amazon Redshift の使用がHIPAA、PCI、FedRAMP などの規格に準拠していることを前提としている場合、AWS は以下を支援するリソースを提供します。

• セキュリティおよびコンプライアンスのクイックスタートガイドでは、AWS のデプロイメントセキュリティやコンプライアンスに重点を置いたベースライン環境におけるアーキテクチャ上の考慮事項や手順について説明しています。

• HIPAA のセキュリティとコンプライアンスに関するホワイトペーパーを作成する。このホワイトペーパーでは、企業が AWS を使用して HIPAA 準拠のアプリケーションを作成する方法について説明します。

• AWS コンプライアンスのリソース。お客様の業界や場所に適用される可能性があるワークブックおよびガイド。

• AWS Config。この AWS のサービスでは、自社プラクティス、業界ガイドライン、および規制に対するリソースの設定の準拠状態を評価します。

• AWS セキュリティハブ。この AWS のサービスは、AWS 内でのお客様のセキュリティ状態を総合的に把握するためのもので、セキュリティ業界における標準やベストプラクティスを遵守できているか確認するのに役立ちます。

次のコンプライアンスおよびセキュリティドキュメントは Amazon Redshift を対象としており、AWSArtifact を通じてオンデマンドで入手できます。詳細については、「AWS Artifact」を参照してください。

• クラウドコンピューティングコンプライアンスコントロールカタログ (C5)• ISO 27001:2013 適用宣言書 (SoA)• ISO 27001:2013 認証• ISO 27017:2015 適用宣言書 (SoA)• ISO 27017:2015 認証• ISO 27018:2015 適用宣言書 (SoA)• ISO 27018:2014 認証• ISO 9001:2015 認証• PCI DSS Attestation of Compliance (AOC) と Responsibility Summary• Service Organization Controls (SOC) 1 レポート• Service Organization Controls (SOC) 2 レポート

270

Amazon Redshift クラスター管理ガイド耐障害性

• Service Organization Controls (SOC) 2 機密性に関するレポート

Amazon Redshift の耐障害性AWS のグローバルインフラストラクチャは AWS リージョンとアベイラビリティーゾーン (AZ) を中心として構築されます。AWS リージョンでは、複数の物理的に独立して隔離されたアベイラビリティーゾーンが、低レイテンシー、高スループット、高冗長性のネットワークにより接続されています。アベイラビリティーゾーンでは、アベイラビリティーゾーン間で中断することなく自動的にフェイルオーバーするアプリケーションとデータベースを設計および運用することができます。また、アベイラビリティーゾーンは、従来の単一データセンターのインフラストラクチャや複数データセンターのインフラストラクチャよりも可用性、耐障害性、および拡張性に優れています。

ほとんどの AWS リージョンには、複数のアベイラビリティーゾーンとデータセンターがあります。耐障害性と低レイテンシーのために、同じリージョン内の複数のアベイラビリティーゾーンにアプリケーションをデプロイできます。

AWS リージョンとアベイラビリティーゾーンの詳細については、「AWS グローバルインフラストラクチャ」を参照してください。

Amazon Redshift のインフラストラクチャセキュリティ

マネージド型サービスである Amazon Redshift は、ホワイトペーパー「アマゾン ウェブ サービスのセキュリティプロセスの概要」に記載されている AWS グローバルネットワークセキュリティの手順で保護されています。

AWS が公開した API コールを使用して、ネットワーク経由で Amazon Redshift にアクセスします。クライアントで Transport Layer Security (TLS) 1.0 以降がサポートされている必要があります。TLS 1.2 以降が推奨されています。また、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman(ECDHE) などの Perfect Forward Secrecy (PFS) を使用した暗号スイートもクライアントでサポートされている必要があります。これらのモードは、Java 7 以降など、最近のほとんどのシステムでサポートされています。

また、リクエストは、アクセスキー ID と、IAM プリンシパルに関連付けられているシークレットアクセスキーを使用して署名する必要があります。または、AWS Security Token Service (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

これらの API オペレーションは任意のネットワークの場所から呼び出すことができます。さらに、Amazon Redshift はリソースベースのアクセスポリシーをサポートしており、それらのポリシーには、ソース IP アドレスに基づく制限を含めることができます。

ネットワークの隔離Amazon VPC サービスに基づく Virtual Private Cloud (VPC) は、AWS クラウド内の論理的に隔離されたプライベートネットワークです。以下の手順を実行して、VPC 内に Amazon Redshift クラスターをデプロイできます。

• AWS リージョンに VPC を作成します。詳細については、Amazon VPC ユーザーガイド の「AmazonVPC とは」を参照してください。

• 2 つ以上のプライベート VPC サブネットを作成します。詳細については、『Amazon VPC ユーザーガイド』の「VPC とサブネット」を参照してください。

• Amazon Redshift クラスターをデプロイします。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 45)」を参照してください。

271

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

Amazon Redshift クラスターは、プロビジョニング時にデフォルトでロックされます。Amazon Redshiftクライアントからのインバウンドネットワークトラフィックを許可するには、VPC セキュリティグループを Amazon Redshift クラスターに関連付けます。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 45)」を参照してください。

特定の IP アドレス範囲へのトラフィックまたは特定の IP アドレス範囲からのトラフィックのみを許可するには、VPC を使用してセキュリティグループを更新します。一例として、企業ネットワークからのトラフィックまたは企業ネットワークへのトラフィックのみを許可する場合があります。

Amazon Redshift は、専用テナンシー VPC へのクラスターのデプロイをサポートしています。詳細については、『Amazon EC2 ユーザーガイド』の「専有インスタンス」を参照してください。

Amazon Redshift クラスターセキュリティグループAmazon Redshift クラスターをプロビジョニングすると、デフォルトではロックされているため、誰もアクセスすることはできません。他のユーザーに Amazon Redshift クラスターへのインバウンドアクセスを許可するには、クラスターをセキュリティグループに関連付けます。EC2-VPC プラットフォームを使用する場合は、既存の Amazon VPC セキュリティグループを使用するか、新しいグループを定義してクラスターに関連付けることができます。EC2-VPC プラットフォームでのクラスターの管理の詳細については、「Amazon Virtual Private Cloud (VPC) でクラスターを管理する (p. 41)」を参照してください。

EC2-Classic プラットフォームを使用する場合は、後のセクションで示すようにクラスターセキュリティグループを定義してクラスターに関連付けます。クラスターは、EC2-Classic プラットフォームではなくEC2-VPC プラットフォームで起動することをお勧めします。ただし、Amazon Redshift コンソールを使用して EC2-Classic スナップショットを EC2-VPC クラスターに復元できます。詳細については、「スナップショットからのクラスターの復元 (p. 175)」を参照してください。

トピック• 概要 (p. 272)• コンソールを使用したクラスターセキュリティグループの管理 (p. 273)• AWS SDK for Java を使用したクラスターセキュリティグループの管理 (p. 281)• Amazon Redshift CLI および API を使用したクラスターセキュリティグループの管理 (p. 284)

概要クラスターセキュリティグループは、クラスターへのアクセスを制御するルールセットで構成されます。個々のルールは、IP アドレスの範囲またはクラスターへのアクセスが許可されている Amazon EC2 セキュリティグループを識別します。クラスターセキュリティグループをクラスターに関連付けると、クラスターセキュリティグループで定義されているルールがクラスターへのアクセスを制御します。

クラスターのプロビジョニングとは関係なくクラスターセキュリティグループを作成できます。クラスターをプロビジョニングするとき、またはその後のどちらでも、クラスターセキュリティグループをAmazon Redshift クラスターと関連付けることができます。また、クラスターセキュリティグループを複数のクラスターに関連付けることもできます。

Amazon Redshift では、最初のクラスターを起動すると、default と呼ばれるクラスターセキュリティグループが自動的に作成されます。初期状態では、このクラスターセキュリティグループは空です。インバウンドアクセスルールをデフォルトのクラスターセキュリティグループに追加し、それを AmazonRedshift クラスターに関連付けることができます。

default クラスターセキュリティグループだけで十分であれば、独自のグループを作成する必要はありません。しかし、クラスターへのインバウンドアクセスをより効果的に管理するために独自のクラスターセキュリティグループを作成することもできます。たとえば、Amazon Redshift クラスターでサービスを実行していて、数社のお客様がいると仮定します。すべての顧客に同じアクセス権を与えたくない場合は、会社ごとに 1 つのクラスターセキュリティグループを作成することをお勧めします。会社に固有の Amazon EC2 セキュリティグループと IP アドレス範囲を識別するため、各クラスターセキュリティグ

272

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

ループにルールを追加できます。その後、これらすべてのクラスターセキュリティグループをクラスターに関連付けることができます。

1 つのクラスターセキュリティグループを複数のクラスターと関連付けることも、複数のクラスターセキュリティグループを 1 つのクラスターと関連付けることもできます。ただし、AWS のサービスの制限によります。詳細については、「Amazon Redshift における制限」を参照してください。

Amazon Redshift コンソールを使用してクラスターセキュリティグループを管理することも、AmazonRedshift API または AWS SDK を使用してプログラムによってクラスターセキュリティグループを管理することもできます。

Amazon Redshift では、クラスターセキュリティグループへの変更は直ちに適用されます。そのため、クラスターセキュリティグループがクラスターに関連付けられていると、更新されたクラスターセキュリティグループのインバウンドクラスターアクセスルールも直ちに適用されます。

コンソールを使用したクラスターセキュリティグループの管理Amazon Redshift コンソールを使用してクラスターセキュリティグループを作成、変更、および削除できます。また、Amazon Redshift コンソールで default クラスターセキュリティグループを管理することもできます。タスクはすべて、クラスターセキュリティグループリストから開始します。クラスターセキュリティグループを管理するには、管理対象のクラスターサブネットグループを選択する必要があります。

以下のクラスターセキュリティグループリストの例には、2 つのクラスターセキュリティグループ、default クラスターセキュリティグループ、および securitygroup1 と呼ばれるカスタムクラスターセキュリティグループがあります。securitygroup1 が選択 (強調表示) されているので、それを削除したり、そのタグを管理したりできるほか、それに関連付けられているルールおよびタグを確認することもできます。

default クラスターセキュリティグループを削除することはできませんが、進入アクセスを認可するか取り消すことでそれを変更できます。

セキュリティグループに関連付けられているルールを追加または変更するには、セキュリティグループを選択して [セキュリティグループの接続] ページに移動します。

クラスターセキュリティグループの作成

クラスターセキュリティグループを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。3. [セキュリティグループ] タブで、[クラスターセキュリティグループの作成] をクリックします。

273

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

4. [クラスターセキュリティグループの作成] ダイアログボックスで、クラスターセキュリティグループの名前と説明を指定します。

5. [Create] を選択します。

新しいグループがクラスターセキュリティグループのリストに表示されます。

クラスターセキュリティグループのタグ付け

クラスターセキュリティグループにタグを付けるには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。3. [セキュリティグループ] タブでクラスターセキュリティグループを選択し、[タグの管理] をクリック

します。

4. [タグの管理] ダイアログボックスで、次のいずれかを実行します。

274

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

a. タグを削除します。

• [適用されたタグ] セクションで、削除するタグの横にある [削除] を選択します。• [変更の適用] を選択します。

b. タグを追加します。

• [タグの追加] セクションで、タグのキーと値のペアを入力します。• [変更の適用] を選択します。

275

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

Amazon Redshift リソースのタグ付けの詳細については、『Amazon Redshift コンソールでタグを管理する方法 (p. 356)』を参照してください。

クラスターセキュリティグループの進入ルールの管理

クラスターセキュリティグループの進入ルールを管理するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。3. [Security Groups (セキュリティグループ)] タブのクラスターセキュリティグループリストで、ルール

を管理するクラスターセキュリティグループを選択します。4. [Security Group Connections (セキュリティグループ接続)] タブで、[Add Connection Type (接続タイ

プを追加)] を選択します。

5. [接続タイプの追加] ダイアログで、次のいずれかを実行します。

276

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

a. CIDR/IP に基づく進入ルールを追加します。

• [Connection Type (接続タイプ)] ボックスで、[CIDR/IP] を選択します。• [CIDR/IP] ボックスで、範囲を指定します。• [承認] を選択します。

b. EC2 セキュリティグループに基づく進入ルールを追加します。

• [接続タイプ] で [EC2 セキュリティグループ] を選択します。• 使用する AWS アカウントを選択します。デフォルトでは、現在コンソールにログインしてい

るアカウントが使用されます。[別のアカウント] を選択すると、AWS アカウント ID を指定する必要があります。

• [EC2 セキュリティグループ名] ボックスで、使用する EC2 セキュリティグループの名前をクリックします。

• [承認] を選択します。

クラスターセキュリティグループの進入ルールの取り消し

クラスターセキュリティグループの進入ルールを取り消すには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。

277

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

3. [Security Groups (セキュリティグループ)] タブのクラスターセキュリティグループリストで、ルールを管理するクラスターセキュリティグループを選択します。

4. [セキュリティグループの接続] タブで、削除するルールを選択し、[取り消し] をクリックします。

クラスターセキュリティグループの進入ルールのタグ付け

クラスターセキュリティグループの進入ルールにタグを付けるには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。3. [セキュリティグループ] タブで、ルールを管理する対象のクラスターセキュリティグループをクリッ

クします。4. [セキュリティグループの接続] タブで、タグを付けるルールを選択し、[タグの管理] をクリックしま

す。

5. [タグの管理] ダイアログボックスで、次のいずれかを実行します。

a. タグを削除します。

• [適用されたタグ] セクションで、削除するタグの横にある [削除] を選択します。• [変更の適用] を選択します。

278

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

b. タグを追加します。

Note

EC2 セキュリティグループルールをタグ付けすると、EC2 セキュリティグループ自体ではなくルールにタグが付けられます。EC2 セキュリティグループにもタグ付けする場合、別個に行う必要があります。

• [タグの追加] セクションで、タグのキーと値のペアを入力します。• [変更の適用] を選択します。

279

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

Amazon Redshift リソースのタグ付けの詳細については、『Amazon Redshift コンソールでタグを管理する方法 (p. 356)』を参照してください。

クラスターセキュリティグループの削除

1 つ以上のクラスターに関連付けられているクラスターセキュリティグループは削除できません。

クラスターセキュリティグループを削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[セキュリティ] を選択します。3. [セキュリティグループ] タブで、削除するクラスターセキュリティグループを選択し、[削除] を選択

します。

1 つの行を選択して、[削除] ボタンを有効にする必要があります。

Note

default クラスターセキュリティグループは削除できません。

280

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

4. [クラスターセキュリティグループの削除] ダイアログボックスで [続行] を選択します。

クラスターによって使用されているクラスターセキュリティグループは削除できません。次の例では、securitygroup1 が examplecluster2 で使用されていることを示します。

クラスターセキュリティグループとクラスターの関連付け

EC2-VPC プラットフォームを使用する場合は、「クラスターの VPC セキュリティグループの管理 (p. 44)」を参照して、VPC セキュリティグループをクラスターに関連付ける方法を確認してください。クラスターは EC2-VPC プラットフォームで起動することをお勧めします。ただし、Amazon Redshift コンソールを使用して EC2-Classic スナップショットを EC2-VPC クラスターに復元できます。詳細については、「スナップショットからのクラスターの復元 (p. 175)」を参照してください。

EC2-Classic プラットフォームでプロビジョニングするクラスターごとに、1 つ以上のクラスターセキュリティグループが関連付けられます。クラスターの作成時にクラスターセキュリティグループをクラスターに関連付けることも、クラスターを変更することによってクラスターセキュリティグループを関連付けることもできます。詳細については、「[クラスターの起動] を使用したクラスターの作成 (p. 22)」および「クラスターを変更するには (p. 29)」を参照してください。

AWS SDK for Java を使用したクラスターセキュリティグループの管理次の例では、クラスターセキュリティグループで行う一般的な操作について説明します。

• 新しいクラスターセキュリティグループを作成します。• クラスターセキュリティグループに進入ルールを追加します。• クラスターの設定を変更してクラスターセキュリティグループをクラスターと関連付けます。

281

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

デフォルトでは、新規クラスターセキュリティグループを作成するときに、進入ルールは作成されていません。この例では、2 つの進入ルールを追加して新規クラスターセキュリティグループを変更します。1つの進入ルールは CIDR/IP 範囲を指定して追加し、もう 1 つのルールは所有者 ID と Amazon EC2 セキュリティグループの組み合わせを指定して追加します。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードを更新し、クラスター識別子および AWS アカウント番号を指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[CreateAndModifyClusterSecurityGroup demonstrates how to create and modify an Amazon Redshift security group.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[CreateClusterSecurityGroup]// snippet-keyword:[DescribeClusterSecurityGroups]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-02-01]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.CreateAndModifyClusterSecurityGroup.complete]

package com.amazonaws.services.redshift;

import java.io.IOException;import java.util.ArrayList;import java.util.List;

import com.amazonaws.services.redshift.model.*;

public class CreateAndModifyClusterSecurityGroup {

public static AmazonRedshift client; public static String clusterSecurityGroupName = "securitygroup1"; public static String clusterIdentifier = "***provide a cluster identifier***"; public static String ownerID = "***provide a 12-digit account number***";

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient();

try { createClusterSecurityGroup(); describeClusterSecurityGroups(); addIngressRules();

282

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

associateSecurityGroupWithCluster(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static void createClusterSecurityGroup() { CreateClusterSecurityGroupRequest request = new CreateClusterSecurityGroupRequest() .withDescription("my cluster security group") .withClusterSecurityGroupName(clusterSecurityGroupName);

client.createClusterSecurityGroup(request); System.out.format("Created cluster security group: '%s'\n", clusterSecurityGroupName); }

private static void addIngressRules() {

AuthorizeClusterSecurityGroupIngressRequest request = new AuthorizeClusterSecurityGroupIngressRequest() .withClusterSecurityGroupName(clusterSecurityGroupName) .withCIDRIP("192.168.40.5/32");

ClusterSecurityGroup result = client.authorizeClusterSecurityGroupIngress(request);

request = new AuthorizeClusterSecurityGroupIngressRequest() .withClusterSecurityGroupName(clusterSecurityGroupName) .withEC2SecurityGroupName("default") .withEC2SecurityGroupOwnerId(ownerID); result = client.authorizeClusterSecurityGroupIngress(request); System.out.format("\nAdded ingress rules to security group '%s'\n", clusterSecurityGroupName); printResultSecurityGroup(result); }

private static void associateSecurityGroupWithCluster() {

// Get existing security groups used by the cluster. DescribeClustersRequest request = new DescribeClustersRequest() .withClusterIdentifier(clusterIdentifier);

DescribeClustersResult result = client.describeClusters(request); List<ClusterSecurityGroupMembership> membershipList = result.getClusters().get(0).getClusterSecurityGroups();

List<String> secGroupNames = new ArrayList<String>(); for (ClusterSecurityGroupMembership mem : membershipList) { secGroupNames.add(mem.getClusterSecurityGroupName()); } // Add new security group to the list. secGroupNames.add(clusterSecurityGroupName);

// Apply the change to the cluster. ModifyClusterRequest request2 = new ModifyClusterRequest() .withClusterIdentifier(clusterIdentifier) .withClusterSecurityGroups(secGroupNames);

Cluster result2 = client.modifyCluster(request2); System.out.format("\nAssociated security group '%s' to cluster '%s'.", clusterSecurityGroupName, clusterIdentifier); }

private static void describeClusterSecurityGroups() { DescribeClusterSecurityGroupsRequest request = new DescribeClusterSecurityGroupsRequest();

283

Amazon Redshift クラスター管理ガイド個のセキュリティグループ

DescribeClusterSecurityGroupsResult result = client.describeClusterSecurityGroups(request); printResultSecurityGroups(result.getClusterSecurityGroups()); }

private static void printResultSecurityGroups(List<ClusterSecurityGroup> groups) { if (groups == null) { System.out.println("\nDescribe cluster security groups result is null."); return; }

System.out.println("\nPrinting security group results:"); for (ClusterSecurityGroup group : groups) { printResultSecurityGroup(group); } } private static void printResultSecurityGroup(ClusterSecurityGroup group) { System.out.format("\nName: '%s', Description: '%s'\n", group.getClusterSecurityGroupName(), group.getDescription()); for (EC2SecurityGroup g : group.getEC2SecurityGroups()) { System.out.format("EC2group: '%s', '%s', '%s'\n", g.getEC2SecurityGroupName(), g.getEC2SecurityGroupOwnerId(), g.getStatus()); } for (IPRange range : group.getIPRanges()) { System.out.format("IPRanges: '%s', '%s'\n", range.getCIDRIP(), range.getStatus());

} }}// snippet-end:[redshift.java.CreateAndModifyClusterSecurityGroup.complete]

Amazon Redshift CLI および API を使用したクラスターセキュリティグループの管理以下の Amazon Redshift CLI オペレーションを使用してクラスターセキュリティグループを管理できます。

• authorize-cluster-security-group-ingress• create-cluster-security-group• delete-cluster-security-group• describe-cluster-security-groups• revoke-cluster-security-group-ingress

以下の Amazon Redshift API オペレーションを使用してクラスターセキュリティグループを管理できます。

• AuthorizeClusterSecurityGroupIngress• CreateClusterSecurityGroup• DeleteClusterSecurityGroup• DescribeClusterSecurityGroups• RevokeClusterSecurityGroupIngress

284

Amazon Redshift クラスター管理ガイド設定と脆弱性の分析

Amazon Redshift での設定と脆弱性の分析AWS は、ゲストオペレーティングシステム (OS) やデータベースへのパッチ適用、ファイアウォール設定、災害対策 (DR) などの基本的なセキュリティタスクを処理します。これらの手順は認定を受けたサードパーティーによって確認されています。詳細については、「Amazon Redshift のコンプライアンス検証 (p. 270)」、「共有責任モデル」、およびホワイトペーパー「アマゾン ウェブ サービス: セキュリティプロセスの概要」を参照してください。

Amazon Redshift によって自動的に更新やパッチがデータウェアハウスに適用されるので、お客様は管理作業ではなくアプリケーションそのものに集中することができます。パッチとアップグレードは、設定可能なメンテナンスウィンドウ中に適用されます。詳細については、「メンテナンスウィンドウ (p. 13)」を参照してください。

285

Amazon Redshift クラスター管理ガイド

Amazon Redshift 管理インターフェイスの使用

Amazon Redshift は、AWS SDK、AWS Command Line Interface (AWS CLI)、および Amazon Redshift 管理 API という、Amazon Redshift クラスターの作成、管理、削除に使用できる複数の管理インターフェイスをサポートしています。

Amazon Redshift API – リクエストを送信することでこの Amazon Redshift 管理 API を呼び出すことができます。リクエストは、Action という名前のパラメータで HTTP 動詞 GET または POST を使用するHTTP または HTTPS リクエストです。Amazon Redshift API の呼び出しは、Amazon Redshift サービスにアクセスする最も直接的な方法です。しかし、エラー処理やリクエストに署名するハッシュの生成など、低レベルの詳細な作業をアプリケーションで処理する必要があります。

• Amazon Redshift API リクエストの構築と署名の詳細については、HTTP リクエストへの署名 (p. 289)を参照してください。

• Amazon Redshift の Amazon Redshift API アクションおよびデータ型の詳細については、AmazonRedshift API リファレンスを参照してください。

AWS SDK – AWS SDK は Amazon Redshift クラスター関連の操作に使用できます。一部の SDK ライブラリは基礎となる Amazon Redshift API をラップします。このようなライブラリは、特定のプログラミング言語に API 機能を統合し、多くの低レベルの詳細な作業 (署名の計算、リクエスト再試行の処理、エラー処理など) を処理します。SDK ライブラリのラッパー関数を呼び出すことで、Amazon Redshift クラスターを管理するアプリケーションの作成プロセスが大幅に簡易化されます。

• Amazon Redshift は、AWS SDKs for Java、.NET、PHP、Python、Ruby、および Node.js でサポートされています。Amazon Redshift のラッパー関数の詳細については、各 SDK のリファレンスマニュアルを参照してください。AWS SDK のリストとマニュアルのリンクについては、Amazon Web Services 用のツールに関する記事を参照してください。

• このガイドでは、Java SDK を使用して Amazon Redshift を操作する例について説明します。これ以外の AWS SDK コードサンプルについては、「サンプルコードとライブラリ」を参照してください。

AWS CLI – CLI では、Windows、Mac、および Linux コンピュータから AWS サービスを管理する際に使用できるコマンドラインツールセットが用意されています。AWS CLI には、Amazon Redshift API アクションに基づくコマンドが含まれています。

• Amazon Redshift CLI のインストールとセットアップの詳細については、「Amazon Redshift CLI のセットアップ (p. 291)」を参照してください。

• Amazon Redshift CLI コマンドのリファレンスドキュメントについては、AWS CLI リファレンスの「Amazon Redshift」を参照してください。

トピック• Amazon Redshift での AWS SDK for Java の使用 (p. 287)• HTTP リクエストへの署名 (p. 289)• Amazon Redshift CLI のセットアップ (p. 291)

286

Amazon Redshift クラスター管理ガイドUsing the AWS SDK for Java

Amazon Redshift での AWS SDK for Java の使用AWS SDK for Java には AmazonRedshiftClientBuilder というクラスがあります。このクラスを使用して Amazon Redshift とやり取りすることができます。AWS SDK for Java のダウンロードの詳細については、「AWS SDK for Java 」を参照してください。

Note

AWS SDK for Java には、Amazon Redshift へのアクセスに使用できるスレッドセーフなクライアントが用意されています。最善の方法としては、ご利用のアプリケーションでクライアントを 1つ作成し、そのクライアントをスレッド間で再利用することです。

AmazonRedshiftClientBuilder および AwsClientBuilder クラスを使用して、エンドポイントを設定し、AmazonRedshift クライアントを作成できます。その後、クライアントオブジェクトを使用して、Cluster オブジェクトのインスタンスを作成できます。Cluster オブジェクトには、基盤となるAmazon Redshift クエリ API のアクションに対応するメソッドが含まれます(これらのアクションについては、Amazon Redshift の「API リファレンス」を参照してください)。メソッドを呼び出す場合、対応するリクエストオブジェクトを作成する必要があります。リクエストオブジェクトには、実際のリクエストで渡す必要がある情報が含まれます。Cluster オブジェクトでは、リクエストに対する応答で AmazonRedshift から返される情報が提供されます。

次の例では、AmazonRedshiftClientBuilder クラスを使用して、エンドポイントを設定してから 2ノードの ds1.xlarge クラスターを作成する方法を示しています。

String endpoint = "https://redshift.us-east-1.amazonaws.com/";String region = "us-east-1";AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration(endpoint, region);AmazonRedshiftClientBuilder clientBuilder = AmazonRedshiftClientBuilder.standard();clientBuilder.setEndpointConfiguration(config);AmazonRedshift client = clientBuilder.build();

CreateClusterRequest request = new CreateClusterRequest() .withClusterIdentifier("exampleclusterusingjava") .withMasterUsername("masteruser") .withMasterUserPassword("12345678Aa") .withNodeType("ds1.xlarge") .withNumberOfNodes(2);

Cluster createResponse = client.createCluster(request);System.out.println("Created cluster " + createResponse.getClusterIdentifier());

Eclipse を使用した Amazon Redshift の Java 実行例Eclipse を使用した Java コード実行の一般的な手順例

1. Eclipse で新しい [AWS Java Project (AWS Java プロジェクト)] を作成します。

AWS Toolkit for Eclipse Getting Started Guide の AWS Toolkit for Eclipse をセットアップする手順に従います。

2. お読みになっているこのドキュメントのセクションからサンプルコードをコピーし、新しい Java クラスファイルとしてプロジェクトに貼り付けます。

3. コードを実行します。

287

Amazon Redshift クラスター管理ガイドコマンドラインからの Java 実行例

コマンドラインからの Amazon Redshift の Java 実行例コマンドラインからの Java コード実行例の一般的な手順

1. 次のように環境をセットアップし、テストします。a. 作業するディレクトリを作成し、そのディレクトリに src、bin、および sdk サブフォルダを作成

します。b. AWS SDK for Java をダウンロードし、作成した sdk サブフォルダに展開します。SDK を展開する

と、sdk フォルダ内に 4 つのサブフォルダが作成されます (lib、third-party フォルダなど)。c. AWS SDK for Java に AWS 認証情報を指定します。詳細については、AWS SDK for Java Developer

Guide の「AWS SDK for Java での AWS 認証情報の提供」を参照してください。d. Java プログラムコンパイラ (javac) と Java アプリケーションランチャー (java) を作業ディレクト

リから実行できることを確認します。次のコマンドを実行することでテストできます。

javac -helpjava -help

2. 実行するコードを .java ファイルに記入し、そのファイルを src フォルダに保存します。このプロセスを説明するために、ここでは、AWS SDK for Java を使用したクラスターセキュリティグループの管理 (p. 281) のコードを使用し、src ディレクトリのファイルが CreateAndModifyClusterSecurityGroup.java になるようにしています。

3. コードをコンパイルします。

javac -cp sdk/lib/aws-java-sdk-1.3.18.jar -d bin src\CreateAndModifyClusterSecurityGroup.java

別バージョンの AWS SDK for Java を使用している場合、バージョンのクラスパス (-cp) を調整します。

4. コードを実行します。次のコマンドでは、読みやすくするために改行が加えられています。

java -cp "bin; sdk/lib/*; sdk/third-party/commons-logging-1.1.1/*; sdk/third-party/httpcomponents-client-4.1.1/*; sdk/third-party/jackson-core-1.8/*" CreateAndModifyClusterSecurityGroup

お使いのオペレーティングシステムに合わせて、必要に応じてクラスパスの区切り文字を変更してください。例えば、Windows の区切り文字は例のように「;」ですが、Unix の場合は「:」です。コード例によっては、この例よりも多くのライブラリが必要になる場合があります。また、使用している AWSSDK のバージョンによってはサードパーティフォルダ名が異なる場合があります。このような場合は、必要に応じてクラスパス (-cp) を調整してください。

このドキュメントのサンプルを実行するには、Amazon Redshift をサポートする AWS SDK のバージョンを使用してください。最新バージョンの AWS SDK for Java を入手するには、「AWS SDK for Java」を参照してください。

288

Amazon Redshift クラスター管理ガイドエンドポイントの設定

エンドポイントの設定デフォルトで、AWS SDK for Java はエンドポイント https://redshift.us-east-1.amazonaws.com/ を使用しています。次の Java コードスニペットに示すように、client.setEndpoint メソッドを使用してエンドポイントを明示的に設定できます。

Example

client = new AmazonRedshiftClient(credentials);client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");

クラスターをプロビジョニングできるサポート対象の AWS リージョンのリストについては、アマゾンウェブ サービス用語集の「リージョンとエンドポイント」セクションを参照してください。

HTTP リクエストへの署名Amazon Redshift では、管理 API に送信するすべてのリクエストが署名によって認証されている必要があります。このトピックでは、リクエストに署名する方法について説明します。

いずれかの AWS Software Development Kit (SDK) または AWS コマンドラインインターフェイスを使用する場合、リクエストは自動的に署名されるため、このセクションは省略してかまいません。AWS SDKの使用方法の詳細については、「Amazon Redshift 管理インターフェイスの使用 (p. 286)」を参照してください。Amazon Redshift コマンドラインインターフェイスの詳細な使用方法については、「AmazonRedshift コマンドラインリファレンス」を参照してください。

リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。暗号化ハッシュは、入力データから一意のハッシュ値生成して返す関数です。ハッシュ関数に渡される入力データとしては、リクエストのテキスト、およびシークレットアクセスキーが該当します。ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リクエストの Authorization ヘッダーの一部です。

Note

For API access, you need an access key ID and secret access key. Use IAM user access keysinstead of AWS アカウントのルートユーザー access keys. For more information about creatingaccess keys, see Managing Access Keys for IAM Users in the IAM ユーザーガイド.

Amazon Redshift は、リクエストを受け取ると、リクエストの署名に使用されたものと同じハッシュ関数と入力データを使用して署名を再計算します。再計算された署名がリクエストに含まれる署名と一致した場合、Amazon Redshift はリクエストを処理します。それ以外の場合、リクエストは拒否されます。

Amazon Redshift は、AWS 署名バージョン 4 を使用した認証をサポートします。署名を計算するプロセスは 3 つのタスクで構成されます。これらのタスクをこの後の例に示します。

• タスク 1: 正規リクエストを作成する

HTTP リクエストを正規形式に変換します。正規形式を使用する必要がある理由は、送信した署名と比較するために、Amazon Redshift で同じ正規形式を使用して署名が計算されるためです。

• タスク 2: 署名文字列を作成する

暗号化ハッシュ関数への入力値の 1 つとして使用する文字列を作成します。署名文字列と呼ばれる文字列は、ハッシュアルゴリズムの名前、要求日付、認証情報スコープの文字列、および前のタスクで正規化されたリクエストを結合したものです。認証情報スコープの文字列自体は、日付、リージョン、およびサービス情報を結合したものです。

• タスク 3: 署名を作成する

289

Amazon Redshift クラスター管理ガイド署名の計算例

2 つの入力文字列 (署名文字列と派生キー) を受け取る暗号化ハッシュ関数を使用して、リクエストの署名を作成します。シークレットアクセスキーから、認証情報スコープの文字列を使用して一連のハッシュベースのメッセージ認証コード (HMAC-SHA256) を作成することで、派生キーが計算されます。

署名の計算例次の例に、CreateCluster リクエストの署名を作成する詳細な手順を示します。この例を参考にして実際の署名の計算方法を確認できます。その他の参考計算例については、アマゾン ウェブ サービス用語集の「Signature Version 4 Test Suite」を参照してください。

GET または POST リクエストを使用してリクエストを Amazon Redshift に送信できます。この 2 つの違いとして、GET リクエストではパラメータがクエリ文字列パラメータとして送信されるのに対し、POSTリクエストではパラメータがリクエストの本文に含まれます。次の例は POST リクエストを示しています。

例では、次のように想定しています。

• リクエストのタイムスタンプは Fri, 07 Dec 2012 00:00:00 GMT• エンドポイントは米国東部 (バージニア北部) リージョン us-east-1

汎用リクエスト構文:

https://redshift.us-east-1.amazonaws.com/ ?Action=CreateCluster &ClusterIdentifier=examplecluster &MasterUsername=masteruser &MasterUserPassword=12345678Aa &NumberOfNode=2 &NodeType=ds1.xlarge &Version=2012-12-01 &x-amz-algorithm=AWS4-HMAC-SHA256 &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request &x-amz-date=20121207T000000Z &x-amz-signedheaders=content-type;host;x-amz-date

「タスク 1: 正規リクエストを作成する (p. 289)」で計算されるリクエストの正規形式は次のとおりです。

POST/

content-type:application/x-www-form-urlencoded; charset=utf-8host:redshift.us-east-1.amazonaws.comx-amz-date:20121207T000000Z

content-type;host;x-amz-date55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d

正規リクエストの最後の行はリクエストボディのハッシュです。この API にはクエリパラメータがないため、正規リクエストの 3 行目は空です。

「タスク 2: 署名する文字列を作成する (p. 289)」で署名する文字列は次のとおりです。

AWS4-HMAC-SHA25620121207T000000Z20121207/us-east-1/redshift/aws4_request

290

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI のセットアップ

06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714

署名する文字列の最初の行はアルゴリズム、2 行目はタイムスタンプ、3 行目は認証情報スコープ、最後の行は「タスク 1: 正規リクエストを作成する (p. 289)」で作成した正規リクエストのハッシュです。認証情報スコープで使用するサービス名は redshift です。

「タスク 3: 署名を作成する (p. 289)」について、派生キーは次のように表されます。

derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")

派生キーは連続するハッシュ関数として計算されます。上記の式の内側の HMAC ステートメントでは、「AWS4」というフレーズをシークレットアクセスキーと連結し、それをキーとして使用して「us-east-1」データをハッシュ処理します。このハッシュの結果が次のハッシュ関数のキーになります。

派生キーを計算した後、署名する文字列と派生キーという 2 つの入力文字列を受け取るハッシュ関数でそのキーを使用します。例えば、シークレットアクセスキー wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY を使用し、前述の文字列に署名する場合、計算された署名は次のようになります。

9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920

最後のステップは、Authorization ヘッダーの構築です。デモンストレーションのアクセスキーAKIAIOSFODNN7EXAMPLE の場合、ヘッダーは次のとおりです (読みやすいように改行しています)。

Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920

Amazon Redshift CLI のセットアップここでは、Amazon Redshift の管理に使用するために、AWS CLI コマンドラインツールをセットアップして実行する方法について説明します。Amazon Redshift コマンドラインツールは、AWS CommandLine Interface (AWS CLI) で実行されており、Python (https://www.python.org/) を使用します。AWS CLIは、Python をサポートするあらゆるオペレーティングシステムで実行できます。

インストール手順Amazon Redshift コマンドラインツールを初めて使用する場合、まず AWS CLI をセットアップし、Amazon Redshift CLI オプションを定義した設定ファイルを追加します。

別の AWS サービス用に AWS CLI を既にインストールして設定している場合は、この手順をスキップできます。

AWS Command Line Interface をインストールするには

1. 「AWS コマンドラインインターフェイスの設定」を参照し、AWS CLI のインストール手順に従います。

For CLI access, you need an access key ID and secret access key. Use IAM user access keys insteadof AWS アカウントのルートユーザー access keys. IAM lets you securely control access to AWSservices and resources in your AWS account. For more information about creating access keys, seeUnderstanding and Getting Your Security Credentials in the AWS General Reference.

291

Amazon Redshift クラスター管理ガイドAWS コマンドラインインターフェイスの使用開始

2. アクセスキー、デフォルトのリージョン、コマンドの出力形式など、設定情報を含むファイルを作成します。次に、そのファイルを参照する AWS_CONFIG_FILE 環境変数を設定します。詳細な手順については、AWS Command Line Interface ユーザーガイド の「AWS コマンドラインインターフェイスの設定」を参照してください。

3. テストコマンドを実行して、AWS CLI インターフェイスが機能していることを確認します。たとえば、次のコマンドを実行すると、AWS CLI のヘルプ情報が表示されます。

aws help

次のコマンドを実行すると、Amazon Redshift のヘルプ情報が表示されます。

aws redshift help

Amazon Redshift CLI コマンドのリファレンスドキュメントについては、AWS CLI リファレンスの「Amazon Redshift」を参照してください。

AWS コマンドラインインターフェイスの使用開始このセクションでは、コマンドラインインターフェイスの使用開始に役立つ、Amazon Redshift クラスターの基本的な管理タスクの実行方法を説明します。ここに示すタスクは「Amazon Redshift 入門ガイド」のタスクとよく似ていますが、Amazon Redshift コンソールではなくコマンドラインインターフェイスで実行します。

このセクションでは、クラスターの作成、データベーステーブルの作成、データのアップロードおよびクエリのテストの手順を説明します。まず Amazon Redshift CLI を使用してクラスターをプロビジョニングし、必要なアクセス権限を付与します。次に SQL Workbench クライアントを使用してクラスターに接続し、サンプルテーブルを作成してから、サンプルデータをアップロードし、テストクエリを実行します。

ステップ 1: 開始する前にまだ AWS アカウントをお持ちでない場合は、サインアップしてアカウントを作成してください。その後、Amazon Redshift コマンドラインツールを設定する必要があります。最後にクライアントツールおよびドライバーをダウンロードします。これはクラスターに接続するために使います。

ステップ 1.1: サインアップして AWS アカウントを作成するサインアップして AWS ユーザーアカウントを作成する方法については、「Amazon Redshift 入門ガイド」を参照してください。

ステップ 1.2: AWS コマンドラインインターフェイス (CLI) をダウンロードしてインストールするAWS コマンドラインインターフェイスをまだインストールしていない場合は、「Amazon Redshift CLI のセットアップ (p. 291)」を参照してください。

ステップ 1.3: クライアントツールおよびドライバーをダウンロードするPostgreSQL JDBC または ODBC ドライバーを使用する Amazon Redshift クラスターへの接続には、任意の SQL クライアントツールを使用できます。現在そのようなソフトウェアがインストールされていない場合は、SQL Workbench をおすすめします。SQL Workbench は無料のクロスプラットフォームツールです。このツールを使用して Amazon Redshift クラスター内のテーブルへのクエリを実行できます。このセクションの例では、SQL Workbench クライアントを使用しています。

SQL Workbench と PostgreSQL ドライバーをダウンロードする方法については、「Amazon RedshiftGetting Started Guide」にアクセスしてください。

292

Amazon Redshift クラスター管理ガイドAWS コマンドラインインターフェイスの使用開始

ステップ 2: クラスターを起動するこれで、AWS コマンドラインインターフェイス (CLI) を使用してクラスターを起動する準備ができました。

Important

ここで起動するクラスターはライブとなります (サンドボックスで実行されるわけではありません)。クラスターを終了するまで、そのクラスターについて標準使用料が発生します。料金表については、Amazon Redshift の料金表ページを参照してください。ここで説明した演習を中断せずに完了し、終了時にクラスターを終了すれば、合計料金はごくわずかです。

create-cluster コマンドには多くのパラメータがあります。この演習で使用するパラメータ値を次の表で説明します。要件に合ったクラスター構成を作成できるようにするため、実働環境にクラスターを作成する前に、すべての必須およびオプションのパラメータを確認することをお勧めします。詳細については、「create-cluster」を参照してください。

パラメータ名 この演習で使用するパラメータ値

Cluster Identifier examplecluster

Master Username masteruser

マスターパスワード TopSecret1

ノードタイプ ds1.xlarge または使用するノードサイズ。詳細については、「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

クラスタータイプ single-node

クラスターを作成するには、次のコマンドを入力します。

aws redshift create-cluster --cluster-identifier examplecluster --master-username masteruser --master-user-password TopSecret1 --node-type ds1.xlarge --cluster-type single-node

クラスター作成プロセスは、完了まで数分かかることがあります。状態を確認するには、次のコマンドを入力します。

aws redshift describe-clusters --cluster-identifier examplecluster

出力は次の例のようになります。

{ "Clusters": [ {

...output omitted...

"ClusterStatus": "creating", "ClusterIdentifier": "examplecluster",

...output omitted...

}

293

Amazon Redshift クラスター管理ガイドAWS コマンドラインインターフェイスの使用開始

[ClusterStatus] フィールドが [creating] から [available] に変わったら、クラスターは使用できる状態です。

次のステップでは、アクセスを許可してクラスターに接続できるようにします。

ステップ 3: インバウンドトラフィックにクラスターアクセスを許可するクラスターに接続するには、クライアントへのインバウンドアクセス権限を明示的に付与する必要があります。Amazon EC2 インスタンスまたは外部のコンピューターをクライアントとすることができます。

前のステップでは、セキュリティグループを指定せずにクラスターを作成したため、そのクラスターにはデフォルトのクラスターセキュリティグループが関連付けられています。デフォルトのクラスターセキュリティグループには、クラスターへのインバウンドトラフィックを認証するルールが含まれていません。新しいクラスターにアクセスするには、クラスターセキュリティグループへのインバウンドトラフィックを処理するルール (進入ルール) を追加する必要があります。

インターネットで実行されるアプリケーションの進入ルールインターネットからクラスターにアクセスする場合は、CIDR/IP (Classless Inter-Domain Routing IP) アドレス範囲を承認する必要があります。この例では、CIDR/IP ルール 192.0.2.0/24 を使用します。この範囲は、実際の IP アドレスとネットマスクに合わせて変更する必要があります。

クラスターのネットワークへの着信を可能にするために、次のコマンドを入力します。

aws redshift authorize-cluster-security-group-ingress --cluster-security-group-name default --cidrip 192.0.2.0/24

EC2 インスタンスの進入ルールAmazon EC2 インスタンスからクラスターにアクセスする場合は、Amazon EC2 セキュリティグループを認可する必要があります。そのためには、セキュリティグループ名と、EC2 セキュリティグループ所有者の 12 桁のアカウント番号を指定します。

Amazon EC2 コンソールを使用して、使用しているインスタンスに関連付けられた EC2 セキュリティグループを確認できます。

294

Amazon Redshift クラスター管理ガイドAWS コマンドラインインターフェイスの使用開始

お使いの AWS アカウント番号を確認するには、https://aws.amazon.com/ にアクセスし、[My Account]ページにサインインします。そのページの右上隅に AWS アカウント番号が表示されています。

この例では、Amazon EC2 セキュリティグループ名として myec2securitygroup を使用し、アカウント番号として 123456789012 を使用します。これらの名前と番号は、実際の名前と番号に変更する必要があります。

クラスターのネットワークへの着信を可能にするために、次のコマンドを入力します。

aws redshift authorize-cluster-security-group-ingress --cluster-security-group-name default --ec2-security-group-name myec2securitygroup --ec2-security-group-owner 123456789012

ステップ 4: クラスターに接続するデフォルトのクラスターセキュリティグループに進入ルールを追加したので、特定の CIDR/IP または EC2セキュリティグループから examplecluster に着信する接続が認可されます。

これでクラスターに接続する準備ができました。

クラスターへの接続については、「Amazon Redshift Getting Started Guide」を参照してください。

ステップ 5: テーブルの作成、データのアップロード、サンプルクエリの実行テーブルの作成、データのアップロード、クエリの発行については、「Amazon Redshift 入門ガイド」を参照してください。

ステップ 6: サンプルクラスターを削除するクラスターを起動すると、以後それが使用可能な状態である限り、たとえ能動的に使用していなくても、クラスターの実行時間に基づき料金が請求されます。不要になったクラスターは削除できます。

クラスターを削除するときは、最終スナップショットを作成するかどうかを決定する必要があります。これは演習であり、テスト用クラスターに重要なデータは含まれていないため、最終スナップショットは省略します。

クラスターを削除するには、次のコマンドを入力します。

aws redshift delete-cluster --cluster-identifier examplecluster --skip-final-cluster-snapshot

おめでとうございます。 クラスターの起動、アクセス権の設定、クラスターへの接続、クラスターの終了をひととおり体験しました。

295

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift クラスターのパフォーマンスをモニタリングする

Amazon Redshift では、クラスターとデータベースの状態やパフォーマンスを追跡できるようにするため、パフォーマンスメトリクスとデータが提供されます。このセクションでは、Amazon Redshift (特にAmazon Redshift コンソール) で使用できるデータのタイプについて説明します。

トピック• 概要 (p. 296)• Amazon Redshift のパフォーマンスデータ (p. 297)• Amazon Redshift コンソールでパフォーマンスデータを使用する (p. 303)

概要Amazon Redshift コンソールで使用できるパフォーマンスデータは、次の 2 つのカテゴリに分類されます。

• Amazon CloudWatch メトリクス – Amazon CloudWatch メトリクスは、CPU 使用率、レイテンシー、スループットなど、クラスターの物理的な側面をモニタリングするのに役立ちます。メトリクスデータは Amazon Redshift コンソールに直接表示されます。これは Amazon CloudWatch コンソールで表示することもできます。または、AWS CLI やいずれかの AWS SDK など、メトリクスを操作するその他の方法で使用することもできます。

• クエリ/ロードのパフォーマンスデータ – パフォーマンスデータは、データベースのアクティビティとパフォーマンスをモニタリングするのに役立ちます。このデータは Amazon Redshift コンソールに集計され、Amazon CloudWatch メトリクスで表示される情報を、特定のデータベースクエリ/ロードイベントに簡単に関連付けることができます。また、ユーザー独自のカスタムパフォーマンスクエリを作成し、データベースで直接実行することもできます。クエリ/ロードパフォーマンスデータは、AmazonRedshift コンソールのみで表示されます。これは、Amazon CloudWatch メトリクスとして公開されていません。

パフォーマンスデータは Amazon Redshift コンソールに統合され、次の方法でより高いエクスペリエンスが提供されます。

• クラスターに関連付けられたパフォーマンスデータは、クラスターを表示し、サイズ変更などクラスターに関する決定を行うためにパフォーマンスデータが必要になる可能性があるときに、コンテキストに応じて表示されます。

• 一部のパフォーマンスメトリクスは、Amazon CloudWatch と比較して、より適切にスケーリングされた単位で Amazon Redshift コンソールに表示されます。たとえば、WriteThroughput は GB/秒で表示されますが (Amazon CloudWatch ではバイト/秒)、これはノードのストレージ容量としてより一般的な単位です。

• クラスターのノードのパフォーマンスデータを、同じグラフで簡単にまとめて表示できます。このようにして、クラスターのすべてのノードのパフォーマンスを簡単にモニタリングできます。また、各ノードのパフォーマンスデータを表示することもできます。

Amazon Redshift では、パフォーマンスデータ (Amazon CloudWatch メトリクスおよびクエリ/ロードデータの両方) が追加料金なしで提供されます。パフォーマンスデータは毎分記録されます。パフォーマンスデータの過去の値は、Amazon Redshift コンソール内でアクセスできます。Amazon CloudWatch を使用して、Amazon CloudWatch メトリクスとして公開された Amazon Redshift パフォーマンスデータにアクセ

296

Amazon Redshift クラスター管理ガイドのパフォーマンスデータ

スする方法については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch の概要」を参照してください。

Amazon Redshift のパフォーマンスデータAmazon Redshift の Amazon CloudWatch メトリクスでは、クラスターのヘルスとパフォーマンスに関する情報を取得し、ノードレベルで情報を表示できます。これらのメトリクスを使用するときは、各メトリクスには 1 つ以上のディメンションが関連付けられていることに注意してください。これらのディメンションにより、メトリクスが適用される対象、つまりメトリクスの範囲がわかります。Amazon Redshiftには次の 2 つのディメンションがあります。

• NodeID ディメンションを持つメトリクスは、クラスターのノードのパフォーマンスデータを提供するメトリクスです。このメトリクスのセットには、リーダーノードおよびコンピューティングノードが含まれます。これらのメトリクスの例には、CPUUtilization、ReadIOPS、WriteIOPS があります。

• ClusterIdentifier ディメンションのみを持つメトリクスは、クラスターのパフォーマンスデータを提供するメトリクスです。これらのメトリクスの例には、HealthStatus や MaintenanceMode があります。

Note

一部のメトリクスでは、クラスター固有のメトリクスはノード動作の集計を表します。このような場合は、メトリクス値の解釈には注意が必要です。これは、リーダーノードの動作はコンピューティングノードとともに集計されるためです。

CloudWatch メトリクスおよびディメンションの全般情報については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch の概要」を参照してください。

Amazon Redshift の CloudWatch メトリクスの詳細については、以下のセクションを参照してください。

Amazon Redshift メトリクスAWS/Redshift 名前空間には、次のメトリクスが含まれます。

役職

メトリクス 説明

ConcurrencyScalingActiveClusters任意の時点でアクティブにクエリを処理している同時実行スケーリングクラスターの数。

単位: カウント

ディメンション: ClusterIdentifier

ConcurrencyScalingSeconds アクティブなクエリ処理アクティビティを持つ同時実行スケーリングクラスターによって使用される秒数。

単位: Sum

ディメンション: ClusterIdentifier

CPUUtilization CPU 使用率。このメトリクスは、クラスターに対するすべてのノード (リーダーおよびコンピューティング) の CPU 使用率の値の集計を表します。

単位: パーセント

297

Amazon Redshift クラスター管理ガイドAmazon Redshift メトリクス

メトリクス 説明ディメンション: NodeID, ClusterIdentifier

DatabaseConnections クラスターへのデータベース接続の数。

単位: カウント

ディメンション: ClusterIdentifier

HealthStatus クラスターの状態を示します。クラスターは毎分データベースに接続し、簡単なクエリを実行します。この操作を正しく実行できる場合、クラスターは正常な状態であると見なされます。それ以外の場合、クラスターは正常な状態ではありません。正常でない状態が発生する可能性があるのは、クラスターデータベースに極端に高い負荷がかかっているか、クラスター上のデータベースに設定の問題がある場合です。

Note

Amazon CloudWatch では、このメトリクスは 1 または 0と報告されますが、Amazon Redshift コンソールでは、このメトリックはわかりやすくするために HEALTHY またはUNHEALTHY という単語で表示されます。このメトリックスが Amazon Redshift コンソールで表示される場合、サンプリング平均は無視され、HEALTHY または UNHEALTHYのみが表示されます。Amazon CloudWatch では、サンプリングの問題により、1 または 0 以外の値が発生する場合があります。HealthStatus に対して 1 未満の値は0(UNHEALTHY)と報告されます。

単位: カウント (1/0) (Amazon Redshift コンソールではHEALTHY/UNHEALTHY)

ディメンション: ClusterIdentifier

MaintenanceMode クラスターがメンテナンスモードかどうかを示します。

Note

Amazon CloudWatch では、このメトリクスは 1 または 0と報告されますが、Amazon Redshift コンソールでは、このメトリックはわかりやすくするために ON または OFF という単語で表示されます。このメトリックスが AmazonRedshift コンソールで表示される場合、サンプリング平均は無視され、ON または OFF のみが表示されます。AmazonCloudWatch では、サンプリングの問題により、1 または 0以外の値が発生する場合があります。MaintenanceModeに対して 0 より大きい値は 1(ON)と報告されます。

単位: カウント (1/0) (Amazon Redshift コンソールでは ON/OFF)

ディメンション: ClusterIdentifier

298

Amazon Redshift クラスター管理ガイドAmazon Redshift メトリクス

メトリクス 説明

MaxConfiguredConcurrencyScalingClustersパラメータグループから設定された同時実行スケーリングクラスターの最大数。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

単位: カウント

ディメンション: ClusterIdentifier

NetworkReceiveThroughput ノードまたはクラスターがデータを受け取るレート。

単位: バイト/秒 (Amazon Redshift コンソールでは MB/秒)

ディメンション: NodeID, ClusterIdentifier

NetworkTransmitThroughput ノードまたはクラスターがデータを書き込むレート。

単位: バイト/秒 (Amazon Redshift コンソールでは MB/秒)

ディメンション: NodeID, ClusterIdentifier

PercentageDiskSpaceUsed 使用中のディスク容量の割合。

単位: パーセント

ディメンション: NodeID, ClusterIdentifier

QueriesCompletedPerSecond 1 秒あたりに完了したクエリの平均回数。5 分間隔で報告されます。

単位: カウント/秒

ディメンション: レイテンシー

QueryDuration クエリを完了するまでの平均時間。5 分間隔で報告されます。

単位: マイクロ秒

ディメンション: レイテンシー

ReadIOPS 1 秒あたりのディスク読み取り操作の平均回数。

単位: カウント/秒

ディメンション: NodeID, ClusterIdentifier

ReadLatency ディスク読み取り I/O 操作にかかる平均時間。

単位: 秒

ディメンション: NodeID

ReadThroughput 1 秒あたりのディスクからの平均読み取りバイト数。

単位: バイト (Amazon Redshift コンソールでは GB/秒)

ディメンション: NodeID

299

Amazon Redshift クラスター管理ガイドAmazon Redshift メトリクス

メトリクス 説明

TotalTableCount 特定の時点で開いているユーザーテーブルの数。この合計にSpectrum テーブルは含まれません。

単位: カウント

ディメンション: ClusterIdentifier

WLMQueueLength ワークロード管理 (WLM) キューに入るために待機しているクエリの数。

単位: カウント

ディメンション: service class

WLMQueueWaitTime ワークロード管理 (WLM) キューでクエリの待機にかかった合計時間。

単位: ミリ秒

ディメンション: ClusterIdentifier、wlmid、QueryPriority

WLMQueriesCompletedPerSecondワークロード管理 (WLM) キューで完了した 1 秒あたりの平均クエリ数。5 分間隔で報告されます。

単位: カウント/秒

ディメンション: wlmid

WLMQueryDuration ワークロード管理 (WLM) キューのクエリを完了するまでの平均時間。5 分間隔で報告されます。

単位: マイクロ秒

ディメンション: wlmid

WLMRunningQueries WLM キューごとのメインクラスターと同時実行スケーリングクラスターの両方から実行されているクエリの数。

単位: カウント

ディメンション: ClusterIdentifier, wlmid

WriteIOPS 1 秒あたりの書き込み操作の平均回数

単位: カウント/秒

ディメンション: NodeID, ClusterIdentifier

WriteLatency ディスク書き込み I/O 操作にかかる平均時間。

単位: 秒

ディメンション: NodeID

WriteThroughput 1 秒あたりのディスクへの平均書き込みバイト数。

単位: バイト (Amazon Redshift コンソールでは GB/秒)

ディメンション: NodeID

300

Amazon Redshift クラスター管理ガイドAmazon Redshift メトリクスのディメンション

Amazon Redshift メトリクスのディメンションAmazon Redshift のデータは、次の表にあるいずれかのディメンションでフィルタリングできます。

ディメンション 説明

latency 指定できる値は次のとおりです。

• short – 10 秒未満• medium – 10 秒~10 分• long – 10 分超過

NodeID フィルターにより、クラスターのノードに固有のデータが要求されました。NodeID は、「Leader」、「Shared」、または「Compute-N」のいずれかになります。ここで、N はクラスターのノード数を表す 0、1、... です。"Shared" は、クラスターには 1 つのノードのみがあることを意味します。つまり、リーダーノードとコンピューティングノードが組み合わされています。

CPUUtilization、NetworkTransmitThroughput、およびReadIOPS のメトリクスは、リーダーノードおよびコンピューティングノードに対してのみレポートされます。NodeId ディメンションを使用するその他のメトリクスは、コンピューティングノードに対してのみレポートされます。

ClusterIdentifier フィルターにより、クラスターに固有のデータが要求されました。クラスターに固有のメトリクスには、HealthStatus、MaintenanceMode、DatabaseConnectionsがあります。ノードのメトリクスでもある、このディメンションの全般的なメトリクス (ReadIOPS など) は、ノードメトリクスデータの集計を表します。これらのメトリクスは、リーダーノードおよびコンピューティングノードの動作を集計するため、その解釈には注意してください。

service class WLM サービスクラスの識別子。

stage クエリの実行ステージ。指定できる値は次のとおりです。

• QueryPlanning: SQL ステートメントの解析と最適化にかかった時間。

• QueryWaiting: wlm キューの待機にかかった時間。• QueryExecutingRead: 読み込みクエリの実行にかかった時間。• QueryExecutingInsert: 挿入クエリの実行にかかった時間。• QueryExecutingDelete: 削除クエリの実行にかかった時間。• QueryExecutingUpdate: 更新クエリの実行にかかった時間。• QueryExecutingCtas: テーブル作成クエリの実行にかかった時間。• QueryExecutingUnload: アップロードクエリの実行にかかった時

間。• QueryExecutingCopy: コピークエリの実行にかかった時間。• QueryCommit: コミットにかかった時間。

wlmid ワークロード管理キューの ID。

301

Amazon Redshift クラスター管理ガイドAmazon Redshift のクエリ/ロードパフォーマンスデータ

ディメンション 説明

QueryPriority クエリの優先度です。使用できる値は、CRITICAL、HIGHEST、HIGH、NORMAL、LOW、および LOWESTです。

Amazon Redshift のクエリ/ロードパフォーマンスデータAmazon CloudWatch メトリクスに加えて、Amazon Redshift はクエリ/ロードパフォーマンスデータを提供します。クエリ/ロードパフォーマンスデータを使用すると、データベースのパフォーマンスとクラスターメトリクス間の関係を理解するのに役立ちます。例えば、クラスターの CPU 使用率が急上昇したことに気付いた場合、クラスターの CPU グラフでその上昇を見つけ、そのときに実行されていたクエリを表示できます。逆に、特定のクエリについて確認している場合、メトリクスデータ (CPU など) がコンテキストに表示されるので、クラスターメトリクスに対するクエリの影響について理解できます。

クエリ/ロードパフォーマンスデータは Amazon CloudWatch メトリクスとして公開されず、AmazonRedshift コンソールのみで表示できます。クエリ/ロードパフォーマンスデータはデータベースのシステムテーブルへのクエリから生成されます(『Amazon Redshift 開発者ガイド』の「システムテーブルのリファレンス」を参照してください)。ユーザー独自のカスタムデータベースパフォーマンスクエリを生成することもできますが、コンソールに表示されているクエリ/ロードパフォーマンスデータで開始することをお勧めします。データベースパフォーマンスの測定とモニタリングを自分で行う場合、詳細については『Amazon Redshift 開発者ガイド』の「パフォーマンスの管理」を参照してください。

次の表に、Amazon Redshift コンソールでアクセスできるクエリ/ロードデータのさまざまな側面を示します。

クエリ/ロードデータ Description

クエリの概要 指定された期間のクエリのリストです。このリストは、クエリ ID、クエリ実行時間、ステータスなどの値に基づいて並べ替えることができます。このデータは、クラスター詳細ページの [クエリ] タブからアクセスします。

クエリの詳細 次のものを含む、特定のクエリの詳細を提供します。

• クエリ ID、タイプ、クエリが実行されたクラスター、実行時間などのクエリのプロパティ。

• クエリのステータス、エラー数などの詳細。• 実行された SQL ステートメント。• 利用可能な場合は説明プラン。• クエリ実行中のクラスターのパフォーマンスデータ (「Amazon Redshift のパ

フォーマンスデータ (p. 297)」を参照)。

ロードの概要 指定された期間のすべてのロードをリストします。このリストは、クエリ ID、クエリ実行時間、ステータスなどの値に基づいて並べ替えることができます。このデータは、クラスター詳細ページの [ロード] タブでアクセスします。このデータは、クラスター詳細ページの [クエリ] タブからアクセスします。

ロードの詳細 次のものを含む、特定のロードオペレーションの詳細を提供します。

• クエリ ID、タイプ、クエリが実行されたクラスター、実行時間などのロードのプロパティ。

• ロードのステータス、エラー数などの詳細。• 実行された SQL ステートメント。

302

Amazon Redshift クラスター管理ガイドパフォーマンスデータを使用する

クエリ/ロードデータ Description• ロードされたファイルのリスト。• ロード操作中のクラスターのパフォーマンスデータ (「Amazon Redshift のパ

フォーマンスデータ (p. 297)」を参照)。

Amazon Redshift コンソールでパフォーマンスデータを使用する

このセクションでは、クラスターおよびクエリのパフォーマンスに関する情報を含むパフォーマンスデータを Amazon Redshift コンソールで表示する方法について説明します。さらに、Amazon Redshift コンソールから直接クラスターでアラームを作成できます。

Amazon Redshift コンソールでパフォーマンスデータを表示するときは、クラスター別に表示できます。クラスターのパフォーマンスデータグラフは、パフォーマンスに関するほとんどの一般的な疑問に答えるデータにアクセスできるように設計されています。一部のパフォーマンスデータ (「Amazon Redshift のパフォーマンスデータ (p. 297)」を参照) については、Amazon CloudWatch を使用してメトリクスグラフをさらにカスタマイズすることもできます。たとえば、長い時間を選択したり、クラスター間でメトリクスを組み合わせたりできます。Amazon CloudWatch コンソールの使用の詳細については、「AmazonCloudWatch コンソールでパフォーマンスメトリクスを使用する (p. 322)」を参照してください。

パフォーマンスデータの使用を開始するには、クラスターパフォーマンスダッシュボードでクラスターを見つけます。ダッシュボードは、クラスターが保守中かどうか、最近のイベント数など、クラスターの状態 (例: [available (利用可能)])、およびクラスターの [DB Health (DB の状態)] (例: [正常] など) を一目でわかるように表示するクラスターのリストです。ダッシュボードから対象のクラスターを選択し、クラスターの詳細に移動します。このページからは、パフォーマンスデータを含む [イベント+アラーム]、[パフォーマンス]、[クエリ]、[ロード] の各タブにアクセスできます。次の例に、これらのタブを示します。

クラスターのパフォーマンスデータを表示するAmazon Redshift のクラスターメトリクスを使用すると、次の一般的なパフォーマンス事例が可能になります。

• 指定された時間範囲でクラスターメトリクスが異常かどうかを判断し、異常な場合は、パフォーマンスに影響しているクエリを識別します。

• 過去または現在のクエリがクラスターのパフォーマンスに影響しているかどうかを確認します。問題があるクエリを特定した場合は、クエリ実行中のクラスターのパフォーマンスなど、それに関する詳細を確認できます。この情報を使用して、クエリが低速だった理由と、パフォーマンスを向上させるための操作を診断できます。

デフォルトのクラスター表示では、一緒にグラフ化されたすべてのノード、Average 統計、過去 1 時間のデータが表示されます。このビューは必要に応じて変更できます。HealthStatus など一部のメトリクス

303

Amazon Redshift クラスター管理ガイドクラスターのパフォーマンスデータを表示する

はリーダーノードにのみ該当し、WriteOps などその他のメトリクスはコンピューティングノードにのみ該当します。ノード表示モードを切り替えると、すべてのフィルターがリセットされます。

クラスターのパフォーマンスデータを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [Clusters] を選択します。3. [クラスター] で、パフォーマンスデータを表示するクラスターの横にある拡大鏡のアイコンを選択し

ます。

4. [パフォーマンス] タブを選択します。

デフォルトでは、パフォーマンスビューには過去 1 時間のクラスターのパフォーマンスが表示されます。ビューを微調整する必要がある場合は、次の表に示すように、使用できるフィルターがあります。

目的 使用するフィルター

データを表示する時間範囲を変更する [時間範囲] ドロップダウンから時間範囲を選択します。デフォルトでは、過去 1 時間が表示されます。

データが表示される期間を変更する [期間] リストから期間を選択します。デフォルトでは、5 分の期間が表示されます。メトリクスを調査するときにさらに詳細が必要な場合 (ドリルイン)や、短時間のメトリクス (例: 10 分) を表示する場合は、5 分よりも短い期間を使用します。同様に、長時間のメトリクス (例: 数日) のメトリクスを表示する場合は、5 分よりも長い期間を使用します。

メトリクスに表示される統計を変更する [統計] の一覧から統計を選択します。デフォルトでは、Average 統計が使用されます。

304

Amazon Redshift クラスター管理ガイドクラスターのパフォーマンスデータを表示する

目的 使用するフィルター

表示するメトリクスを変更する (すべて、または特定のメトリクス)

[メトリクス] リストからメトリクスを選択します。デフォルトでは、すべてのメトリクスが表示されます。

同じグラフでノードメトリクスが個別に表示されるのか、一緒に表示されるのかを変更する

[ノード] を選択します。デフォルトでは、特定のメトリクスのノードデータは組み合わされたグラフに表示されます。別のグラフにノードデータを表示するように選択した場合は、さらに個別のノードを表示または非表示にできます。

クラスターメトリクス: 例次の例は、1 つのノードクラスターの CPUUtilization および NetworkReceiveThroughput メトリクスを示しています。この場合、クラスターメトリクスのグラフでは、1 つの線が [共有] とマークされて表示されます。これは、リーダーノードおよびコンピューティングノードが組み合わされているためです。この例は、表示されている時間範囲で複数のクエリが実行されたことを示しています。[クエリ] グラフで、2 つのメトリクスのピーク値で実行されているクエリにカーソルが置かれ、[クエリ ID] が右側に表示されています。次に、[クエリ ID] を選択すると、実行中のクエリに関する詳細を表示できます。

次の例は、2 つのノードがあるクラスターの NetworkReceiveThroughput を示しています。リーダーノードおよび 2 つのコンピューティングノードの線を示しています。リーダーノードのメトリクスは平らに表示され、注目する必要はありません。これは、データはコンピューティングノードのみでロードされるためです。この例では、表示されている期間に 1 つの長いクエリが実行されたことを示しています。[クエリ] グラフで、長時間実行されているクエリにカーソルが置かれ、[クエリ ID] が右側に表示されています。次に、[クエリ ID] を選択すると、実行中のクエリに関する詳細を表示できます。クエリの実行中にNetworkReceiveThroughput 値が表示されます。

305

Amazon Redshift クラスター管理ガイド同時実行スケーリングデータの表示

同時実行スケーリングデータの表示Amazon Redshift で同時実行スケーリングメトリクスを使用すると、次のことを行うことができます。

• 同時実行スケーリングクラスターで同時実行スケーリングアクティビティを表示します。これによりmax_concurrency_scaling_clusters で同時実行スケーリングが制限されているかどうかがわかります。制限されている場合、DB パラメータの max_concurrency_scaling_clusters を増やすことを選択できます。

• すべての同時実行スケーリングクラスターについて合計された同時実行スケーリングの合計使用量を表示します。

同時実行スケーリングデータを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. 同時実行スケーリングデータを表示するクラスターを選択します。4. [データベースパフォーマンス] タブを選択します。

デフォルトでは、パフォーマンスビューには過去 1 時間の同時実行スケーリングデータが表示されます。ビューを微調整する必要がある場合は、フィルターを使用してデータの範囲を変更できます。

同時実行スケーリングのグラフAmazon Redshift コンソールに次のグラフが表示されます。

• 同時実行スケーリングアクティビティ – 選択した時間範囲でアクティブな同時実行スケーリングクラスターの数を表示します。

306

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

• キューに追加済みのクエリ、またはクエリの実行 – 選択した時間範囲内に構成された同時実行スケーリングクラスターのキューに追加済みのクエリと実行中のクエリを比較します。

• 分単位の同時実行スケーリングの使用量 (合計) – 選択した時間範囲における同時実行スケーリングクラスターの合計使用量を表示します。

クエリパフォーマンスデータの表示Amazon Redshift コンソールには、データベースで実行するクエリのパフォーマンスに関する情報が表示されます。この情報を使用して、処理に長い時間がかかるクエリや、他のクエリの効率的な処理を妨げるようなボトルネックを作成するクエリを識別し、トラブルシューティングすることができます。この情報は、クラスター詳細ページの [クエリ] タブを使用して表示できます。[クエリ] タブには、クラスターで現在実行中か、または最近実行したクエリがリスト表示されます。このリストには、[クエリ ID]、[実行時間]、[開始時刻]、およびクエリに関するその他の情報が含まれます。

307

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

クエリパフォーマンスデータを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. パフォーマンスデータを表示するクラスターを選択します。4. [Queries (クエリ)] タブを選択します。

デフォルトでは、[クエリ] タブには、過去 24 時間のクエリパフォーマンスが表示されます。表示されるデータを変更するには、[フィルター] リストを使用して、クエリを表示する期間を選択します。また、[検索] ボックスにキーワードを入力して、検索条件に一致するクエリを検索することもできます。

Important

[クエリ] タブには、システムで最も長く実行されている最大 100 件のクエリが表示されます。

クエリの実行の終了[クエリ] ページを使用して、現在進行中のクエリを終了することもできます。

Note

Amazon Redshift console でクエリとロードを終了するには、特定のアクセス権限が必要です。ユーザーがクエリとロードを終了できるようにする場合は、必ずredshift:CancelQuerySession アクションを AWS Identity and Access Management (IAM)ポリシーに追加します。この要件は、[Amazon Redshift 読み取り専用] AWS 管理ポリシーを選択するか、IAM でカスタムポリシーを作成するかにかかわらず適用されます。Amazon Redshiftフルアクセスポリシーが適用されているユーザーには、クエリとロードを終了するためのアクセス許可がすでにあります。Amazon Redshift の IAM ポリシーにおけるアクションの詳細については、「リソースへのアクセスの管理 (p. 215)」を参照してください。

クエリの実行を終了するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] で、開くクラスターを選択します。4. [Queries (クエリ)] タブを選択します。5. 次のいずれかを行ってください。

• リストで、終了するクエリを選択し、[クエリの終了] を選択します。• リストで、クエリ情報を最初に確認する場合はクエリを開き、[クエリの終了] を選択します。

6. [クエリの終了] ダイアログボックスで、[確認] を選択します。

クエリの詳細の表示特定のクエリの詳細を表示するには、[クエリ] ページのテーブルで個別のクエリをクリックして [クエリID] ビューを開きます。次のリストで、個別のクエリで利用可能な情報を示します。

• [Query Properties (クエリのプロパティ)]。クエリ ID、クエリを実行したデータベースユーザー、期間、そのステータスなど、クエリに関する情報の概要を表示します。[Executed on (実行元)] プロパティは、クエリがメインクラスターと同時実行スケーリングクラスターのどちらで実行されたかを示します。

308

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

• [SQL]。わかりやすく人間が読み取れる形式でクエリテキストを表示します。• [クエリの実行の詳細]。クエリの処理に関する情報を表示します。このセクションには、クエリの計画さ

れた実行データおよび実際の実行データの両方が含まれます。クエリの実行の詳細は、同時実行スケーリングクラスターで実行されたクエリでは使用できません。[クエリの実行の詳細] セクションの使用の詳細については、「クエリ実行の分析 (p. 310)」を参照してください。

• [Cluster Performance During Query Execution (クエリ実行中のクラスターパフォーマンス)]。AmazonCloudWatch のパフォーマンスを表示します。[Cluster Performance During Query Execution (クエリ実行中のクラスターパフォーマンス)] セクションの使用の詳細については、「クエリ実行中のクラスターパフォーマンスの表示 (p. 314)」を参照してください。

[クエリ] ビューを開くと、次のような外観になります。

309

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

クエリ実行の分析

[クエリ] ビューの [クエリ実行の詳細] セクションには、クエリの処理方法の詳細が表示されます。このセクションでは、SVL_QUERY_REPORT、STL_EXPLAIN、および他のシステムビューやシステムテーブルからのデータが組み合わされます。

[Query Execution Details (クエリの実行の詳細)] セクションには 3 つのタブがあります。

310

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

• [プラン]。このタブには、表示されているクエリの説明プランが表示されます。

[プラン] タブの情報は、データベースでの EXPLAIN コマンドの実行と似ていますEXPLAIN コマンドでは、クエリテキストを調べ、クエリプランを返します。この情報を使用してクエリを評価し、必要に応じて効率とパフォーマンスを高めるために変更します。EXPLAIN コマンドは実際にクエリを実行しません。

次の例は、2008 年に販売されたチケット数と、そのクエリのクエリプランに基づき、サンディエゴで最も販売数の多かった販売会社 5 社を返します。

explain select sellerid, username, (firstname ||' '|| lastname) as name,city, sum(qtysold)from sales, date, userswhere sales.sellerid = users.useridand sales.dateid = date.dateidand year = 2008and city = 'San Diego'group by sellerid, username, name, cityorder by 5 desclimit 5;

説明プランの詳細については、『Amazon Redshift データベース開発者ガイド』の「説明プランの分析」を参照してください。

実際にクエリを実行する (EXPLAIN コマンドを省略) すると、エンジンはクエリパフォーマンスを最適化し、クエリの処理を変更する方法を発見できる可能性があります。クエリの実際のパフォーマンスデータは、SVL_QUERY_REPORT や SVL_QUERY_SUMMARY などのシステムビューに保存されます。

Amazon Redshift コンソールは、STL_EXPLAIN、SVL_QUERY_REPORT、およびその他のシステムビューやシステムテーブルを組み合わせて使用して実際のクエリパフォーマンスを表し、それをクエリの説明プランと比較します。この情報は [現行] タブに表示されます。場合によっては、説明プランと実際のクエリ実行ステップが異なることがあります。そのような場合は、ANALYZE などのデータベースでオペレーションを実行して統計を更新し、説明プランをより効果的にします。

さらに、クエリオプティマイザは場合によっては複雑な SQL クエリをパートに分割し、volt_tt_guid という命名規則で一時テーブルを作成して、クエリをより効率的に処理します。この場合、説明プランと

311

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

実際のクエリ実行の要約の両方は、最後に実行されたステートメントに適用されます。前のクエリ ID を確認して、クエリに対応する各パートの説明プランと実際のクエリの要約を表示できます。

説明プランとシステムビューおよびログとの違いの詳細については、『Amazon Redshift データベース開発者ガイド』の「クエリの概要の分析」を参照してください。

• [現行]。このタブには、実行されたクエリの実際のステップと統計が表示されます。この情報は、[タイムライン] および [実行時間] のテキストの階層と視覚的なグラフで表示されます。

[タイムライン] ビューには、クエリの実際のステップが実行されたシーケンスが表示されます。

[実行時間] ビューには、クエリの各ステップにかかった時間が表示されます。これを使用して、完了に時間がかかっているステップについて理解できます。

ビューにはそれぞれ、[平均時間] と [最大時間] が表示されます。

[平均] 統計には、データスライス間のステップの平均値実行時間、およびその時間が表す合計クエリ実行時間の割合が表示されます。[最大] 統計は、任意のデータスライスのステップの最長実行時間とスキューを示します。スキューとは、ステップの平均実行時間と最大実行時間の差のことです。

2 つの条件が両方とも一致する場合は、ステップを調査する必要があります。1 つの条件は、最大実行時間が、一貫してクエリの複数実行の平均実行時間の 2 倍以上であることです。もう 1 つの条件は、ステップに非常に長い時間がかかる (たとえば、大きなクエリの実行時間の上位 3 ステップのいずれかであるなど) ことです。

Note

可能であれば、クエリを 2 回実行して、典型的な実行の詳細を確認します。コンパイルを行うと、それ以降の実行には存在しないオーバーヘッドが、クエリの最初の実行に追加されます。

次に示すように、グラフの任意の棒を選択して、説明プランから予測されるデータを、クエリの実際のパフォーマンスと比較することができます。

312

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

クエリオプティマイザが STL_ALERT_EVENT_LOG システムテーブルでアラートを生成した場合、アラートに関連付けられた計画ノードにはアラートアイコンが付きます。

• [メトリクス]。このタブには、実行されたクエリのメトリクスが表示されます。

[返された行] メトリクスは、クエリの各ステップで生成された行の合計数です。

[返されたバイト] メトリクスは、各クラスターノードに返されたバイト数を示します。

313

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

[実行時間] メトリクスは、各クラスターノードのクエリの実行時間を示します。

[行のスループット] メトリクスは、各クラスターノードで返された行数をクエリ実行時間で除算した数を表示します。

クエリの実行に予想より時間がかかる場合は、[メトリクス] タブを使用して、原因をトラブルシューティングします。[行のスループット] メトリクスを参照してください。いずれかのクラスターノードの行のスループットが、他のノードよりもはるかに高く見える場合、そのワークロードはクラスターノード間で不均等に分散されます。原因のひとつとして、ノードスライス間でデータが不均等に分散されている、または歪んでいることが考えられます。詳細については、「データスキューまたは未ソート行のあるテーブルの特定」を参照してください。

データが均等に分散されている場合は、クエリによって、主にそのノードに配置されている行がフィルタリングされている場合があります。この問題を修正するには、クエリ内のテーブルの分散スタイルを確認し、改善できる点がないかどうかを調べます。変更を加える前に、必ずこのクエリのパフォーマンスと他の重要なクエリやシステム全体のパフォーマンスを比較検討してください。詳細については、「データ分散スタイルの選択」を参照してください。

Note

メトリクスタブは、単一ノードのクラスターでは使用できません。

コンソールを使用した [Query Execution Details] の表示

クエリ実行の詳細を表示するには、次の手順を使用します。

クエリ実行の詳細を表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] リストで、クエリ実行の詳細を表示するクラスターを選択します。4. [クエリ] タブを選択し、パフォーマンスデータを表示するクエリを開きます。5. [Query Execution Details (クエリ実行の詳細)] セクションを展開し、以下の操作を行います。

a. [Plan (プラン)] タブで、クエリの説明プランを確認します。場合によっては、[現行] タブで、説明プランが実際のクエリ実行と異なることがあります。このような場合は、ANALYZE を実行して統計を更新するか、データベースでその他のメンテナンスを実行して、実行するクエリを最適化しなければならない可能性があります。クエリの最適化の詳細については、『Amazon RedshiftDatabase Developer Guide』の「クエリパフォーマンスのチューニング」を参照してください。

b. [現行] タブで、クエリ実行の各計画ノードに関連付けられたパフォーマンスデータを確認します。階層の個別の計画ノードを選択すると、特定の計画ノードに関連付けられたパフォーマンスデータを表示できます。このデータには、予測データと実際のパフォーマンスデータの両方が含まれます。

c. [メトリクス] タブで、各クラスターノードのメトリクスを確認します。

クエリ実行中のクラスターパフォーマンスの表示

[クエリ] ビューの [Cluster Performance During Query Execution (クエリ実行中のクラスターパフォーマンスの表示)] セクションを使用して、各実行中のクラスターメトリクスを表示できます。この操作は、パフォーマンスが低いクエリの特定、ボトルネックとなっているクエリの検索、およびワークロードに対してクラスターのサイズ変更が必要かどうかの判断に役立ちます。

314

Amazon Redshift クラスター管理ガイドクエリパフォーマンスデータの表示

クエリの実行中にクラスターメトリクスを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] で、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択しま

す。4. [Queries (クエリ)] タブを選択します。5. クエリリストで、対象のクエリを見つけ、[クエリ] 列でクエリ ID を選択します。

次の例では、実行時間が最も長いクエリを見つけるために、クエリが [実行時間] でソートされています。

6. 開かれた [クエリ] ページで、[Cluster Performance During Query Execution (クエリ実行中のクラスターパフォーマンス)] セクションまでスクロールしてクラスターメトリクスを表示します。

次の例では、このクエリが実行中の時間の [CPUUtilization] および[NetworkReceiveThroughput] メトリクスが表示されます。

Tip

[Query Execution Details (クエリ実行の詳細)] または [SQL] セクションの詳細を閉じて、ペインに表示される情報の量を管理できます。

315

Amazon Redshift クラスター管理ガイドロード操作中にクラスターメトリクスを表示する

ロード操作中にクラスターメトリクスを表示するロード操作中にクラスターのパフォーマンスを表示すると、リソースを消費しているクエリを識別し、その影響を軽減するためのアクションを実行できます。ロードを最後まで実行しない場合はロードを終了できます。

Note

Amazon Redshift console でクエリとロードを終了するには、特定のアクセス権限が必要です。ユーザーがクエリとロードを終了できるようにする場合は、必ずredshift:CancelQuerySession アクションを AWS Identity and Access Management (IAM)ポリシーに追加します。この要件は、[Amazon Redshift 読み取り専用] AWS 管理ポリシーを選択するか、IAM でカスタムポリシーを作成するかにかかわらず適用されます。Amazon Redshiftフルアクセスポリシーが適用されているユーザーには、クエリとロードを終了するためのアクセス許可がすでにあります。Amazon Redshift の IAM ポリシーにおけるアクションの詳細については、「リソースへのアクセスの管理 (p. 215)」を参照してください。

ロード操作中にクラスターメトリクスを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] で、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択しま

す。

4. [ロード] タブを選択します。

316

Amazon Redshift クラスター管理ガイドワークロードパフォーマンスの分析

5. ロードリストで、対象のロード操作を見つけ、[ロード] 列でロード ID を選択します。

6. 表示される新しい [クエリ] タブで、ロード操作の詳細を表示できます。

この時点で、「クエリパフォーマンスデータの表示 (p. 307)」に示すように [クエリ] タブを使用できます。クエリの詳細を確認し、ロード操作中にクラスターメトリクスの値を表示することができます。

実行中のロードを終了するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] で、開くクラスターを選択します。4. [ロード] タブを選択します。5. 次のいずれかを行ってください。

• リストで、終了するロードを選択し、[ロードの終了] を選択します。• リストで、ロード情報リストを確認する場合はロードを開き、[ロードの終了] を選択します。

6. [ロードの終了] ダイアログボックスで、[確認] を選択します。

ワークロードパフォーマンスの分析コンソールのワークロードの実行内訳表を確認して、ワークロードのパフォーマンスの詳細を表示できます。この表は、CloudWatch QueryRuntimeBreakdown メトリクスで提供されるデータを使用して構成されています。この表では、待機や計画などのさまざまな処理ステージで、クエリにどれだけの時間がかかっているかを見ることができます。

Note

ワークロードの実行内訳表は、単一ノードのクラスターには表示されません。

次のメトリクスのリストでは、さまざまな処理ステージを説明しています。

317

Amazon Redshift クラスター管理ガイドワークロードパフォーマンスの分析

• QueryPlanning: SQL ステートメントの解析と最適化にかかった時間。• QueryWaiting: ワークロード管理 (WLM) キューでの待機にかかった時間。• QueryExecutingRead: 読み取りクエリの実行にかかった時間。• QueryExecutingInsert: 挿入クエリの実行にかかった時間。• QueryExecutingDelete: 削除クエリの実行にかかった時間。• QueryExecutingUpdate: 更新クエリの実行にかかった時間。• QueryExecutingCtas: CREATE TABLE AS クエリの実行にかかった時間。• QueryExecutingUnload: アップロードクエリの実行にかかった時間。• QueryExecutingCopy: コピークエリの実行にかかった時間。

たとえば、Amazon Redshift コンソールの次のグラフには、計画、待機、読み取り、および書き込みの各段階でクエリにかかった時間が示されます。このグラフの結果を、この先の分析のために他のメトリクスと組み合わせることができます。一部のケースでは、短い期間のクエリ (QueryDuration メトリクスによって測定) が待機時間に多くの時間をかけていると表示されることがあります。このような場合には、特定のキューの WLM 同時実行率を上げることで、スループットを増大させることができます。

この図の y 軸は、選択した期間中に実行されるすべてのセッションの累積です。次の図は、AmazonRedshift がどのように同時セッションの集計クエリ処理を行うかを示しています。

318

Amazon Redshift クラスター管理ガイドワークロードパフォーマンスの分析

ワークロードの実行内訳表を使用した分析例次の図は、ワークロードの実行内訳表を使用して、クラスターのパフォーマンスを最適化する方法を示しています。最初のサンプル表では、ほとんどのクエリ時間が QueryWaiting ステージにかかっていることがわかります。この影響は、WLM の同時実行値によるものです。

次の表は、同地実行をより高い値に調整したあとのクエリのランタイム内訳を示しています。更新された表では、ほとんどの時間使用量が QueryWaiting ステージから QueryExecutingReadと QueryPlanning ステージに切り替わっていることがわかります。この場合、フェーズの計画により多くの全体的な所要時間がかけられていますが、これは、同時実行の調整後により多くのクエリが時間枠で実行されるようになったためです。特定の期間中に実行されるクエリの数は、WLMQueriesCompletedPerSecond メトリクスを使用して確認できます。

この表は、さまざまなステージにおけるクエリの所要時間に影響を与えるクラスター設定を変更する方法を示しています。前述のケースでは、同時実行の設定が低かったため、前のクエリには比較的多くの待機時間がかかっていました。同時実行を増やした後、より多くのクエリが並行して処理されるようになり、これで待機時間が縮小されて、クエリのスループットが向上しました。

ワークロードの内訳表の表示ワークロードの内訳表は、コンソールで表示できます。

ワークロードの内訳表を表示するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

319

Amazon Redshift クラスター管理ガイドアラームを作成する

2. ナビゲーションペインで [クラスター] を選択します。3. 分析するクラスターを選択します。4. [データベースパフォーマンス] タブを選択します。

アラームを作成するAmazon Redshift コンソールで作成するアラームは、Amazon CloudWatch アラームです。これらのアラームは、クラスターとそのデータベースに関する予防的な決定を行うために役立ちます。「AmazonRedshift のパフォーマンスデータ (p. 297)」にリストされているいずれのメトリクスにも、1 つ以上のアラームを設定できます。たとえば、クラスターノードの高い CPUUtilization に対してアラームを設定すると、ノードの使用率が高すぎるときに、そのことが示されます。同様に、クラスターノードの低いCPUUtilization に対してアラームを設定すると、ノードの使用率が低すぎるときに、そのことが示されます。

このセクションでは、Amazon Redshift コンソールを使用してアラームを作成する方法について説明します。Amazon CloudWatch コンソールを使用するか、AWS CLI や AWS SDK などメトリクスを操作するためのその他の方法を使用して、アラームを作成できます。アラームを削除するには、Amazon CloudWatchコンソールを使用する必要があります。

Amazon Redshift コンソールでクラスターメトリクスにアラームを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで [クラスター] を選択します。3. [クラスター] で、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択しま

す。

4. [イベント+アラーム] タブを選択します。

5. [Create Alarm] を選択します。

320

Amazon Redshift クラスター管理ガイドアラームを作成する

6. [アラームの作成] ダイアログボックスで、アラームを設定し、[作成] を選択します。

Note

[Send a notification to (通知の送信先)] ボックスに表示される通知は、Amazon SimpleNotification Service (Amazon SNS) のトピックです。Amazon SNS およびトピックの作成の詳細については、『Amazon Simple Notification Service 入門ガイド』の「トピックの作成」を参照してください。Amazon SNS にトピックがない場合は、[create topic (トピックの作成)] リンクをクリックして [Create Alarm (アラームの作成)] ダイアログボックスでトピックを作成できます。

アラームの詳細は、状況に応じて変わります。次の例では、ノード (Compute-0 0) の平均 CPU 使用率にアラームが設定されています。CPU が 4 回連続して 5 分間に 80 パーセントを超えた場合、このアラームはトピック [redshift-example-cluster-alarms] に通知を送信します。

7. アラームのリストで、新しいアラームを見つけます。

次の例に示すように、アラームの状態を判断するために十分なデータが収集されるまでに、少し待たなければならない場合があります。

しばらくすると、状態が [OK] に変わります。

321

Amazon Redshift クラスター管理ガイドAmazon CloudWatch コンソールでパフォーマンスメトリクスを使用する

8. (オプション) アラームの [名前] を選択してアラームの設定を変更するか、[詳細] の表示リンクを選択して、Amazon CloudWatch コンソールでこのアラームに移動します。

Amazon CloudWatch コンソールでパフォーマンスメトリクスを使用するAmazon CloudWatch コンソールで Amazon Redshift メトリクスを使用するときは、次のいくつかのことに留意してください。

• クエリ/ロードパフォーマンスデータを使用できるのは、Amazon Redshift コンソール内のみです。• Amazon CloudWatch の一部のメトリクスには、Amazon Redshift コンソールで使用されるものとは異な

る単位があります。たとえば、WriteThroughput は GB/秒で表示されますが (Amazon CloudWatch ではバイト/秒)、これはノードのストレージ容量としてより一般的な単位です。

Amazon CloudWatch コンソール、コマンドラインツール、または Amazon SDK で Amazon Redshift メトリクスを使用するときは、2 つの概念に留意してください。

• 最初に、対象のメトリクスディメンションを指定します。ディメンションは、メトリクスを一意に識別できるようにする名前と値のペアです。Amazon Redshift のディメンションは ClusterIdentifierおよび NodeID です。Amazon CloudWatch コンソールには、クラスターおよびノード固有のディメンションを簡単に選択できるように、Redshift Cluster および Redshift Node ビューが用意されています。ディメンションの詳細については、『Amazon CloudWatch Developer Guide』の「Dimensions」を参照してください。

• 2 番目に、ReadIOPS などのメトリクス名を指定します。

次の表は、使用できる Amazon Redshift メトリックディメンションのタイプをまとめたものです。すべてのデータは 1 分間隔で取得できます。無料です。

AmazonCloudWatch 名前空間

ディメンション 説明

NodeID フィルターにより、クラスターのノードに固有のデータが要求されました。NodeID は、「Leader」、「Shared」、または「Compute-N」のいずれかになります。ここで、N はクラスターのノード数を表す 0、1、... です。"Shared" は、クラスターには 1 つのノードのみがあることを意味します。つまり、リーダーノードとコンピューティングノードが組み合わされています。

AWS/Redshift

ClusterIdentifierフィルターにより、クラスターに固有のデータが要求されました。クラスターに固有のメトリクスには、HealthStatus、MaintenanceMode、DatabaseConnectionsがあります。ノードのメトリクスでもある、このディメン

322

Amazon Redshift クラスター管理ガイドAmazon CloudWatch コンソールでパフォーマンスメトリクスを使用する

AmazonCloudWatch 名前空間

ディメンション 説明

ションの全般的なメトリクス (ReadIOPS など) は、ノードメトリクスデータの集計を表します。これらのメトリクスは、リーダーノードおよびコンピューティングノードの動作を集計するため、その解釈には注意してください。

ゲートウェイおよびボリュームメトリクスの使用は、その他のサービスメトリクスの使用と似ています。参考のため、Amazon CloudWatch ドキュメントに説明されている一般的な多くのタスクを以下に示します。

• 利用可能なメトリクスを表示する• メトリクスの統計を取得する• Amazon CloudWatch アラームの作成

323

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift イベントトピック

• 概要 (p. 324)• コンソールを使ったイベントの表示 (p. 324)• AWS SDK for Java を使ったイベントの表示 (p. 325)• Amazon Redshift CLI と API を使ったイベントの表示 (p. 327)• Amazon Redshift イベント通知 (p. 327)

概要Amazon Redshift はイベントを追跡し、AWS アカウントで数週間、そのイベントに関する情報を保持します。Amazon Redshift はイベントごとに、イベントが発生した日付、説明、イベントのソース (クラスター、パラメータグループ、またはスナップショット)、ソース ID などの情報を報告します。

Amazon Redshift では、いくつかのイベントを事前に通知します。これらのイベントは、pending のイベントカテゴリーを持ちます。たとえば、クラスターにあるノードの 1 つに更新が必要な場合、事前通知を送信します。他の Amazon Redshift イベントと同様、保留中のイベントにサブスクライブできます。詳細については、「Amazon Redshift イベント通知にサブスクライブする (p. 328)」を参照してください。

Amazon Redshift マネジメントコンソール、Amazon Redshift API、または AWS SDK を使って、イベント情報を取得できます。すべてのイベントのリストを取得することも、フィルタ (イベント期間、開始日と終了日など) を適用して、特定期間のイベント情報を取得することもできます。また、特定のソースタイプによって生成されたイベント (クラスターイベントやパラメータグループイベントなど) を取得することもできます。

一連のイベント フィルタを指定する、Amazon Redshift イベント通知サブスクリプションを作成できます。フィルター条件に一致するイベントが発生すると、Amazon Redshift は Amazon Simple NotificationService を使用してイベントが発生したことをアクティブに通知します。

ソースタイプおよびカテゴリ別の Amazon Redshift イベントのリストについては、「the section called“Amazon Redshift イベントのカテゴリおよびイベントメッセージ” (p. 329)」を参照してください。

コンソールを使ったイベントの表示左側のナビゲーションの [イベント] をクリックして、Amazon Redshift コンソールでイベントを表示できます。イベントのリストでは、[ソースタイプ] フィルター、またはリストのすべてのフィールド内のテキストをフィルターするカスタムの [フィルター] を使って、結果をフィルターすることができます。例えば、「12 Dec 2012」を検索する場合、この値を含む [日付] フィールドと一致します。

イベントソースタイプは、イベントの種類を示します。次のソースタイプが使用できます。[クラスター]、[クラスターパラメータグループ]、[クラスターセキュリティグループ]、[スナップショット]

324

Amazon Redshift クラスター管理ガイドイベントのフィルター

イベントのフィルター場合によって、特定のカテゴリのイベント、または特定のクラスターのイベントを検索する場合があります。このような場合、表示されたイベントをフィルターできます。

イベントをフィルターするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインの [Events] をクリックします。3. イベントをフィルターするには、以下のいずれかを実行します。

a. イベントタイプでフィルターするには、[Filter Cluster (クラスターのフィルター)] をクリックして、ソースタイプを選択します。

b. イベントの説明に表示されたテキストでフィルターするには、検索ボックスにテキストを入力すると、入力内容に応じて、リストが絞り込まれます。

AWS SDK for Java を使ったイベントの表示次の例では、指定したクラスターのイベントと指定したイベントソースタイプを一覧表示します。この例では、ページネーションの使用方法を示します。

以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行例 (p. 287)」を参照してください。コードをアップデートして、クラスターの識別子とイベントソースタイプを指定する必要があります。

Example

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at

325

Amazon Redshift クラスター管理ガイドAWS SDK for Java を使ったイベントの表示

* * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.*/

// snippet-sourcedescription:[ListEvents demonstrates how to list Amazon Redshift events.]// snippet-service:[redshift]// snippet-keyword:[Java]// snippet-keyword:[Amazon Redshift]// snippet-keyword:[Code Sample]// snippet-keyword:[DescribeEvents]// snippet-sourcetype:[full-example]// snippet-sourcedate:[2019-01-31]// snippet-sourceauthor:[AWS]// snippet-start:[redshift.java.ListEvents.complete]

package com.amazonaws.services.redshift;

import java.util.Date;import java.io.IOException;

import com.amazonaws.services.redshift.model.*;

public class ListEvents {

public static AmazonRedshift client; public static String clusterIdentifier = "***provide cluster identifier***"; public static String eventSourceType = "cluster"; // e.g. cluster-snapshot

public static void main(String[] args) throws IOException {

// Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain}

client = AmazonRedshiftClientBuilder.defaultClient();

try { listEvents(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } }

private static void listEvents() { long oneWeeksAgoMilli = (new Date()).getTime() - (7L*24L*60L*60L*1000L); Date oneWeekAgo = new Date(); oneWeekAgo.setTime(oneWeeksAgoMilli); String marker = null;

do { DescribeEventsRequest request = new DescribeEventsRequest() .withSourceIdentifier(clusterIdentifier) .withSourceType(eventSourceType) .withStartTime(oneWeekAgo) .withMaxRecords(20); DescribeEventsResult result = client.describeEvents(request); marker = result.getMarker(); for (Event event : result.getEvents()) { printEvent(event); } } while (marker != null);

326

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI と API を使ったイベントの表示

} static void printEvent(Event event) { if (event == null) { System.out.println("\nEvent object is null."); return; }

System.out.println("\nEvent metadata:\n"); System.out.format("SourceID: %s\n", event.getSourceIdentifier()); System.out.format("Type: %s\n", event.getSourceType()); System.out.format("Message: %s\n", event.getMessage()); System.out.format("Date: %s\n", event.getDate()); }}// snippet-end:[redshift.java.ListEvents.complete]

Amazon Redshift CLI と API を使ったイベントの表示

次の Amazon Redshift CLI 操作を使って、イベントを管理できます。

• イベントの説明

Amazon Redshift は次の API を使って、イベントを表示します。

• DescribeEvents

Amazon Redshift イベント通知概要Amazon Redshift は、Amazon Simple Notification Service (Amazon SNS) を使用して、Amazon Redshiftイベント通知を送信します。通知は、Amazon Redshift イベントサブスクリプションを作成して有効にします。Amazon Redshift サブスクリプションでは、Amazon Redshift イベントと Amazon SNS トピックの一連のフィルターを指定します。フィルター条件に一致するイベントが発生するたびに、AmazonRedshift は Amazon SNS トピックに通知メッセージを発行します。次に、Amazon SNS はそのトピックへの Amazon SNS サブスクリプションを持つすべての Amazon SNS ユーザーにメッセージを送信します。Amazon SNS ユーザーに送信されたメッセージは、Amazon SNS リージョンの AWS によりサポートされるどの形式の可能性もあります (メール、テキストメッセージ、HTTP エンドポイントへの呼び出し)。たとえば、すべてのリージョンでメール通知がサポートされますが、SMS 通知は 米国東部 (バージニア北部) リージョン でのみ作成できます。

イベント通知サブスクリプションを作成するときは、1 つ以上のイベントフィルターを指定します。Amazon Redshift は、すべてのフィルター条件に一致するイベントが発生するたびに、サブスクリプションを介して通知を送信します。フィルタ条件には、ソースのタイプ (クラスターやスナップショットなど)、ソース ID (クラスターまたはスナップショットの名前など)、イベントカテゴリ (モニタリングやセキュリティなど)、イベントの重大度 (INFO や ERROR など) が含まれます。

AWS マネジメントコンソール で [有効] ラジオボタンを No に設定するか、Amazon Redshift CLI またはAPI を使用して Enabled パラメータを false に設定することで、サブスクリプションを削除しなくても通知を無効にできます。

327

Amazon Redshift クラスター管理ガイド概要

Amazon Redshift イベント通知の請求は、Amazon Simple Notification Service (Amazon SNS) を通じて行われます。Amazon SNS 料金は、イベント通知を使用するときに適用されます。Amazon SNS の請求の詳細については、「Amazon Simple Notification Service 料金表」を参照してください。

管理コンソールを使用して、発生した Amazon Redshift イベントを表示することもできます。詳細については、「Amazon Redshift イベント (p. 324)」を参照してください。

トピック• Amazon Redshift イベント通知にサブスクライブする (p. 328)

Amazon Redshift イベント通知にサブスクライブするAmazon Redshift イベント通知サブスクリプションを作成して、特定のクラスター、スナップショット、セキュリティグループ、パラメータグループでイベントが発生したときに通知を受け取ることができます。サブスクリプションを作成する最も簡単な方法は、Amazon SNS コンソールを使用する方法です。Amazon SNS トピックを作成してサブスクライブする方法については、「Amazon SNS の開始方法」を参照してください。

Amazon Redshift イベント通知サブスクリプションを作成して、特定のクラスター、スナップショット、セキュリティグループ、パラメータグループでイベントが発生したときに通知を受け取ることができます。サブスクリプションを作成する最も簡単な方法は、AWS マネジメントコンソール を使用する方法です。CLI または API を使用してイベント通知サブスクリプションを作成する場合、Amazon SimpleNotification Service トピックを作成し、Amazon SNS コンソールまたは Amazon SNS API を使用してそのトピックにサブスクライブする必要があります。トピックの Amazon Resource Name (ARN) は、CLI コマンドや API アクションを送信するときに使用されるため維持する必要があります。Amazon SNS トピックを作成してサブスクライブする方法については、「Amazon SNS の開始方法」を参照してください。

Amazon Redshift イベントサブスクリプションは、これらのイベント条件を指定できます。

• ソースタイプの値は、クラスター、スナップショット、パラメータグループ、およびセキュリティグループです。

• リソースのソース ID (my-cluster-1 や my-snapshot-20130823 など)。ID は、イベントサブスクリプションと同じリージョンのリソースの ID にする必要があります。

• イベントカテゴリの値は、Configuration、Management、Monitoring、Security です。• イベントの重大度の値は、INFO または ERROR です。

イベント条件は、別個に指定できますが、コンソールでソース ID を指定するにはソースタイプを指定する必要があります。たとえば、ソースタイプ、ソース ID、重大度を指定しなくてもイベントカテゴリを指定できます。ソースタイプで指定したタイプではないリソースのソース ID を指定できますが、それらのリソースからのイベントには通知が送信されません。たとえば、クラスターのソースタイプとセキュリティグループの ID を指定した場合、そのセキュリティグループが生じたどのイベントも、ソースタイプのフィルタ条件に一致しないので、それらのイベントに通知は送信されません。

Amazon Redshift は、サブスクリプションで指定されているすべての条件に一致するすべてのイベントに通知を送信します。返されるイベントセットの例

• サブスクリプションは、クラスターのソースタイプ、ソース ID my-cluster-1、カテゴリ Monitoring、重大度 ERROR を指定します。サブスクリプションは、my-cluster-1 から生じた、重大度が ERROR のモニタリングイベントにのみ通知を送信します。

• サブスクリプションは、クラスターのソースタイプ、カテゴリ Configuration、INFO の重大度を指定します。サブスクリプションは、AWS アカウント内のすべての Amazon Redshift クラスターから生じた、重大度が INFO の設定イベントに通知を送信します。

• サブスクリプションは、カテゴリ Configuration と重大度 INFO を指定します。サブスクリプションは、AWS アカウント内のすべての Amazon Redshift リソースから生じた、重大度が INFO の設定イベントに通知を送信します。

328

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

• サブスクリプションは、重大度 ERROR を指定します。サブスクリプションは、AWS アカウント内のすべての Amazon Redshift リソースから生じた、重大度が ERROR のすべてのイベントに通知を送信します。

既存のサブスクリプションで名前がソース ID として参照されているオブジェクトを削除または名前変更する場合、サブスクリプションはアクティブのままになりますが、そのオブジェクトから転送されるイベントはありません。サブスクリプションソース ID で参照されるのと同じ名前の新しいオブジェクトを後で作成する場合、サブスクリプションは新しいオブジェクトから生じたイベントの通知の送信を開始します。

Amazon Redshift は、Amazon リソースネーム (ARN) によって識別される Amazon SNS トピックにイベントの通知を発行します。Amazon Redshift コンソールを使用してイベントサブスクリプションを作成するときは、既存の Amazon SNS トピックを指定するか、サブスクリプションの作成時にコンソールがトピックを作成することリクエストすることができます。Amazon SNS トピックに送信されたすべてのAmazon Redshift イベント通知は、そのトピックにサブスクライブしているすべての Amazon SNS ユーザーに順番に送信されます。Amazon SNS コンソールを使用して Amazon SNS トピックに変更を加えます (トピックへのユーザーサブスクリプションの追加や削除など)。Amazon SNS トピックの作成とサブスクライブの詳細については、「Amazon Simple Notification Service の開始方法」を参照してください。

次のセクションに、通知を受け取ることができるすべてのカテゴリとイベントを示します。さらに、Amazon Redshift イベントサブスクリプションにサブスクライブして操作する方法に関する情報も示します。

Amazon Redshift イベントのカテゴリおよびイベントメッセージこのセクションには、各 Amazon Redshift ソースタイプのイベント ID とカテゴリを示します。

次の表は、クラスターがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

設定 REDSHIFT-EVENT-1000

INFO パラメータグループ [パラメータグループ名] が[時間] に更新されました。動的パラメータのみを変更した場合は、関連付けられているクラスターが現在変更中です。静的パラメータを変更した場合、動的パラメータを含む、すべての更新は、関連するクラスターを再起動した場合に適用されます。

設定 REDSHIFT-EVENT-1001

INFO Amazon Redshift クラスター [クラスター名] が、[時間] にパラメータグループ [パラメータグループ名] を使用するように変更されました。

設定 REDSHIFT-EVENT-1500

ERROR Amazon VPC [VPC 名] が存在しません。クラスター [クラスター名] の設定の変更が適用されませんでした。AWS マネジメントコンソール にアクセスして問題を修正してください。

設定 REDSHIFT-EVENT-1501

ERROR Amazon VPC [VPC 名] に指定した顧客サブネット [サブネット名] が存在しないか、無効です。クラスター [クラスター名] の設定の変更が適用されませんでした。AWS マネジメントコンソール にアクセスして問題を修正してください。

329

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

設定 REDSHIFT-EVENT-1502

ERROR クラスターサブネットグループ [サブネットグループ名] のサブネットに使用可能な IP アドレスがありません。クラスター [クラスター名] を作成できませんでした。

設定 REDSHIFT-EVENT-1503

ERROR Amazon VPC [VPC 名] にインターネットゲートウェイが接続されていません。クラスター [クラスター名] の設定の変更が適用されませんでした。AWS マネジメントコンソール にアクセスして問題を修正してください。

設定 REDSHIFT-EVENT-1504

ERROR クラスター [クラスター名] の HSM に到達できません。

設定 REDSHIFT-EVENT-1505

ERROR クラスター [クラスター名] の HSM を登録できません。別の設定を試してください。

設定 REDSHIFT-EVENT-1506

ERROR Amazon Redshift は、アカウントの EC2 NetworkInterface (ENI) 制限を超えています。[ENI の最大数] までの ENI を削除するか、あるいは EC2 のリージョンごとのネットワークインターフェース数の制限を上げるようにリクエストしてください。

管理 REDSHIFT-EVENT-2000

INFO Amazon Redshift クラスター: [クラスター名] が作成され、使用可能です。

管理 REDSHIFT-EVENT-2001

INFO Amazon Redshift クラスター [クラスター名] の名前が [時刻] に削除されました。最終スナップショットが保存 [されました/されませんでした]。

管理 REDSHIFT-EVENT-2002

INFO VPC セキュリティグループ [セキュリティグループ名] が [時間] に更新されました。

管理 REDSHIFT-EVENT-2003

INFO メンテナンスは Amazon Redshift クラスター [クラスター名] で [時刻] に開始されました。メンテナンス中、クラスターを使用できない場合があります。

管理 REDSHIFT-EVENT-2004

INFO メンテナンスは Amazon Redshift クラスター [クラスター名] で [時刻] に完了しました。

管理 REDSHIFT-EVENT-2006

INFO Amazon Redshift クラスター [クラスター名] のサイズ変更が [時刻] に開始されました。サイズ変更操作中、クラスターは読み取り専用モードになります。

管理 REDSHIFT-EVENT-2007

INFO Amazon Redshift クラスター [クラスター名] のサイズ変更は、進行中です。クラスターは読み取り専用モードです。

330

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

管理 REDSHIFT-EVENT-2008

INFO 新しい Amazon Redshift クラスター [クラスター名] スナップショット [スナップショット名] を作成する復元オペレーションが [時刻] に開始しました。復元の進行状況をモニタリングするには、AWS マネジメントコンソール にアクセスしてください。

管理 REDSHIFT-EVENT-2013

INFO Amazon Redshift クラスター [クラスター名] の名前が [時刻] に変更されました。

管理 REDSHIFT-EVENT-2014

INFO Amazon Redshift クラスター [クラスター名] のテーブル復元リクエストが受信されました。

管理 REDSHIFT-EVENT-2015

INFO Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] にキャンセルされました。

管理 REDSHIFT-EVENT-2016

INFO Amazon Redshift クラスター [クラスター名] の置換が [時間] に開始されました。

管理 REDSHIFT-EVENT-2017

INFO お客様が開始したメンテナンスは、AmazonRedshift クラスター [クラスター名] で [時間] に開始されました。メンテナンス中、クラスターを使用できない場合があります。

管理 REDSHIFT-EVENT-2018

INFO お客様が開始したメンテナンスは、AmazonRedshift クラスター [クラスター名] で [時間] に完了しました。

管理 REDSHIFT-EVENT-2019

ERROR お客様が開始したメンテナンスは、AmazonRedshift クラスター [クラスター名] で [時間] に失敗しました。クラスターを元の状態に戻しています。

管理 REDSHIFT-EVENT-2020

INFO Amazon Redshift クラスター [クラスター名] のトラックは、[トラック元] から [トラック先] に変更する必要があります。

管理 REDSHIFT-EVENT-2021

ERROR Amazon Redshift クラスター [クラスター名] の[オペレーション] は、当社のキャパシティープールから容量を取得中に成功しませんでした。容量の獲得に取り組んでいますが、今のところ、リクエストをキャンセルしました。このクラスターを削除して、後で再試行してください。

管理 REDSHIFT-EVENT-2022

ERROR Amazon Redshift クラスター [クラスター名] の[オペレーション] は、当社のキャパシティープールから容量を取得中に成功しませんでした。容量の獲得に取り組んでいますが、今のところ、リクエストをキャンセルしました。容量は [代替アベイラビリティーゾーン] で利用できます。このクラスターを削除して、代替アベイラビリティーゾーンで再試行してください。

331

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

管理 REDSHIFT-EVENT-2023

ERROR 単一ノードの Amazon Redshift クラスター [クラスター名] でハードウェア障害が検出されました。これにより、クエリの失敗またはクラスターの断続的な高可用性がもたらされる可能性があります。当社のキャパシティープールから容量を取得中にクラスターの交換は成功しませんでした。スナップショットから新しいクラスターを復元する必要があります。このクラスターを削除し、利用可能な最新のスナップショットを選択して、そのスナップショットから新しいクラスターを復元します。これにより、正常なハードウェアに自動的にプロビジョニングされます。

管理 REDSHIFT-EVENT-2024

ERROR 単一ノードの Amazon Redshift クラスター [クラスター名] でハードウェア障害が検出されました。これにより、クエリの失敗またはクラスターの断続的な高可用性がもたらされる可能性があります。当社のキャパシティープールから容量を取得中にクラスターの交換は成功しませんでした。容量はアベイラビリティーゾーンで利用できます [代替アベイラビリティーゾーン]。このクラスターを削除し、利用可能な最新のスナップショットを選択して、そのスナップショットから新しいクラスターを復元します。これにより、正常なハードウェアに自動的にプロビジョニングされます。

管理 REDSHIFT-EVENT-3011

INFO Amazon Redshift クラスター 「[クラスター名]」の伸縮自在なサイズ変更が [時刻] に開始されました。サイズ変更中はデータベース接続を保持します。このオペレーション中に、一部のクエリおよび接続が終了やタイムアウトすることがあります。

管理 REDSHIFT-EVENT-3012

INFO [時刻] に開始されたクラスター「[クラスター名]」の伸縮サイズ変更リクエストを受け取りました。サイズ変更が始まると、イベント通知が送信されます。

Pending REDSHIFT-EVENT-2025

INFO クラスター <クラスター名> のデータベースは、<開始時間> と <終了時間> の間に更新されます。クラスターはアクセスできません。変化に応じて計画を立てましょう。

Pending REDSHIFT-EVENT-2026

INFO クラスター <クラスター名> は、<開始時間> と<終了時間> の間に更新されます。クラスターはアクセスできません。変化に応じて計画を立てましょう。

Monitoring REDSHIFT-EVENT-2050

INFO Amazon Redshift クラスター [cluster name] でハードウェア問題が検出されました。置換リクエストが [time] に開始されました。

332

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

Monitoring REDSHIFT-EVENT-3000

INFO Amazon Redshift クラスター [クラスター名] の名前が [時刻] に再起動されました。

Monitoring REDSHIFT-EVENT-3001

INFO Amazon Redshift クラスター: [クラスター名] のノードが [時刻] に自動的に置き換えられ、クラスターは通常動作中です。

Monitoring REDSHIFT-EVENT-3002

INFO Amazon Redshift クラスター [クラスター名] のサイズ変更が完了したため、クラスターを読み取りおよび書き込みできます。サイズ変更は [時間] に開始され、完了までに [時間数] かかりました。

Monitoring REDSHIFT-EVENT-3003

INFO Amazon Redshift クラスター [クラスター名] は、スナップショット [スナップショット名] から正常に作成されたため、使用できます。

Monitoring REDSHIFT-EVENT-3007

INFO Amazon Redshift スナップショット [スナップショット名] が [コピー元リージョン] から [コピー先リージョン] に [時刻] に正常にコピーされました。

Monitoring REDSHIFT-EVENT-3008

INFO Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] に開始しました。

Monitoring REDSHIFT-EVENT-3009

INFO Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] に完了しました。

Monitoring REDSHIFT-EVENT-3010

ERROR Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] に失敗しました。

Monitoring REDSHIFT-EVENT-3013

ERROR リクエストされた Amazon Redshift クラスター[クラスター名] の伸縮自在なサイズ変更オペレーションが容量不足のために [時刻] に失敗しました。

Monitoring REDSHIFT-EVENT-3014

INFO Amazon Redshift がクラスター [クラスター名] を[時刻] に再起動しました。

Monitoring REDSHIFT-EVENT-3500

ERROR Amazon Redshift クラスター [クラスター名] のサイズ変更に失敗しました。サイズ変更は数分後に自動的に再試行されます。

Monitoring REDSHIFT-EVENT-3501

ERROR スナップショット [スナップショット名] からAmazon Redshift クラスター [クラスター名] を作成する復元オペレーションが [時刻] に失敗しました。操作を再実行してください。

Monitoring REDSHIFT-EVENT-3504

ERROR Amazon S3 バケット [バケット名] はクラスター[クラスター名] のログ作成には無効です。

Monitoring REDSHIFT-EVENT-3505

ERROR Amazon S3 バケット [バケット名] にはクラスター [クラスター名] に関する正しい IAM ポリシーがありません。

333

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

Monitoring REDSHIFT-EVENT-3506

ERROR Amazon S3 バケット [バケット名] が存在しません。クラスター [クラスター名] のログ作成を続行できません。

Monitoring REDSHIFT-EVENT-3507

ERROR Amazon Redshift クラスター [クラスター名] がEIP [IP アドレス] を使用して作成できません。この EIP は既に使われています。

Monitoring REDSHIFT-EVENT-3508

ERROR Amazon Redshift クラスター [クラスター名]が EIP [IP アドレス] を使用して作成できません。EIP が見つかりません。

Monitoring REDSHIFT-EVENT-3509

ERROR クラスター [クラスター名] のクロスリージョンスナップショットのコピーが有効になっていません。

Monitoring REDSHIFT-EVENT-3510

ERROR Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] に開始に失敗しました。理由: [理由]。

Monitoring REDSHIFT-EVENT-3511

ERROR Amazon Redshift クラスター [クラスター名] のテーブル復元が [時間] に失敗しました。

Monitoring REDSHIFT-EVENT-3512

ERROR Amazon Redshift クラスター [クラスター名] は、ハードウェアの問題により失敗しました。クラスターは、[時間] に作成された最新スナップショット [スナップショット名] から自動的に復元されています。

Monitoring REDSHIFT-EVENT-3513

ERROR Amazon Redshift クラスター [クラスター名] は、ハードウェアの問題により失敗しました。クラスターは、[時間] に作成された最新スナップショット [スナップショット名] から自動的に復元されています。この時間後にデータベースに行った変更は、再送信する必要があります。

Monitoring REDSHIFT-EVENT-3514

ERROR Amazon Redshift クラスター [クラスター名] は、ハードウェアの問題により失敗しました。クラスターは、ハードウェア障害の状態に配置されます。クラスターを削除して、[時間] に作成した最新スナップショット [スナップショット名] から復元してください。

Monitoring REDSHIFT-EVENT-3515

ERROR Amazon Redshift クラスター [クラスター名] は、ハードウェアの問題により失敗しました。クラスターは、ハードウェア障害の状態に配置されます。クラスターを削除して、[時間] に作成した最新スナップショット [スナップショット名] から復元してください。この時間後にデータベースに行った変更は、再送信する必要があります。

334

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

Monitoring REDSHIFT-EVENT-3516

ERROR Amazon Redshift クラスター [クラスター名] は、ハードウェアの問題により失敗し、このクラスターにはバックアップが存在しません。クラスターは、ハードウェア障害のステータスに配置され、削除されます。

Monitoring REDSHIFT-EVENT-3519

INFO クラスター [cluster name] は [time] に再起動を開始しました。

Monitoring REDSHIFT-EVENT-3520

INFO クラスター [cluster name] は [time] に再起動を完了しました。

Monitoring REDSHIFT-EVENT-3521

INFO クラスター「[クラスター名]」に接続の問題が検出されました。[時刻] に自動診断が開始されました。

Monitoring REDSHIFT-EVENT-3522

INFO クラスター「[クラスター名]」の復旧アクションが [時刻] に失敗しました。Amazon Redshift チームがソリューションに向けて動いています。

Monitoring REDSHIFT-EVENT-3533

ERROR 「[クラスター名]」のクラスターのサイズ変更は、[時刻] にキャンセルされました。[理由] のため、オペレーションキャンセルされました。[アクションが必要]。

Monitoring REDSHIFT-EVENT-3534

INFO Amazon Redshift クラスター 「[クラスター名]」の伸縮自在なサイズ変更が [時刻] に完了しました。クラスターは読み取り/書き込みオペレーションに使用できますが、データの転送には時間がかかります。一部のクエリではデータ転送が完了するまでに時間がかかる場合があります。

Monitoring REDSHIFT-EVENT-3600

INFO Amazon Redshift クラスター [クラスター名] のリクエストされたサイズ変更オペレーションは過去にキャンセルされました。ロールバックは [時刻]に完了しました。

Pending REDSHIFT-EVENT-3601

INFO クラスター <クラスター名> のノードは、<開始時間> と <終了時間> の間に置き換えられます。メンテナンス項目の適用を延期することはできません。変化に応じて計画を立てましょう。

Pending REDSHIFT-EVENT-3602

INFO クラスター <クラスター名> のノードは、<開始時間> と <終了時間> の間に置き換えが予定されています。クラスターはアクセスできません。変化に応じて計画を立てましょう。

セキュリティ REDSHIFT-EVENT-4000

INFO Amazon Redshift クラスター: [クラスター名] のマスター認証情報が [時間] に更新されました。

セキュリティ REDSHIFT-EVENT-4001

INFO セキュリティグループ [セキュリティグループ名]が [時間] に変更されました。変更は、関連付けられたすべてのクラスターに対して自動的に行われます。

335

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

セキュリティ REDSHIFT-EVENT-4500

ERROR 指定されたセキュリティグループ [セキュリティグループ名] は無効です。クラスター [クラスター名] の設定の変更が適用されませんでした。AWSマネジメントコンソール にアクセスして問題を修正してください。

セキュリティ REDSHIFT-EVENT-4501

ERROR クラスターセキュリティグループ [クラスターセキュリティグループ名] で指定されたセキュリティグループ [セキュリティグループ名] が見つかりませんでした。認可を完了できません。

次の表は、パラメータグループがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

パラメータグループソースタイプのカテゴリとイベント

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

設定 REDSHIFT-EVENT-1002

INFO パラメータ [パラメータ名] が [時間] に[value] から [value ] に更新されました。

設定 REDSHIFT-EVENT-1003

INFO クラスターパラメータグループ [グループ名]が作成されました。

設定 REDSHIFT-EVENT-1004

INFO クラスターパラメータグループ [グループ名]が削除されました。

設定 REDSHIFT-EVENT-1005

INFO クラスターパラメータグループ [名前] が [時間] に更新されました。動的パラメータのみを変更した場合は、関連付けられているクラスターが現在変更中です。静的パラメータを変更した場合、動的パラメータを含む、すべての更新は、関連するクラスターを再起動した場合に適用されます。

次の表は、セキュリティグループがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

セキュリティグループソースタイプのカテゴリとイベント

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

セキュリティ REDSHIFT-EVENT-4002

INFO クラスターセキュリティグループ [グループ名] が作成されました。

セキュリティ REDSHIFT-EVENT-4003

INFO クラスターセキュリティグループ [グループ名] が削除されました。

336

Amazon Redshift クラスター管理ガイドAmazon Redshift イベントのカ

テゴリおよびイベントメッセージ

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

セキュリティ REDSHIFT-EVENT-4004

INFO クラスターセキュリティグループ [グループ名] が [時間] に変更されました。変更は、関連するすべてのクラスターに自動的に適用されます。

次の表は、スナップショットがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

スナップショットソースタイプのカテゴリとイベント

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

管理 REDSHIFT-EVENT-2009

INFO Amazon Redshift クラスター [クラスター名] のユーザースナップショット [スナップショット名] が [時刻] に開始されました。スナップショットの進行状況をモニタリングするには、AWS マネジメントコンソール にアクセスしてください。

管理 REDSHIFT-EVENT-2010

INFO Amazon Redshift クラスター [クラスター名] のユーザースナップショット [スナップショット名] が [時刻] にキャンセルされました。

管理 REDSHIFT-EVENT-2011

INFO Amazon Redshift クラスター [クラスター名] のユーザースナップショット [スナップショット名] が [時刻] に削除されました。

管理 REDSHIFT-EVENT-2012

INFO Amazon Redshift クラスター [クラスター名]の最終スナップショット [スナップショット名] が [時刻] に開始されました。

Monitoring REDSHIFT-EVENT-3004

INFO Amazon Redshift クラスター [クラスター名] のユーザースナップショット [スナップショット名] が [時刻] に正常に完了しました。

Monitoring REDSHIFT-EVENT-3005

INFO Amazon Redshift クラスター [名前] の最終スナップショット [名前] が [時刻] に正常に完了しました。

Monitoring REDSHIFT-EVENT-3006

INFO Amazon Redshift クラスター [クラスター名]の最終スナップショット [スナップショット名] が [時刻] にキャンセルされました。

Monitoring REDSHIFT-EVENT-3502

ERROR Amazon Redshift クラスター [クラスター名]の最終スナップショット [スナップショット名] が [時刻] に失敗しました。チームは問題を調査しています。AWS マネジメントコンソール にアクセスしてオペレーションを再試行してください。

337

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールを

使用してイベント通知を管理する

AmazonRedshift カテゴリ

イベント ID イベントの重大度

説明

Monitoring REDSHIFT-EVENT-3503

ERROR Amazon Redshift クラスター [クラスター名] のユーザースナップショット [スナップショット名] が [時刻] に失敗しました。チームは問題を調査しています。AWS マネジメントコンソール にアクセスしてオペレーションを再試行してください。

Amazon Redshift コンソールを使用してイベント通知を管理するトピック

• イベント通知サブスクリプションを作成する (p. 338)• Amazon Redshift イベント通知サブスクリプションをリストする (p. 341)• Amazon Redshift イベント通知サブスクリプションを変更する (p. 341)• Amazon Redshift イベント通知サブスクリプションにソース識別子を追加する (p. 342)• Amazon Redshift イベント通知サブスクリプションからソース識別子を削除する (p. 342)• Amazon Redshift イベント通知サブスクリプションを削除する (p. 343)

Amazon Simple Notification Service (Amazon SNS) イベント通知サブスクリプションを作成すると、特定の Amazon Redshift クラスター、スナップショット、セキュリティグループ、またはパラメータグループにイベントが発生したときに通知を送信できます。これらの通知は SNS トピックに送信され、トピックにサブスクライブした SNS ユーザーに順番にメッセージが送信されます。コンシューマへの SNS メッセージは、E メール、テキストメッセージ、または HTTP エンドポイントへの呼び出しなど、Amazon SNS がAWS リージョンに対してサポートしている通知形式にすることができます。たとえば、すべてのリージョンでメール通知がサポートされますが、SMS 通知は 米国東部 (バージニア北部) リージョン でのみ作成できます。詳細については、「Amazon Redshift イベント通知 (p. 327)」を参照してください。

このセクションでは、AWS マネジメントコンソール から Amazon Redshift イベント通知サブスクリプションを管理する方法について説明します。

イベント通知サブスクリプションを作成するAmazon Redshift イベント通知サブスクリプションを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[イベント] を選択し、[サブスクリプション] タブを選択します。3. [サブスクリプション] ペインで、[イベントサブスクリプションの作成] を選択します。4. [イベントサブスクリプションの作成] ダイアログボックスで、次の操作を行います。

a. [サブスクリプションの設定] ペインを使用して、イベントフィルター条件を指定します。条件を選択すると、[サブスクライブしているイベント] リストに条件と一致する Amazon Redshift イベントが表示されます。次の作業を行います。

i. [カテゴリ] で、1 つ以上のカテゴリを選択します。すべてのカテゴリを指定するには、[カテゴリ] を選択します。カテゴリのサブセットを選択するには、含めるカテゴリのボタンを選択します。

338

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールを

使用してイベント通知を管理する

ii. [重要度] で、イベントの重要度を選択します。[すべて] を選択した場合、重要度が INFO または ERROR のイベントが発行されます。[エラー] を選択した場合、重要度が ERROR のイベントだけが発行されます。

iii. [ソースタイプ] で、ソースタイプを選択します。そのソースタイプのリソースによって生じたイベントだけが (クラスターやクラスターパラメータグループなど) が、イベントサブスクリプションにより発行されます。

iv. [リソース] では、ソースタイプが指定されているすべてのリソースからイベントを発行するか、サブセットのみから発行するかを指定する必要があります。指定されたタイプのすべてのリソースからイベントを発行するには、[すべて] を選択します。特定のリソースを選択する場合は、[個別に選択] を選択します。

Note

[リソース] ボックスの名前が、[ソースタイプ] で指定された値に合わせて変更されます。たとえば、[ソースタイプ] で [クラスター] を選択した場合、[リソース] ボックスの名前が [クラスター] に変わります。

[個別に選択] を選択した場合、イベントサブスクリプションによってイベントが発行される特定リソースの ID を指定できます。リソースを 1 つずつ指定し、イベントサブスクリプションに追加します。イベントサブスクリプションと同じ AWS リージョンにあるリソースのみ指定できます。指定するイベントは、[ID を指定します] ボックスの下に表示されます。

A. 既存のリソースを指定するには、[ID を指定します] ボックスでリソースを見つけ、[追加] 列で [+] ボタンを選択します。

B. 作成前にリソースの ID を指定するには、[ID を指定します] ボックスの下にあるボックスに ID を入力し、[追加] ボタンをクリックします。後で作成する場合は、この作業を行ってリソースを追加できます。

C. イベントサブスクリプションから選択されたリソースを削除するには、リソースの右側にある [X] ボックスを選択します。

b. ペインの下部で、[名前] テキストボックスにイベント通知サブスクリプションの名前を入力します。

c. [はい] を選択して、サブスクリプションを有効にします。サブスクリプションは作成するが、通知はまだ送信しない場合は、[いいえ] を選択します。サブスクリプションが作成されると、この設定に関係なく確認メッセージが送信されます。

d. [次へ] を選択して Amazon SNS トピックの指定を続行します。

339

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールを

使用してイベント通知を管理する

e. サブスクリプションがイベントの発行を使用する Amazon SNS トピックを指定するには、3 つのタブのいずれかを使用します。

i. リストから既存の Amazon SNS トピックを選択するには、[既存のトピックを使用] タブを選択し、リストからトピックを選択します。

ii. 既存の Amazon SNS トピックを Amazon リソースネーム (ARN) により指定するには、[Provide Topic ARN (トピック ARN の指定)] タブを選択し、[ARN:] ボックスで ARN を指定します。Amazon SNS コンソールを使用して、Amazon SNS トピックの ARN を見つけることができます。

A. AWS マネジメントコンソールにサインインし、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

B. ナビゲーションペインで、[トピック] を展開します。C. Amazon Redshift イベント サブスクリプションに含めるトピックを選択します。D. [Topic Details (トピックの詳細)] ペインで、[トピックの ARN:] フィールドの値をコピー

します。iii. サブスクリプション作成オペレーションにより新しい Amazon SNS トピックも作成されるよ

うにするには、[新しいトピックの作成] タブを選択し、以下を実行します。

A. [名前] には、トピックの名前を入力します。B. 通知受信者ごとに、[送信] で通知方法を選択して、[to (宛先)] で有効なアドレスを指定

し、[受取人の追加] をクリックします。[SMS] エントリは、米国東部 (バージニア北部)リージョン でのみ作成できます。

C. 受信者を削除するには、[削除] 列の赤色の X を選択します。

340

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールを

使用してイベント通知を管理する

5. サブスクリプションを作成するには、[作成] を選択します。サブスクリプションを作成しないで定義を削除するには、[キャンセル] を選択します。サブスクリプションの設定に戻るには、[前へ] を選択します。

Amazon Redshift イベント通知サブスクリプションをリストする現在の Amazon Redshift イベント通知サブスクリプションをリストできます。

現在の Amazon Redshift イベント通知サブスクリプションをリストするには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインの [Events] を選択します。[サブスクリプション] タブには、イベント通知サブスクリプションがすべて表示されます。

Amazon Redshift イベント通知サブスクリプションを変更するサブスクリプションを作成すると、サブスクリプション名、ソース識別子、カテゴリ、トピック ARN を変更できます。

Amazon Redshift イベント通知サブスクリプションを変更するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[イベント] を選択し、[サブスクリプション] タブを選択します。3. [サブスクリプション] ペインで、変更するサブスクリプションを選択し、[変更] を選択します。4. [イベントサブスクリプションの変更] ダイアログボックスで、次の操作を行います。

a. [サブスクリプションの設定] ペインを使用して、イベントフィルター条件を変更します。条件を選択すると、[サブスクライブしているイベント] リストに条件と一致する Amazon Redshift イベントが表示されます。次の作業を行います。

i. [カテゴリ] で、1 つ以上のカテゴリを選択します。すべてのカテゴリを指定するには、[カテゴリ] を選択します。カテゴリのサブセットを選択するには、含めるカテゴリのボタンを選択します。

ii. [重要度] で、イベントの重要度を選択します。iii. [ソースタイプ] で、ソースタイプを選択します。

341

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールを

使用してイベント通知を管理する

iv. [リソース] で、指定されたソースタイプからリソースの ID を選択します。指定されたリソースにより生じたイベントだけが、サブスクリプションにより発行されます。

b. サブスクリプションを有効にするには、[有効化] で [はい] を選択します。サブスクリプションを無効にするには、[いいえ] を選択します。

c. [次へ] を選択して Amazon SNS トピックの変更を続行します。d. サブスクリプションがイベントの発行を使用する Amazon SNS トピックを変更するには、3 つの

タブのいずれかを使用します。

i. リストから既存の Amazon SNS トピックを選択するには、[既存のトピックを使用] タブを選択し、リストからトピックを選択します。

ii. 既存の Amazon SNS トピックを Amazon リソースネーム (ARN) により指定するには、[ARNの指定] タブを選択し、[ARN] ボックスで ARN を指定します。

iii. サブスクリプション作成オペレーションにより新しい Amazon SNS トピックも変更されるようにするには、[新しいトピックの作成] タブを選択し、以下を実行します。

A. [名前] に、トピックの名前を入力します。B. 通知受信者ごとに、[送信] で通知方法を選択して、[to (宛先)] で有効なアドレスを指定

し、[受取人の追加] をクリックします。[SMS] エントリは、米国東部 (バージニア北部)リージョン でのみ作成できます。

C. 受信者を削除するには、[削除] 列の赤色の X を選択します。5. 変更を保存するには、[変更] を選択します。サブスクリプションを変更しないで変更を削除するに

は、[キャンセル] を選択します。サブスクリプションの設定に戻るには、[前へ] を選択します。

Amazon Redshift イベント通知サブスクリプションにソース識別子を追加する既存のサブスクリプションにソース識別子 (イベントを生成する Amazon Redshift ソース) を追加できます。

Amazon Redshift イベント通知サブスクリプションにソース識別子を追加するには

1. サブスクリプションを変更するときに選択または選択解除することで、Amazon Redshift コンソールを使用してソース識別子を簡単に追加または削除できます。詳細については、「Amazon Redshift イベント通知サブスクリプションを変更する (p. 341)」を参照してください。

2. 変更を保存するには、[変更] を選択します。サブスクリプションを変更しないで変更を削除するには、[キャンセル] を選択します。サブスクリプションの設定に戻るには、[前へ] を選択します。

Amazon Redshift イベント通知サブスクリプションからソース識別子を削除するそのソースのイベントの通知を今後は受け取らない場合、サブスクリプションからソース識別子 (イベントを生成する Amazon Redshift ソース) を削除できます。

Amazon Redshift イベント通知サブスクリプションからソース識別子を削除するには

• サブスクリプションを変更するときに選択または選択解除することで、Amazon Redshift コンソールを使用してソース識別子を簡単に追加または削除できます。詳細については、「Amazon Redshift イベント通知サブスクリプションを変更する (p. 341)」を参照してください。

342

Amazon Redshift クラスター管理ガイドAmazon Redshift CLI および API を

使用してイベント通知を管理する

Amazon Redshift イベント通知サブスクリプションを削除する不要になったサブスクリプションは削除できます。トピックへのすべてのサブスクライバは、サブスクリプションにより指定されたイベント通知を受け取らなくなります。

Amazon Redshift イベント通知サブスクリプションを削除するには

1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

2. ナビゲーションペインで、[イベント] を選択し、[サブスクリプション] タブを選択します。3. [サブスクリプション] ペインで、削除するサブスクリプションを選択します。4. [削除] を選択します。

Amazon Redshift CLI および API を使用してイベント通知を管理する次の Amazon Redshift CLI 操作を使用してイベント通知を管理することができます。

• create-event-subscription• delete-event-subscription• describe-event-categories• describe-event-subscriptions• イベントの説明• modify-event-subscription

次の Amazon Redshift API アクションを使用してイベント通知を管理することができます。

• CreateEventSubscription• DeleteEventSubscription• DescribeEventCategories• DescribeEventSubscriptions• DescribeEvents• ModifyEventSubscription

Amazon Redshift イベント通知の詳細については、「Amazon Redshift イベント通知 (p. 327)」を参照してください。

343

Amazon Redshift クラスター管理ガイド伸縮自在なサイズ変更

Amazon Redshift でのクラスターのサイズ変更

データウェアハウスの容量やパフォーマンスのニーズを変更または拡大する場合、Amazon Redshift の提供するコンピューティングおよびストレージオプションを最大限に利用するためにクラスターのサイズを変更することができます。伸縮自在なサイズ変更を使用して、ノードの数を変更することで、クラスターをスケールすることができます。また、従来のサイズ変更を使用して、異なるノードタイプを指定してクラスターをスケールすることもできます。次のいずれかの方法で、クラスターのサイズを変更できます。

• 伸縮自在なサイズ変更 – ノードをクラスターにすばやく追加または削除するには、伸縮自在なサイズ変更を使用します。クラスターは短時間、通常、数分間使用できなくなります。Amazon Redshift は、接続を開いたまま維持しようとし、クエリは一時的に停止されます。

• 従来のサイズ変更 – ノードタイプ、ノードの数、またはその両方を変更するには、従来のサイズ変更を使用します。クラスターは、従来のサイズ変更の間読み取り専用状態にされ、2 時間から 2 日かかることがあります。

• スナップショット、復元、およびサイズ変更 – クラスターのサイズ変更中にもクラスターを引き続き機能させるには、最初に既存のクラスターのコピーを作成してから、新しいクラスターをサイズ変更します。

トピック• 伸縮自在なサイズ変更 (p. 344)• 従来のサイズ変更 (p. 346)• スナップショット、リストア、およびサイズ変更 (p. 347)• コンソールを使用してクラスターをサイズ変更する (p. 348)• CLI と API を使用してクラスターをサイズ変更する (p. 349)

伸縮自在なサイズ変更伸縮自在なサイズ変更は、クラスターのサイズを変更する最速の方法です。伸縮自在なサイズ変更は、既存のクラスターにあるノードを追加または削除し、自動的にデータを新しいノードに再分散します。新しいクラスターを作成しないため、伸縮自在なサイズ変更オペレーションは、素早く (通常は数分以内に) 完了します。バックグラウンドでデータが再分配されているとき、一部のクエリの実行時間がわずかに増加するのに気付くかも知れません。

伸縮自在なサイズ変更オペレーションは、以下のステージで行われます。

1. 伸縮自在なサイズ変更は、クラスターのスナップショットを作成します。

伸縮自在なサイズ変更が作成するスナップショットには、バックアップしないテーブル (p. 162)が含まれています。自動スナップショットを無効にしているため、クラスターに最近のスナップショットがない場合、バックアップオペレーションには時間がかかります。サイズ変更オペレーションを開始する前の時間を最小限に抑えるため、自動スナップショットを有効にするか伸縮自在なサイズ変更を開始する前に手動スナップショットを作成することをお勧めします。詳細については、「Amazon Redshift スナップショット (p. 159)」を参照してください。

344

Amazon Redshift クラスター管理ガイド伸縮自在なサイズ変更

2. 伸縮自在なサイズ変更がクラスターメタデータを移行している間、クラスターは一時的に使用できなくなります。

このステージは非常に短く、長くても数分です。Amazon Redshift がセッション接続を保持し、クエリはキューに登録された状態を維持します。一部のセッションおよびクエリはタイムアウトする可能性があります。

3. セッション接続が回復し、クエリが再開します。4. 伸縮自在なサイズ変更がバックグラウンドでノードスライスにデータを再分配します。

クラスターは読み取り/書き込みオペレーションに使用できますが、一部のクエリの実行には時間がかかる可能性があります。

Amazon Redshift コンソールを使用して伸縮自在なサイズ変更オペレーションの進捗状況をモニタリングするには、クラスターの詳細ページで、[ステータス] タブを選択します。

伸縮自在なサイズ変更を単一ノードクラスターで使用すること、またはノードタイプを変更することはできません。このような場合は、従来のサイズ変更を使用できます。

伸縮自在なサイズ変更は、テーブルをソートせず、ディスクスペースを回復しないため、バキューム操作に代わるものではありません。従来のサイズ変更はテーブルを新しいクラスターにコピーするので、バキューム処理の必要性を少なくできます。詳細については、テーブルのバキューム処理 を参照してください。

伸縮自在なサイズ変更には以下の制約があります。

• 伸縮自在なサイズ変更は、EC2 VPC プラットフォームを使用するクラスターにのみ使用できます。詳細については、「クラスターの起動用にサポートされているプラットフォーム (p. 11)」を参照してください。

• 新しいノード設定では、既存のデータに対して十分なストレージが必要です。ノードを追加するときでも、データが再分配される方法のために、新しい設定に十分なストレージがない場合があります。

• dc2.large または ds2.xlarge ノードタイプの場合、元のクラスターのノード数のサイズを 2 倍にするか半分にすることができます。たとえば、4 ノードクラスターは伸縮自在なサイズ変更によって 8 ノード

345

Amazon Redshift クラスター管理ガイド従来のサイズ変更

に増やすか、2 ノードに減らすことができます。別のノード数にサイズ変更するには、従来のサイズ変更 (p. 346) を使用する必要があります。

• dc2.8xlarge または ds2.8xlarge ノードタイプの場合、ノード数を現在のノード数の半分から 2 倍に変更できます。たとえば、4 ノードクラスターは 2、3、5、6、7、または 8 ノードにサイズ変更できます。

Note

最大ノード制限をリセットするには、従来のサイズ変更 (p. 346) を使用します。たとえば、4ノードから 10 ノードに増やすには、まず従来のサイズ変更を使用して 5 ノードに変更します。

従来のサイズ変更従来のサイズ変更オペレーションでは、データはコンピューティングノードまたはソースクラスターのノードから、コンピューティングノードまたはターゲットクラスターのノードに並列コピーされます。これに要する時間は、小さい方のクラスターにあるデータの量とノードの数によって異なります。数時間で終わることもあれば、2~3 日かかる可能性もあります。

サイズ変更オペレーションを開始すると、Amazon Redshift はサイズ変更が完了するまで、既存のクラスターを読み取り専用モードにします。この間、実行できるのはデータベースから読み込むクエリのみで、データベースへの書き込みおよび読み取り/書き込みクエリは実行できません。詳細については、AmazonRedshift Database Developer Guide の書き込みおよび読み取り/書き込み操作を参照してください。

Note

本番稼働環境への影響を最小限に抑えてサイズ変更するには、次の スナップショット、リストア、およびサイズ変更 (p. 347) セクションのステップを使用できます。これらのステップを使用して、クラスターのコピーを作成し、コピーのサイズを変更してサイズ変更を完了してから、接続のエンドポイントをサイズ変更したクラスターに切り替えます。

従来のサイズ変更の方法でもスナップショットと復元を使用する方法でも、新しいクラスターにユーザーのテーブルとデータをコピーします。システムテーブルおよびデータは保持されません。従来のサイズ変更またはスナップショットと復元では、ソースクラスターで監査ログを有効にしていた場合、Amazon S3のログに引き続きアクセスできます。これらの方法では、ソースクラスターを削除した後でも、ログに引き続きアクセスできます。これらのログは、指定したデータポリシーに応じて保持または削除することができます。伸縮自在なサイズ変更では、システムログテーブルが保持されます。

Amazon Redshift によりソースクラスターが読み取り専用モードになった後、ターゲットクラスターである新しいクラスターをプロビジョンします。これは、ノードタイプ、クラスタータイプ、およびノードの数について指定する情報を使用して実行されます。次に Amazon Redshift はソースクラスターからターゲットクラスターにデータをコピーします。これが完了すると、すべての接続がターゲットクラスターを使用するように切り替わります。この切り替え時点で処理中のクエリがある場合、接続が失われるため、ターゲットクラスターでクエリを再起動する必要があります。サイズ変更の進捗は、Amazon Redshiftconsole のクラスターの [ステータス] タブで確認することができます。

Amazon Redshift はサイズ変更オペレーション中にテーブルをソートしないため、既存のソート順序が維持されます。クラスターのサイズを変更すると、Amazon Redshift は分散スタイルに基づいてデータベーステーブルを新しいノードに分散し、ANALYZE コマンドを実行して統計を更新します。削除対象としてマークされた行は転送されないため、テーブルの再ソートが必要な場合のみ VACUUM コマンドを実行する必要があります。詳細については、 Amazon Redshift Database Developer Guide のテーブルのバキューム処理を参照してください。

Amazon Redshift コンソールのクラスターリストから [cancel resize (サイズ変更をキャンセル)] を選択して、サイズ変更オペレーションが完了する前にキャンセルできます。サイズ変更のキャンセルに要する時間は、キャンセルするとき、サイズ変更オペレーションのどのステージにあるかによって異なります。

346

Amazon Redshift クラスター管理ガイドスナップショット、リストア、およびサイズ変更

クラスターは、サイズ変更のキャンセルオペレーションが完了するまで使用できません。サイズ変更オペレーションが最終ステージになっている場合は、オペレーションをキャンセルできません。

詳細については、「コンソールを使用してクラスターをサイズ変更する (p. 348)」を参照してください。

スナップショット、リストア、およびサイズ変更前のセクションで説明したとおり、従来のサイズ変更オペレーションを使用したクラスターのサイズ変更にかかる時間は、クラスターのデータ量に大きく左右されます。

伸縮自在なサイズ変更 (p. 344)は、Amazon Redshift クラスターのサイズを変更する最速の方法です。伸縮自在なサイズ変更オプションを選択できず、クラスターにほぼ恒常的な書き込みアクセスが必要な場合は、次のセクションで説明している、スナップショットと復元オペレーションを使用します。この方法では、スナップショットが作成された後でソースクラスターに書き込まれたデータは、ターゲットクラスターに切り替えた後、手動でコピーする必要があります。コピーにかかる時間によっては、両方のクラスター内のデータが同じになるまで、この操作を数回繰り返す必要がある場合もあります。その後で、ターゲットクラスターに切り替えられます。このプロセスは、ターゲットクラスターのすべてのデータが使用可能になるまでに、既存のクエリに悪影響を及ぼす可能性があります。ただし、データベースへの書き込みができない時間は最短になります。

スナップショットと復元によるサイズ変更方法には、次のプロセスを使用します。

1. 既存のクラスターのスナップショットを作成します。既存のクラスターがソースクラスターです。2. スナップショットを作成した時刻を記録します。そうすることで、スナップショット後のデータをター

ゲットデータベースにロードするための抽出、処理、ロード (ETL) プロセスを再実行する必要がある時点を識別できるようにします。

3. 新しいクラスターにスナップショットを復元します。この新しいクラスターがターゲットクラスターです。サンプルデータがターゲットクラスターにあることを確認します。

4. ターゲットクラスターのサイズを変更します。ターゲットクラスターに関して、新しいノードタイプ、ノード数、その他の設定を選択します。

5. ソースクラスターのスナップショット作成後に発生した ETL プロセスでロードされたデータを確認します。ターゲットクラスターには、同じデータを同じ順序で再ロードしてください。進行中のデータロードがある場合、ソースクラスターとターゲットクラスターのデータが同じになるまで、このプロセスを数回繰り返します。

6. ソースクラスターで実行中のすべてのクエリを停止します。これを行うには、クラスターを再起動するか、スーパーユーザーとしてログオンし、PG_CANCEL_BACKEND およびPG_TERMINATE_BACKEND コマンドを使用できます。クラスターを再起動すると、クラスターが使用できないことを最も簡単に確認できます。

7. ソースクラスター名を変更します。たとえば、examplecluster から examplecluster-source に変更します。

8. 変更前のソースクラスター名を使用して、ターゲットクラスターの名前を変更します。たとえば、ターゲットクラスターの名前を examplecluster に変更します。これ以降、examplecluster を含むエンドポイントを使用するアプリケーションは、ターゲットクラスターに接続します。

9. ターゲットクラスターに切り替えた後、ソースクラスターを削除し、すべてのプロセスが期待どおりに動作することを確認します。

または、データをターゲットクラスターに再ロードする前にソースとターゲットクラスターの名前を変更することもできます。このアプローチは、ターゲットクラスター用の依存システムとレポートをすぐに最新状態にする要件がない場合に適しています。この場合、ステップ 6 は前述のプロセスの最後に移動されます。

名前変更プロセスは、アプリケーションが引き続き同じエンドポイントを使用してクラスターに接続する必要がある場合にのみ必要になります。これが必要ない場合は、クラスターの名前を変更せずにそのクラ

347

Amazon Redshift クラスター管理ガイドコンソールを使用してクラスターをサイズ変更する

スターに接続するアプリケーションを、ターゲットクラスターのエンドポイントを使用するように更新することもできます。

クラスター名を再利用するのには、いくつかの利点があります。最初に、エンドポイントが変わらないため、基盤となるクラスターを変更しても、アプリケーションの接続文字列を更新する必要がありません。第 2 に、Amazon CloudWatch アラームおよび Amazon Simple Notification Service (Amazon SNS) の通知などの関連項目が、クラスター名に固定されます。これは、クラスターにセットアップした同じアラームと通知を継続して使用することができるということです。この継続的な使用は、アラームや通知などの関連項目を再設定することなく、柔軟にクラスターのサイズを変更できる必要がある本番環境では特に重要です。

コンソールを使用してクラスターをサイズ変更する伸縮自在なサイズ変更または従来のサイズ変更を使用して、クラスターをサイズ変更できます。サイズ変更のタイプの詳細については、Amazon Redshift でのクラスターのサイズ変更 (p. 344) を参照してください。

コンソールを使用してクラスターのサイズを変更するには:

1. Amazon Redshift consoleを開きます。2. ナビゲーションペインで、[クラスター] を選択して、サイズ変更するクラスターを選択します。3. [クラスター]、[サイズ変更] の順に選択します。

4. [Type of resize (サイズ変更のタイプ)] で、以下のいずれかの値を選択します。

• 伸縮自在なサイズ変更

クラスターが伸縮自在なサイズ変更をサポートしない場合、[伸縮自在なサイズ変更] は利用できません。

• [従来のサイズ変更]5. [ノードの数] では、新しいノード数を選択します。伸縮自在なサイズ変更では、有効なノードの数の

み使用できます。

348

Amazon Redshift クラスター管理ガイドCLI と API を使用してクラスターをサイズ変更する

6. [サイズ変更] を選択します。7. サイズ変更の進捗を確認するには、[クラスターステータス] をモニタリングします。

CLI と API を使用してクラスターをサイズ変更するCLI を使用してクラスターのサイズを変更するには、resize-cluster コマンドを実行します。

API を使用してクラスターをサイズ変更するには、ResizeCluster アクションを使用します。

349

Amazon Redshift クラスター管理ガイドクォータと制限

Amazon Redshift における制限

クォータと制限Amazon Redshift にはクォータが割り当てられています。クォータにより、プロビジョニングできるノードの合計数、作成できるスナップショットの数が制限されます。これらのクォータは、各リージョンのAWS アカウントごとに設定されます。Amazon Redshift には、それぞれデフォルトクォータがあります。リストについては、「AWS サービスの制限」を参照してください。いずれかのクォータの制限を超える処理を実行しようとすると、処理は失敗します。リージョンでアカウントに設定されている AmazonRedshift のクォータ制限を緩和するには、Amazon Redshift 上限緩和申請を提出して変更を要請してください。

クォータ以外にも、Amazon Redshift には次のようなクラスターごとの値の制限があります。これらの制限は緩和できません。

• クラスターごとに割り当てることができるノードの数。クラスターのノードタイプに基づきます。この制限は、各リージョンの AWS アカウントの制限とは異なります。各ノードタイプの現在のノード制限の詳細については、「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

• テーブルの最大数は large と xlarge クラスターのノードタイプで 9,900、8xlarge クラスターのノードタイプでは 20,000 です。制限には一時テーブルが含まれます。一時テーブルには、ユーザー定義の一時テーブルや、クエリの処理またはシステムメンテナンス中に Amazon Redshift によって作成された一時テーブルが含まれます。ビューはこの上限には含まれません。テーブルの作成の詳細については、『Amazon Redshift Database Developer Guide』の「Create Table Usage Notes」を参照してください。クラスターノードのタイプに関する詳細は「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

• クラスターごとに作成できるユーザー定義データベースの数は 60 です。データベースの作成の詳細については、『Amazon Redshift Database Developer Guide』の「Create Database」を参照してください。

• クラスター内のデータベースごとに作成できるスキーマの数は 9,900 です。ただし、pg_temp_* スキーマはこのクォータに加算されません。スキーマの作成の詳細については、『Amazon Redshift DatabaseDeveloper Guide』の「Create Schema」を参照してください。

• ワークロード管理 (WLM) の設定では、すべてのユーザー定義キューに対して合計 50 の同時実行レベルを定義できます。詳細については、『Amazon Redshift Database Developer Guide』の「クエリキューの定義」を参照してください。

• スナップショットを復元するために許可できる AWS アカウントの数は、1 スナップショットあたり 20個、1 AWS Key Management Service (AWS KMS) キーあたり 100 個です。つまり、1 つの KMS キーで暗号化された 10 個のスナップショットがある場合、10 個の AWS アカウントで、各スナップショットを復元することを許可できます。または、最大 100 個のアカウントのその他の組み合わせや、スナップショットごとに 20 アカウントを超えないその他の組み合わせを許可できます。詳細については、『Amazon Redshift Cluster Management Guide』の「スナップショットの共有 (p. 166)」を参照してください。

• COPY コマンドを使用してロードされる 単一の入力行の最大サイズは 4 MB です。詳細については、『Amazon Redshift Database Developer Guide』の「COPY」を参照してください。

• クラスターと IAM ロールを所有するユーザーに代わって他の AWS サービスに Amazon Redshift がアクセスするのを許可するため、最大 10 の IAM ロールをクラスターに関連付けることができます。詳細については、「ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する (p. 247)」を参照してください。

350

Amazon Redshift クラスター管理ガイドSpectrum の制限

Spectrum の制限Athena または AWS Glue データカタログ使用時の Amazon Redshift Spectrum には次の制限があります。

• アカウントあたりのデータベース数の上限: 10,000• データベースあたりのテーブル数の上限: 100,000。• テーブルあたりのパーティション数の上限: 1,000,000。• アカウントあたりのパーティション数の上限: 10,000,000• 単一の ALTER TABLE ステートメントを使用して、最大 100 のパーティションを追加することができま

す。• すべての S3 データは、Redshift クラスターと同じリージョンにある必要があります。• ION および JSON 形式のタイムスタンプには、ISO8601 形式を使用する必要があります。• ION/JSON ファイル内の行オブジェクトの最大許容サイズは 8 MB です。

ION または JSON ファイル内のオブジェクトは括弧で囲まれたデータです。例: (`{ "col1": "data1","col2": "data2" }`)

• ION/JSON ファイル内の文字列値の最大許容サイズは 16 KB です。• ORC ファイルの外部圧縮はサポートされていません。• テキスト、OpenCSV、REGEX SERDE では、`\177` より大きい 8 進数の区切り記号はサポートされて

いません。• すべてのパーティションからの読み取りを回避するには、パーティション列に述語を指定する必要があ

ります。

たとえば、次の術語は ship_dtm 列でフィルタリングしますが、パーティション列 ship_yyyymm にはフィルタリングを適用しません。

WHERE ship_dtm > '2018-04-01'。

不要なパーティションをスキップするには、術後 WHERE ship_yymmm = '201804' を追加する必要があります。この述語はパーティション \ship_yyyymm=201804\ への読み込みオペレーションを制限します。

• 外部テーブルの列制限は、疑似列が有効な場合は 1,598、無効な場合は 1,600 です。

これらの上限は、AWS サポートにリクエストして拡大することができます。

これらの制限は、Hive メタストアには適用されません。

命名に関する制約次の表に、Amazon Redshift での命名に関する制約を示します。

クラスター識別子 • クラスター識別子には小文字のみ使用できます。• 1 ~ 63 文字の英数字またはハイフンを使用する必要があり

ます。• 1 字目は文字である必要があります。• ハイフンを、文字列の最後に使用したり、2 つ続けて使用

したりすることはできません。• AWS アカウントのすべてのクラスター間で一意である必要

があります。

351

Amazon Redshift クラスター管理ガイド命名に関する制約

データベース名 • データベース名には、1~64 文字の英数字を使用する必要があります。

• 小文字のみを使用する必要があります。• 予約語は使用できません。予約語の一覧については、

『Amazon Redshift Database Developer Guide』の「予約語」を参照してください。

マスターユーザー名 • マスターユーザー名には小文字のみ使用できます。• 1~128 文字の英数字を使用する必要があります。• 1 字目は文字である必要があります。• 予約語は使用できません。予約語の一覧については、

『Amazon Redshift Database Developer Guide』の「予約語」を参照してください。

マスターパスワード • マスターパスワードの長さは 8~64 文字にする必要があります。

• 最低 1 個の大文字を含める必要があります。• 最低 1 個の小文字を含める必要があります。• 数字を 1 個含める必要があります。• 表示可能な ASCII 文字 (ASCII コード 33~126) のう

ち、' (一重引用符)、" (二重引用符)、\、/、@ または空白を除く任意の文字を使用できます。

パラメーターグループ名 • パラメータグループ名には 1~255 文字の英数字またはハイフンを使用する必要があります。

• 小文字のみを使用する必要があります。• 1 字目は文字である必要があります。• ハイフンを、文字列の最後に使用したり、2 つ続けて使用

したりすることはできません。

クラスターセキュリティグループ名 • クラスターセキュリティグループ名には 255 文字以下の英数字またはハイフンを使用する必要があります。

• 小文字のみを使用する必要があります。• 「Default」という文字列を使用することはできません。• AWS アカウントで作成したすべてのセキュリティグループ

間で一意である必要があります。

サブネットグループ名 • サブネットグループ名には 255 文字以下の英数字またはハイフンを使用する必要があります。

• 小文字のみを使用する必要があります。• 「Default」という文字列を使用することはできません。• AWS アカウントで作成したすべてのセキュリティグループ

間で一意である必要があります。

クラスタースナップショット識別子 • クラスタースナップショット識別子には 255 文字以下の英数字またはハイフンを使用する必要があります。

• 小文字のみを使用する必要があります。• 「Default」という文字列を使用することはできません。• AWS アカウントで作成したすべてのセキュリティグループ

間で一意である必要があります。

352

Amazon Redshift クラスター管理ガイドタグ付けの概要

Amazon Redshift でのリソースへのタグ付け

トピック• タグ付けの概要 (p. 353)• コンソールを使用したリソースタグの管理 (p. 354)• Amazon Redshift API を使用したタグの管理 (p. 356)

タグ付けの概要AWS タグは、キーと値のペアで構成されるユーザー定義のラベルです。Amazon Redshift では、一目で分かるリソースに関するメタデータを提供し、コスト配分に基づいて請求レポートを分類するタグ付けがサポートされます。コスト配分にタグを使用するには、まず AWS Billing and Cost Management サービスでタグをアクティブ化する必要があります。請求目的でタグを設定および使用する方法の詳細については、「コスト配分タグを使用したカスタム請求レポート」と「月別コスト割り当てレポートの設定」を参照してください。

タグは、Amazon Redshift のリソースに必須ではありませんが、コンテキストの提供に役立ちます。コストセンター、プロジェクト名、リソースについての他の関連情報に関するメタデータを持つリソースにタグ付けできます。たとえば、テスト環境に属するリソースと本稼働環境に属するリソースを追跡するとします。environment というキーを作成し、値 test または production を指定して、各環境で使用されるリソースを特定できます。他の AWS サービスでタグ付けを使用する場合や、ビジネスの標準カテゴリがある場合、一貫性を保つために Amazon Redshift のリソースに同じキーと値のペアを作成することをお勧めします。

タグは、クラスターのサイズを変更した後や、同じリージョン内のクラスターのスナップショットを復元した後も保持されます。一方、別のリージョンにスナップショットをコピーした場合はタグが保持されないため、新しいリージョンでタグを再作成する必要があります。リソースを削除した場合、関連付けられたタグが削除されます。

各リソースには、リソースに割り当てられた 1 つ以上のタグの集合であるタグセットが 1 つあります。リソースごとに、タグセットあたり最大 50 個のタグを含めることができます。タグは、リソースの作成時とリソースの作成後に追加できます。Amazon Redshift では、以下のリソースタイプにタグを追加できます。

• CIDR/IP• クラスター• クラスターセキュリティグループ• クラスターのセキュリティグループの進入ルール• EC2 セキュリティグループ• HSM 接続• HSM クライアント証明書• パラメータグループ• スナップショット• サブネットグループ

353

Amazon Redshift クラスター管理ガイドタグ付け要件

タグ付け要件タグには、次の要件があります。

• キーにプレフィックス aws: を付けることはできません。• キーはタグセットごとに一意であることが必要です。• キーに使用できる文字数は 1~128 文字です。• 値に使用できる文字数は 0~256 文字です。• 値は、タグセットごとに一意にする必要はありません。• キーと値に使用できる文字は、Unicode 文字、数字、空白、および _ . : / = + - @ の記号です。• キーと値は大文字と小文字が区別されます。

コンソールを使用したリソースタグの管理以下に示すのは、クラスターやパラメータグループなど、Amazon Redshift リソースの [タグの管理] ウィンドウの例です。

Amazon Redshift サービスにキーペアを追加するには、[Add Tags] セクションを使用します。[Add Tags]セクションでキーペアを入力し始めると、新しい行が表示され、別のキーペアなどを追加できるようになります。キーと値に使用できる文字の詳細については、「タグ付け要件 (p. 354)」を参照してください。

特定のタグをリソースに追加しないことにした場合、行の [X] をクリックすることで [Add Tags] セクションから削除できます。追加するキーペアを指定したら、それらのキーペアがリソースに関連付けられるように変更を適用します。

リソースにキーペアを追加すると、[Applied Tags] セクションに表示されます。これは、リソースのタグセットです。タグ値は変更できますが、キー名を変更することはできません。ただし、キーがリソースに必要なくなった場合はそのキーを削除できます。

[Manage Tags] ウィンドウの [Applied Tags] セクションを確認することで、リソースのタグを参照できます。または、ナビゲーションペインのリソースタイプに移動し、リスト内のリソースを展開して [Tags]セクションを表示することで、タブをすばやく参照することができます。クラスターを展開して、クラスターに関連付けられたタグなどの各種プロパティを表示する方法の例を以下に示します。

354

Amazon Redshift クラスター管理ガイド[Manage Tags] ウィンドウを開く方法

[Manage Tags] ウィンドウを開く方法次の表は、タグがサポートされる各 Amazon Redshift リソースの [タグの管理] ウィンドウを開く方法について説明しています。

リソース 説明

クラスター 左のナビゲーションペインで、[Clusters] をクリックし、リストからクラスターを選択します。次に、[Manage Tags] をクリックします。

スナップショット

左のナビゲーションペインで、[Snapshots] をクリックし、リストからスナップショットを選択します。次に、[Actions] をクリックし、メニューから [Manage Tags]をクリックします。

クラスターセキュリティグループ

左のナビゲーションペインで [Security] をクリックします。[Security Groups] タブで、リストからセキュリティグループを選択します。次に、[Manage Tags] をクリックします。

クラスターのセキュリティグループの進入ルール

左のナビゲーションペインで [Security] をクリックします。[Security Groups] タブのリストでセキュリティグループをクリックします。[Security Group Connections]ページで進入ルールを選択し、[Manage Tags] をクリックします。

サブネットグループ

左のナビゲーションペインで [Security] をクリックします。[Subnet Groups] タブで、リストからサブネットグループを選択します。次に、[Manage Tags] をクリックします。

HSM 接続 左のナビゲーションペインで [Security] をクリックします。[HSM Connections] タブで、リストから接続を選択します。次に、[Manage Tags] をクリックします。

HSM 証明書 左のナビゲーションペインで [Security] をクリックします。[HSM Certificates] タブで、リストから証明書を選択します。次に、[Manage Tags] をクリックします。

355

Amazon Redshift クラスター管理ガイドAmazon Redshift コンソールでタグを管理する方法

リソース 説明

パラメーターグループ

左のナビゲーションペインで、[Parameter Groups] をクリックし、リストからパラメータグループを選択します。次に、[Manage Tags] をクリックします。

Amazon Redshift コンソールでタグを管理する方法前のセクションの表を使用して作業するリソースに移動し、このセクションの手順に従ってリソースのタグを追加、変更、削除、参照します。

リソースにタグを追加するには

1. タグを追加するリソースに移動し、[Manage Tags] ウィンドウを開きます。2. [Add Tags] の [Key] ボックスにキー名を、[Value] ボックスにキー値を入力します。たとえば、[Key]

ボックスに「environment」と入力し、[Value] ボックスに「production」と入力します。他のタグを追加するには、この手順を繰り返します。

3. [Apply Changes] をクリックします。

リソースに関連付けられたタグを変更するには

1. タグを変更するリソースに移動し、[Manage Tags] ウィンドウを開きます。2. [Applied Tags] で、変更するキーを見つけます。[Value] ボックスに、新しいキー値を入力します。変

更する他のタグでこの手順を繰り返します。3. [Apply Changes] をクリックします。

リソースに関連付けられたタグを削除するには

1. タグを削除するリソースに移動し、[Manage Tags] ウィンドウを開きます。2. [Applied Tags] で、削除するキーを見つけます。[Delete] チェックボックスをオンにします。削除する

他のタグでこの手順を繰り返します。3. [Apply Changes] をクリックします。

Amazon Redshift API を使用したタグの管理以下の AWS CLI オペレーションを使用して、Amazon Redshift のタグを管理できます。

• create-tags• delete-tags• describe-tags

次の Amazon Redshift API を使用して、タグを管理できます。

• CreateTags• DeleteTags• DescribeTags• Tag• TaggedResource

356

Amazon Redshift クラスター管理ガイドAmazon Redshift API を使用したタグの管理

さらに、次の Amazon Redshift API を使用して、特定のリソースのタグを管理および参照することもできます。

• CreateCluster• CreateClusterParameterGroup• CreateClusterSecurityGroup• CreateClusterSnapshot• CreateClusterSubnetGroup• CreateHsmClientCertificate• CreateHsmConfiguration• DescribeClusters• DescribeClusterParameterGroups• DescribeClusterSecurityGroups• DescribeClusterSnapshots• DescribeClusterSubnetGroups• DescribeHsmClientCertificates• DescribeHsmConfigurations

357

Amazon Redshift クラスター管理ガイド

ドキュメント履歴2018 年 6 月よりあとの Amazon Redshift Cluster Management Guide の各リリースにおける重要な変更点を次の表に示します。このドキュメントの更新に関する通知については、RSS フィードにサブスクライブできます。

API バージョン: 2012-12-01

ドキュメントの最終更新日: 2019 年 9 月 4 日

『Amazon Redshift Database Developer Guide』への変更のリストについては、「Amazon RedshiftDatabase Developer Guide のドキュメント履歴」を参照してください。

新機能の詳細については、修正点のリストや、各リリースに関連付けられたクラスターバージョン番号も含めて、クラスターバージョンの履歴を参照してください。

update-history-change update-history-description update-history-date

クラスターリリースバージョン 新しいクラスターリリースバージョンのリリースノートが利用可能になりました。詳細については、「クラスターバージョンの履歴」を参照してください。

August 22, 2019

セキュリティ情報の更新 セキュリティ情報のドキュメントに対する更新。

June 24, 2019

スナップショットの機能強化 Amazon Redshift は、スナップショットの管理とスケジューリングに対するいくつかの機能強化をサポートするようになりました。

April 4, 2019

同時実行スケーリング ワークロード管理 (WLM) を設定して、同時実行スケーリングモードを有効にすることができます。詳細については、「ワークロード管理の設定」を参照してください。

March 21, 2019

JDBC および ODBC ドライバの更新

Amazon Redshift では、新しいバージョンの JDBC およびODBC ドライバがサポートされるようになりました。詳細については、「JDBC 接続を設定する」および「ODBC 接続を設定する」を参照してください。

February 4, 2019

遅延メンテナンス クラスターのメンテナンスウィンドウを変更する必要がある場合、メンテナンスを最長 14 日まで遅延できます。遅延期間中にハードウェアを更新する必要がある、または他の必須の更新を行う必要がある場合、通知して必要な変更を行います。更新中は、クラスターを使用できません。詳細について

November 20, 2018

358

Amazon Redshift クラスター管理ガイド

は、「メンテナンスの遅延」を参照してください。

事前通知 Amazon Redshift では、いくつかのイベントを事前に通知します。これらのイベントは、pendingのイベントカテゴリーを持ちます。たとえば、クラスターにあるノードの 1 つに更新が必要な場合、事前通知を送信します。他の Amazon Redshift イベントと同様、保留中のイベントにサブスクライブできます。詳細については、「Amazon Redshift イベント通知にサブスクライブする」を参照してください。

November 20, 2018

伸縮自在なサイズ変更 伸縮自在なサイズ変更は、クラスターのサイズを変更する最速の方法です。伸縮自在なサイズ変更は、既存のクラスターにあるノードを追加または削除し、自動的にデータを新しいノードに再分散します。新しいクラスターを作成しないため、伸縮自在なサイズ変更オペレーションは、素早く (通常は数分以内に) 完了します。詳細については、「クラスターのサイズ変更」を参照してください。

November 15, 2018

新しい ODBC ドライバ Amazon Redshift ODBC ドライバーがバージョン 1.4.3.1000 に更新されました。詳細については、「ODBC 接続を設定する」を参照してください。

November 8, 2018

サイズ変更オペレーションのキャンセル

サイズ変更オペレーションを進行中にキャンセルできるようになりました。詳細については、「サイズ変更オペレーションの概要」を参照してください。

November 2, 2018

クラスターを変更して暗号を変更する

AWS が管理するキーまたはお客様が管理するキー (CMK) を使用し、暗号化されていないクラスターを変更して AWSKey Management Service (AWSKMS) 暗号化を使用できます。クラスターを変更して KMS 暗号化を有効にすると、AmazonRedshift は自動的にデータを新たな暗号化されたクラスターに移行します。また、クラスターを変更することで、暗号化されていないクラスターを暗号化されたクラスターに移行することもできます。

October 16, 2018

359

Amazon Redshift クラスター管理ガイド

Amazon Redshift Spectrum は、拡張された VPC のルーティングをサポートします

拡張された VPC のルーティングが有効化された RedshiftSpectrum をクラスターで使用できるようになりました。追加の設定ステップを実行する必要がある場合があります。詳細については、「拡張された VPC のルーティングで Amazon Redshiftロールを使用する」を参照してください。

October 10, 2018

クエリエディタ Amazon Redshift マネジメントコンソールから SQL クエリを実行できるようになりました。

October 4, 2018

ワークロードの実行内訳表 コンソールのワークロードの実行内訳表を確認して、ワークロードのパフォーマンスの詳細を表示できるようになりました。詳細については、「ワークロードパフォーマンスの分析」を参照してください。

July 30, 2018

メンテナンストラック クラスターが、常に最新バージョンの Amazon Redshift に更新されるか、前のバージョンに更新されるかを、メンテナンストラックを選択して指定できるようになりました。詳細については、「クラスターメンテナンストラックの選択」を参照してください。

July 26, 2018

JDBC および ODBC ドライバの更新

Amazon Redshift では、新しいバージョンの JDBC およびODBC ドライバがサポートされるようになりました。詳細については、「JDBC 接続を設定する」および「ODBC 接続を設定する」を参照してください。

July 13, 2018

オンデマンドのクラスターリリースバージョン

クラスターは、最新リリースバージョンが利用可能になり次第、アップグレードできるようになりました。詳細については、「クラスターバージョンの管理」を参照してください。

June 29, 2018

次の表は、2018 年 7 月より前の Amazon Redshift Cluster Management Guide の重要な変更点をまとめたものです。

変更 説明 リリース日

新しい CloudWatchメトリクス

クエリのパフォーマンスをモニタリングするための新しい CloudWatch メトリクスが追加されました。詳細については、「Amazon Redshift のパフォーマンスデータ (p. 297)」を参照してください。

2018 年 5 月 17 日

360

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

JDBC および ODBCの新規ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.2.12.1017 に更新されました。詳細については、「JDBC接続を設定する (p. 70)」を参照してください。

Amazon Redshift ODBC ドライバーがバージョン1.4.1.1001 に更新されました。詳細については、「ODBC接続を設定する (p. 87)」を参照してください。

2018 年 3 月 7 日

HSM 暗号化 Amazon Redshift では、ハードウェアセキュリティモジュール (HSM) キー管理には AWS CloudHSM のみをサポートします。詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。

2018 年 3 月 6 日

IAM ロールの連鎖 クラスターにアタッチされた IAM ロールに必要なリソースへのアクセスがない場合、他のアカウントに属している可能性がある別のロールを連鎖することができます。クラスターは、このデータにアクセスするための連鎖ロールを一時的に引き受けます。また、ロールを連鎖してクロスアカウントアクセスを付与することもできます。連鎖における各ロールは、クラスターが連鎖の末尾のロールを引き受けるまで、連鎖の次のロールを引き受けます。最大で 10個のロールを連鎖できます。詳細については、「AmazonRedshift で IAM ロールを連鎖する (p. 250)」を参照してください。

2018 年 2 月 23 日

新しい DC2 ノードタイプ

新しい世代の Dense Compute (DC) ノードタイプは、DC1と同じ価格で、はるかに高いパフォーマンスを提供します。DC1 クラスターを新しい DC2 ノードタイプに移行すると、向上したパフォーマンスを利用できます。詳細については、「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

2017 年 10 月 17 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.2.10.1009 に更新されました。また、JDBC バージョン4.2 ドライバーがサポートされるようになりました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

2017 年 10 月 16 日

ACM 証明書 Amazon Redshift では、クラスターの SSL 証明書を「AWS Certificate Manager (ACM)」発行の証明書に置き換えています。ACM は、現在のほとんどのシステムで信頼されている信頼のある公開認証機関 (CA) です。引き続き SSL でクラスターに接続するには、現在の信頼ルートCA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行 (p. 110)」を参照してください。

2017 年 9 月 18 日

サービスにリンクされたロール

サービスにリンクされたロールは、Amazon Redshift に直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、Amazon Redshift によって事前定義されており、お客様の Amazon Redshift クラスターの代わりにサービスから AWS のサービスを呼び出す必要のあるアクセス権限がすべて含まれています。詳細については、「Amazon Redshift のサービスにリンクされたロールの使用 (p. 227)」を参照してください。

2017 年 9 月 18 日

361

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

IAM データベースユーザー認証

ユーザーがユーザー認証情報を作成し、IAM 認証情報に基づいてデータベースにログオンできるようにシステムを設定できます。ユーザーが SAML 2.0 互換 ID プロバイダを通じ、フェデレーテッドシングルサインオン (SSO) を使用してサインオンできるようにシステムを設定することもできます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成 (p. 229)」を参照してください。

2017 年 8 月 11 日

JDBC および ODBCの新規ドライバ

新しい JDBC および ODBC ドライバーは、IAM データベースユーザー認証情報をサポートします。AmazonRedshift JDBC ドライバーがバージョン 1.2.7.1003 に更新されました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

Amazon Redshift ODBC ドライバーがバージョン1.3.6.1000 に更新されました。詳細については、「ODBC接続を設定する (p. 87)」を参照してください。

2017 年 8 月 11 日

テーブルレベルの復元は、拡張されたVPC のルーティングをサポートします

テーブルレベルの復元は、拡張された VPC のルーティング (p. 129) を使用するクラスターをサポートするようになりました。詳細については、「スナップショットからのテーブルの復元 (p. 164)」を参照してください。

2017 年 7 月 19 日

クエリのモニタリングルール

WLM クエリモニタリングルールを使用することで、WLMキュー用にメトリクスベースのパフォーマンスの境界を定義し、クエリーがこれらの境界を越えた場合のアクション (ログ、ホップ、中止) を指定できます。ワークロード管理 (WLM) 構成の一部としてクエリモニタリングルールを定義します。詳細については、「ワークロード管理の設定 (p. 139)」を参照してください。

2017 年 4 月 21 日

JDBC および ODBCの新規ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.2.1.1001 に更新されました。また、JDBC バージョン4.2 ドライバーがサポートされるようになりました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

Amazon Redshift ODBC ドライバーがバージョン1.3.1.1000 に更新されました。詳細については、「ODBC接続を設定する (p. 87)」を参照してください。

2016 年 11 月 18 日

拡張された VPC のルーティング

Amazon Redshift 拡張された VPC のルーティングを使用すると、Amazon Redshift は Amazon VPC におけるクラスターとデータリポジトリ間のすべての COPYと UNLOAD トラフィックを強制します。詳細については、「Amazon Redshift 拡張された VPC のルーティング (p. 129)」を参照してください。

2016 年 9 月 15 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.1.17.1017 に更新されました。また、JDBC バージョン4.2 ドライバーがサポートされるようになりました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

2016 年 7 月 5 日

362

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

接続ログの新しいフィールド

接続ログ (p. 257) 監査ログには、SSL 接続を追跡する 2つの新しいフィールドがあります。Amazon Redshift テーブルに定期的に監査ログをロードする場合、ターゲットテーブルに sslcompression および sslexpansion という新しい列を追加する必要があります。

2016 年 5 月 5 日

新しい ODBC ドライバ

Amazon Redshift ODBC ドライバーがバージョン1.2.7.1007 に更新されました。詳細については、「ODBC接続を設定する (p. 87)」を参照してください。

2016 年 3 月 30 日

COPY およびUNLOAD 用の IAMロール

他の AWS のサービスへのアクセスの認証に使用するクラスターは、一つ以上の AWS Identity and AccessManagement (IAM) ロールを指定できます。IAM ロールは COPY、UNLOAD、または CREATE LIBRARY コマンドを使用して認証を提供する安全な代替方法を提供しています。詳細については、「ユーザーに代わってAmazon Redshift が他の AWS のサービスにアクセスすることを許可する (p. 247)」および「IAM ロールを使用して COPY、UNLOAD、および CREATE EXTERNALSCHEMA オペレーションを承認する (p. 252)」を参照してください。

2016 年 3 月 29 日

テーブルからの復元 クラスタースナップショットからアクティブなクラスターの新しいテーブルにテーブルを復元できます。詳細については、「スナップショットからのテーブルの復元 (p. 164)」を参照してください。

2016 年 3 月 10 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.1.10.1013 に更新されました。詳細については、「JDBC接続を設定する (p. 70)」を参照してください。

SSLMode プロパティを設定し、TLS/SSL 証明書を検証するときドライバがホスト名を確認するかどうかを指定できるようになりました。詳細については、「JDBC ドライバー設定オプション (p. 72)」を参照してください。

2016 年 2 月 18 日

ポリシーでの IAM 条件の使用

IAM ポリシーで Condition エレメントを使用することで、リソースへのアクセスをさらに制限できます。詳細については、「詳細に設定されたアクセスコントロールのためのIAM ポリシー条件の使用 (p. 217)」を参照してください。

2015 年 12 月 10 日

パブリックにアクセス可能かどうかの変更

VPC の既存のクラスターを変更し、そのクラスターがパブリックにアクセス可能かどうかを変更できます。詳細については、「クラスターの変更 (p. 29)」を参照してください。

2015 年 11 月 20 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン1.1.10.1010 に更新されました。詳細については、「JDBC接続を設定する (p. 70)」を参照してください。

Amazon Redshift ODBC ドライバーがバージョン1.2.6.1006 に更新されました。詳細については、「ODBC接続を設定する (p. 87)」を参照してください。

2015 年 11 月 19 日

ドキュメントの修正 さまざまなドキュメント修正を公開しました。 2015 年 8 月 28 日

363

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

ドキュメントの更新 さまざまなサイズの最大送信単位 (MTU) を持つホストが接続用のパケットサイズを指定できるようにネットワーク設定を定義する方法に関するトラブルシューティングガイダンスを更新しました。詳細については、「クエリがハングして、クラスターに達しない場合がある (p. 126)」を参照してください。

2015 年 8 月 25 日

ドキュメントの更新 構成と明快さを改善するため、パラメータグループに関するセクション全体を改訂しました。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

2015 年 8 月 17 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン 1.1.7 に更新されました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

2015 年 8 月 14 日

WLM の動的プロパティ

WLM 設定パラメータは一部のプロパティの動的な適用をサポートするようになりました。他のプロパティは静的なままであり、設定の変更を適用するには、該当するクラスターを再起動する必要があります。詳細については、「WLM の動的プロパティと静的プロパティ (p. 139)」および「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

2015 年 8 月 3 日

KMS で暗号化されたクラスターの別のリージョンへのコピー

AWS KMS で暗号化されたクラスター用に別のリージョンへのスナップショットのコピー権限を設定する方法について内容を追加しました。詳細については、「別の AWSリージョンに AWS KMS 暗号化スナップショットをコピーする (p. 198)」を参照してください。

2015 年 7 月 28 日

ドキュメントの更新 データベースの暗号化に関するセクションを更新して、Amazon Redshift でキー管理に AWS KMS またはHSM を使用する方法、これらの各方法での暗号化プロセスのしくみについて説明を追加しました。詳細については、「Amazon Redshift データベース暗号化 (p. 197)」を参照してください。

2015 年 7 月 28 日

新しい JDBC ドライバ

Amazon Redshift JDBC ドライバーがバージョン 1.1.7 に更新されました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

2015 年 7 月 2 日

新しいノードタイプ Amazon Redshift では、新しいノードタイプである DS2が用意されました。更新されたドキュメントでは、既存のノードタイプを参照して、このリリースで導入された新しい名前を使用しています。さらに、ノードタイプの組み合わせについて説明を追加し、デフォルトのクォータ制限を明確にするように、該当するセクションを改訂しました。詳細については、「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

2015 年 6 月 9 日

リザーブドノードサービス

新しいリザーブドノードサービスについて内容を追加しました。また、使用可能なサービスを説明し比較するように、該当するセクションを改訂しました。さらに、オンデマンドおよびリザーブドノードの料金によって請求額がどのように変わるかを示す例を追加しました。詳細については、「概要 (p. 184)」を参照してください。

2015 年 6 月 9 日

364

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

新しい ODBC ドライバ

Amazon Redshift ODBC ドライバが更新されました。これらのドライバの以前のバージョンのセクションと、ドライバのリリースノートへのリンクを追加しました。詳細については、「ODBC 接続を設定する (p. 87)」を参照してください。

2015 年 6 月 5 日

ドキュメントの修正 さまざまなドキュメント修正を公開しました。 2015 年 4 月 30 日

ドキュメントの更新 Amazon Redshift JDBC ドライバの新しいバージョンへのダウンロードリンクが更新され、これらのドライバの以前のバージョンのセクションが追加されました。ドライバのリリースノートへのリンクも追加されました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

2015 年 4 月 1 日

ドキュメントの更新 新しいバージョンの Amazon Redshift JDBC ドライバーのダウンロードを追加しました。また、Amazon RedshiftJDBC URL の形式を更新しました。詳細については、「JDBC 接続を設定する (p. 70)」を参照してください。

クラスターセキュリティグループの進入ルールをタグ付け可能なリソースとして追加しました。詳細については、「Amazon Redshift でのリソースへのタグ付け (p. 353)」を参照してください。

クラスターセキュリティグループの進入ルールを追加する手順を更新し、クラスターセキュリティグループの進入ルールにタグを付ける手順を追加しました。詳細については、「コンソールを使用したクラスターセキュリティグループの管理 (p. 273)」を参照してください。

2015 年 3 月 16 日

新機能 このリリースの Amazon Redshift では、Amazon Redshiftで使用するために最適化された新しい ODBC およびJDBC ドライバーが導入されています。詳細については、「SQL クライアントツールを使用して Amazon Redshiftクラスターに接続する (p. 68)」を参照してください。

2015 年 2 月 26 日

新機能 このリリースの Amazon Redshift では、クラスターのパフォーマンスメトリクスが導入されたため、クエリ実行の詳細を確認したり分析したりできます。詳細については、「クエリパフォーマンスデータの表示 (p. 307)」を参照してください。

2015 年 2 月 26 日

ドキュメントの更新 Amazon Redshift が依存する一般的な AWS サービスのアクションおよびリソースに対するアクセス権限を許可する方法を示す、新しいサンプルポリシーが追加されました。詳細については、「お客様が管理するポリシーの例 (p. 221)」を参照してください。

2015 年 1 月 16 日

ドキュメントの更新 最大送信単位 (MTU) を設定して TCP/IP ジャンボフレームを無効にする方法のガイダンスが更新詳細については、「クラスターの起動用にサポートされているプラットフォーム (p. 11)」および「クエリがハングして、クラスターに達しない場合がある (p. 126)」を参照してください。

2015 年 1 月 16 日

365

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

ドキュメントの更新 wlm_json_configuration パラメータに関する内容が改訂され、Linux、Mac OS X、Microsoft Windows オペレーティングシステムで AWS CLI を使用してこのパラメータを設定するサンプル構文が追加されました。詳細については、「ワークロード管理の設定 (p. 139)」を参照してください。

2015 年 1 月 13 日

ドキュメントの更新 欠落しているイベントの通知と説明が追加されました。詳細については、「Amazon Redshift イベントのカテゴリおよびイベントメッセージ (p. 329)」を参照してください。

2015 年 1 月 8 日

ドキュメントの更新 Amazon Redshift のアクションとリソースの IAM ポリシーに関するガイダンスが更新されました。構成と明快さを改善するため、セクションが改訂されました。詳細については、「Amazon Redshift でのセキュリティ (p. 195)」を参照してください。

2014 年 11 月 21 日

新機能 Amazon Redshift のリリースによって、AWS KeyManagement Service (AWS KMS) の暗号化キーを使用してクラスターを暗号化する機能が導入されました。AWSKMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。AWS KMS と、Amazon Redshift の暗号化オプションの詳細については、「Amazon Redshiftデータベース暗号化 (p. 197)」と「コンソールを使ったクラスターの管理 (p. 19)」を参照してください。

2014 年 11 月 12 日

新機能 Amazon Redshift のこのリリースでは、クラスターやスナップショットなどのリソースをタグ付けする機能が追加されました。タグを使用すると、コスト配分に基づいて請求レポートを分類するユーザー定義のメタデータを使用できるようになり、リソースを一目で特定しやすくなります。詳細については、「Amazon Redshift でのリソースへのタグ付け (p. 353)」を参照してください。

2014 年 11 月 4 日

新機能 dw1.8xlarge および dw2.8xlarge ノードサイズの最大ノード制限が 128 ノードに増加しました。詳細については、「Amazon Redshift のクラスターおよびノード (p. 6)」を参照してください。

2014 年 10 月 30 日

ドキュメントの更新 Amazon Redshift が PostgreSQL ODBC ドライバーを使用するために必要な Microsoft Visual C++ 2010 再頒布可能パッケージへのリンクが追加されました。詳細については、「Microsoft Windows オペレーティングシステムにAmazon Redshift ODBC ドライバーをインストールして設定する (p. 89)」を参照してください。

2014 年 10 月 30 日

新機能 Amazon Redshift consoleからクエリとロードを終了する機能が追加されました。詳細については、「クエリパフォーマンスデータの表示 (p. 307)」および「ロード操作中にクラスターメトリクスを表示する (p. 316)」を参照してください。

2014 年 10 月 28 日

ドキュメントの修正 さまざまなドキュメント修正を公開しました。 2014 年 10 月 17 日

366

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

新しいコンテンツ クラスターのシャットダウンとクラスターの削除に関する内容が追加されました。詳細については、「クラスターのシャットダウンと削除 (p. 17)」および「クラスターの削除 (p. 31)」を参照してください。

2014 年 8 月 14 日

ドキュメントの更新 クラスターの [Allow Version Upgrade (バージョンアップグレードの許可)] 設定の動作が明確になりました。詳細については、「概要 (p. 5)」を参照してください。

2014 年 8 月 14 日

ドキュメントの更新 Amazon Redshift console でクラスターを処理する方法に関するトピックの構成、およびその中の手順とスクリーンショットを改訂しました。詳細については、「コンソールを使ったクラスターの管理 (p. 19)」を参照してください。

2014 年 7 月 11 日

新しいコンテンツ Amazon Redshift クラスターのサイズ変更に関連する新しいチュートリアルを追加しました。これには、読み取り専用モードになる期間を最小限に抑えながらクラスターのサイズを変更する方法が含まれます。詳細については、「Amazon Redshift でのクラスターのサイズ変更 (p. 344)」を参照してください。

2014 年 6 月 27 日

新機能 クラスターの名前変更機能を追加しました。詳細については、「クラスターの名前変更 (p. 16)」および「クラスターの変更 (p. 29)」を参照してください。

2014 年 6 月 2 日

ドキュメントの更新 .NET を使ってクラスターにプログラムで接続する際にODBC データプロバイダーを使用するように .NET コードの例を更新しました。詳細については、「.NET の使用によるクラスターへの接続 (p. 121)」を参照してください。

2014 年 5 月 15 日

新機能 スナップショットからクラスターを復元するときに、別のパラメータグループおよびセキュリティグループを選択するオプションを追加しました。詳細については、「スナップショットからのクラスターの復元 (p. 175)」を参照してください。

2014 年 5 月 12 日

新機能 デフォルトの Amazon CloudWatch アラームを AmazonRedshift クラスターで使用されているディスク容量の割合を監視するように設定する方法を説明するセクションを新しく追加しました。このアラームは、クラスター作成プロセスの新しいオプションです。詳細については、「デフォルトのディスク容量アラーム (p. 16)」を参照してください。

2014 年 4 月 28 日

ドキュメントの更新 Amazon Redshift における Elliptic curve Diffie—HellmanExchange (ECDHE) のサポートに関する情報を明確にしました。詳細については、「SSL を使用して接続する (p. 107)」を参照してください。

2014 年 4 月 22 日

新機能 Elliptic curve Diffie—Hellman (ECDH) の鍵契約プロトコルに対する Amazon Redshift のサポートに関する記述が追加されました。詳細については、「SSL を使用して接続する (p. 107)」を参照してください。

2014 年 4 月 18 日

367

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

ドキュメントの更新 SQL クライアントツールを使用して Amazon Redshift クラスターに接続する (p. 68) セクションのトピックが改訂され、再編成されました。JDBC および ODBC 接続に関する詳細情報、および接続の問題のトラブルシューティングの新しいセクションが追加されました。

2014 年 4 月 15 日

ドキュメントの更新 ガイド全体に IAM ポリシーのバージョンの例を追加しました。

2014 年 4 月 3 日

ドキュメントの更新 クラスターのサイズを変更するときの料金体系についての情報を追加しました。詳細については、「AmazonRedshift リザーブドノードの購入 (p. 184)」を参照してください。

2014 年 4 月 2 日

新機能 結果セットの最大サイズをメガバイト単位で設定し、カーソルごとに保存できる新しいパラメータmax_cursor_result_set_size についてのセクションを追加しました。このパラメータ値は、クラスターで同時実行できるカーソルの数にも影響を与えます。詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

2014 年 3 月 28 日

新機能 [Cluster Version] フィールドに現在クラスターエンジンのバージョンとデータベースのリビジョン番号が含まれることについての説明を追加しました。詳細については、「Amazon Redshift クラスター (p. 5)」を参照してください。

2014 年 3 月 21 日

新機能 クラスターの [Status] タブで新しいサイズ変更の進捗情報が表示されるためサイズ変更の手順を更新しました。詳細については、「クラスターのサイズ変更 (p. 33)」を参照してください。

2014 年 3 月 21 日

ドキュメントの更新 「Amazon Redshift とは? (p. 1)」および改訂された「Amazon Redshift 管理の概要 (p. 1)」を再編して更新しました。さまざまなドキュメント修正を公開しました。

2014 年 2 月 21 日

新機能 Amazon Redshift クラスターの新しいノードタイプとサイズを追加し、関連するクラスターの概要のトピックを、フィードバックに基づいてよりよい構成でわかりやすくなるように書き直しました。詳細については、「AmazonRedshift クラスター (p. 5)」を参照してください。

2014 年 1 月 23 日

新機能 Virtual Private Cloud で、パブリックでアクセス可能な Amazon Redshift クラスターに対して Elastic IP(EIP) アドレスを使用することに関する情報を追加しました。Amazon Redshift の EIP の詳細については、「Amazon Virtual Private Cloud (VPC) でクラスターを管理する (p. 41)」および「VPC でクラスターを作成する (p. 43)」を参照してください。

2013 年 12 月 20 日

新機能 Amazon Redshift の AWS CloudTrail ログに関する情報を追加しました。CloudTrail に対する Amazon Redshiftのサポートの詳細については、「AWS CloudTrail でのAmazon Redshift API コールのログ記録 (p. 262)」を参照してください。

2013 年 12 月 13 日

368

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

新機能 Amazon Redshift のデータベース監査ログ作成機能に対する、新しいユーザーアクティビティログ、およびenable_user_activity_logging データベースパラメータに関する情報を追加しました。データベース監査ログ作成の詳細については、「データベース監査ログ作成 (p. 256)」を参照してください。データベースパラメータの詳細については、「Amazon Redshift パラメータグループ (p. 136)」を参照してください。

2013 年 12 月 6 日

新機能 2 番目のリージョンに自動および手動でスナップショットをコピーするための Amazon Redshift の設定方法を更新しました。リージョン間スナップショットコピーの設定に関する詳細については、「別のリージョンにスナップショットをコピーする (p. 163)」を参照してください。

2013 年 11 月 14 日

新機能 接続とユーザーアクティビティの Amazon Redshift 監査ログ作成、および Amazon S3 にログを格納する方法を説明するセクションを追加しました。データベース監査ログ作成の詳細については、「データベース監査ログ作成 (p. 256)」を参照してください。

2013 年 11 月 11 日

新機能 ハードウェアセキュリティモジュール (HSM) で暗号化キーを管理してローテーションする新しい機能をもつAmazon Redshift 暗号化を説明するセクションを追加しました。暗号化、HSM、およびキーローテーションに関する詳細については、「Amazon Redshift データベース暗号化 (p. 197)」、「Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化 (p. 199)」および「Amazon Redshift での暗号化キーの更新 (p. 200)」を参照してください。

2013 年 11 月 11 日

新機能 Amazon SNS を使用して Amazon Redshift イベント通知を発行する方法を更新しました。Amazon Redshift イベント通知については、「Amazon Redshift イベント通知 (p. 327)」を参照してください。

2013 年 11 月 11 日

新機能 IAM リソースレベルのアクセス許可について説明しています。Amazon Redshift IAM のアクセス権限については、「Amazon Redshift でのセキュリティ (p. 195)」を参照してください。

2013 年 8 月 9 日

新機能 復元の進捗メトリクスについて説明しています。詳細については、「スナップショットからのクラスターの復元 (p. 163)」を参照してください。

2013 年 8 月 9 日

新機能 クラスタースナップショット共有とスナップショット作成の進捗メトリクスについて説明しています。詳細については、「スナップショットの共有 (p. 166)」を参照してください。

2013 年 7 月 17 日

ドキュメントの修正 さまざまなドキュメント修正を公開しました。 2013 年 7 月 8 日

新しいコンソール画面

Amazon Redshift コンソールでの変更点に合わせて『Amazon Redshift Cluster Management Guide』を更新しました。

2013 年 4 月 22 日

369

Amazon Redshift クラスター管理ガイド

変更 説明 リリース日

新規ガイド これは「Amazon Redshift 管理ガイド」の初版リリースです。

2013 年 2 月 14 日

370