Amazon Redshift - 管理ガイド

Amazon Redshift
管理ガイド
API Version 2012-12-01
Amazon Redshift 管理ガイド
Amazon Redshift 管理ガイド
Amazon Redshift: 管理ガイド
Copyright © 2017 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 discredits Amazon. All other
trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to,
or sponsored by Amazon.
Amazon Redshift 管理ガイド
Table of Contents
Amazon Redshift とは? ................................................................................................................. 1
Amazon Redshift を初めてお使いになる方向けの情報 ................................................................ 1
Amazon Redshift 管理の概要 .................................................................................................. 2
クラスターの管理 .......................................................................................................... 2
クラスターのアクセスとセキュリティ .............................................................................. 2
クラスターのモニタリング ............................................................................................. 4
データベース ................................................................................................................ 4
クラスター ................................................................................................................................... 5
概要 .................................................................................................................................... 5
クラスターおよびノードについて ............................................................................................ 6
ノードタイプの詳細 ...................................................................................................... 6
ノードの数の決定 .......................................................................................................... 8
クラスターのサイズ変更 ........................................................................................................ 8
クラスターの起動用にサポートされているプラットフォーム ...................................................... 10
EC2-Classic プラットフォーム ...................................................................................... 10
EC2-VPC プラットフォーム ......................................................................................... 10
プラットフォームの選択 ............................................................................................... 10
リージョンとアベイラビリティゾーンの考慮事項 ..................................................................... 11
メンテナンスウィンドウ ....................................................................................................... 11
デフォルトのディスク容量アラーム ....................................................................................... 12
クラスターの名前変更 .......................................................................................................... 12
クラスターのシャットダウンと削除 ....................................................................................... 13
クラスターステータス .......................................................................................................... 14
コンソールを使ったクラスターの管理 .................................................................................... 15
クラスターの作成 ........................................................................................................ 16
クラスターの変更 ........................................................................................................ 23
クラスターの削除 ........................................................................................................ 25
クラスターの再起動 ..................................................................................................... 27
クラスターのサイズ変更 ............................................................................................... 28
クラスター構成に関する情報の取得 ............................................................................... 29
クラスター状態の概要の取得 ......................................................................................... 30
クラスターのスナップショットの作成 ............................................................................ 31
デフォルトのディスク容量アラームの編集 ...................................................................... 32
クラスターパフォーマンスデータの操作 ......................................................................... 33
AWS SDK for Java を使用したクラスターの管理 ..................................................................... 33
Amazon Redshift CLI および API を使用してクラスターを管理する ............................................ 35
Amazon Virtual Private Cloud (VPC) でクラスターを管理する .................................................... 35
概要 .......................................................................................................................... 35
VPC でクラスターを作成する ....................................................................................... 37
クラスターの VPC セキュリティグループの管理 .............................................................. 39
クラスターサブネットグループ ..................................................................................... 40
拡張された VPC のルーティング ................................................................................................... 46
VPC エンドポイントの使用 .................................................................................................. 47
拡張された VPC ルーティングの有効化 .................................................................................. 48
パラメーターグループ .................................................................................................................. 50
概要 .................................................................................................................................. 50
パラメーターグループについて ............................................................................................. 50
デフォルトパラメーター値 .................................................................................................... 51
AWS CLI によるパラメーター値の設定 ................................................................................... 52
ワークロード管理の設定 ....................................................................................................... 53
wlm_json_configuration パラメーター内のプロパティ ........................................................ 53
WLM の動的プロパティと静的プロパティ ....................................................................... 54
AWS CLI による wlm_json_configuration パラメーターの設定 ........................................... 55
コンソールを使用したパラメーターグループの管理 .................................................................. 59
パラメーターグループを作成する .................................................................................. 60
API Version 2012-12-01
iv
Amazon Redshift 管理ガイド
パラメーターグループを変更する .................................................................................. 60
パラメーターグループを削除する .................................................................................. 63
パラメーターグループとクラスターを関連付ける ............................................................. 63
AWS SDK for Java を使用したパラメーターグループの管理 ...................................................... 63
Amazon Redshift CLI および API を使用したパラメーターグループの管理 ................................... 67
スナップショット ........................................................................................................................ 68
概要 .................................................................................................................................. 68
自動スナップショット .................................................................................................. 69
手動スナップショット .................................................................................................. 69
スナップショットのテーブルを除く ............................................................................... 69
別のリージョンにスナップショットをコピーする ............................................................. 69
スナップショットからのクラスターの復元 ...................................................................... 70
スナップショットからのテーブルの復元 ......................................................................... 71
スナップショットの共有 ............................................................................................... 73
コンソールを使用したスナップショットの管理 ........................................................................ 75
手動スナップショットの作成 ......................................................................................... 76
手動スナップショットの削除 ......................................................................................... 77
自動スナップショットのコピー ..................................................................................... 77
スナップショットからのクラスターの復元 ...................................................................... 78
クラスターのスナップショットの共有 ............................................................................ 81
クロスリージョンスナップショットのコピーを設定する暗号化されていないクラスター ......... 81
AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーの設定 .................. 82
クロスリージョンスナップショットのコピーの保持期間を修正する .................................... 82
クロスリージョンスナップショットのコピーを無効にする ................................................. 83
AWS SDK for Java を使用したスナップショットの管理 ............................................................ 83
Amazon Redshift CLI および API を使用したスナップショットの管理 ......................................... 86
データベース暗号化 ..................................................................................................................... 88
Amazon Redshift での AWS KMS を使用したデータベース暗号化について .................................. 88
別のリージョンに AWS KMS 暗号化スナップショットコピーする ...................................... 89
Amazon Redshift でのハードウェアセキュリティモジュールを使用した暗号化について ................. 90
Amazon Redshift と HSM との間の信頼された接続の設定 ................................................. 91
Amazon Redshift での暗号化キーの更新について ..................................................................... 91
コンソールを使用したデータベース暗号化の設定 ..................................................................... 92
Amazon Redshift console を使用し、HSM を使用するように Amazon Redshift を設定する ..... 92
Amazon Redshift console を使用した暗号化キーの更新 .................................................... 97
Amazon Redshift API および AWS CLI を使用したデータベース暗号化の設定 .............................. 98
Amazon Redshift API および AWS CLI を使用して、AWS KMS 暗号化キーを使用するよう
に Amazon Redshift を設定する .................................................................................... 98
Amazon Redshift API および AWS CLI を使用し、HSM を使用するように Amazon Redshift
を設定する ................................................................................................................. 99
Amazon Redshift API および AWS CLI を使用した暗号化キーの更新 .................................. 99
リザーブドノードの購入 ............................................................................................................. 100
概要 ................................................................................................................................. 100
リザーブドノードサービスについて .............................................................................. 100
リザーブドノードサービス間の価格の比較 .................................................................... 101
リザーブドノードの動作 ............................................................................................. 102
リザーブドノードと一括請求 (コンソリデーティッドビリング) ......................................... 102
リザーブドノードの例 ................................................................................................ 102
コンソールを使用したリザーブドノードサービスの購入 .......................................................... 104
Java を使用したリザーブドノードサービスの購入 .................................................................. 105
AWS CLI および Amazon Redshift API を使用したリザーブドノードサービスの購入 .................... 108
セキュリティ ............................................................................................................................ 110
認証とアクセスコントロール ............................................................................................... 110
認証 ......................................................................................................................... 111
アクセスコントロール ................................................................................................ 112
アクセス管理の概要 ................................................................................................... 112
アイデンティティベースのポリシー (IAM ポリシー) を使用する ........................................ 117
Amazon Redshift API のアクセス権限リファレンス ........................................................ 123
API Version 2012-12-01
v
Amazon Redshift 管理ガイド
セキュリティグループ ........................................................................................................ 124
概要 ......................................................................................................................... 124
コンソールを使用したクラスターセキュリティグループの管理 ......................................... 125
AWS SDK for Java を使用したクラスターセキュリティグループの管理 ............................. 133
Amazon Redshift CLI および API を使用したクラスターセキュリティグループの管理 .......... 136
Amazon Redshift が AWS のサービスにアクセスすることを許可する ................................................ 137
Amazon Redshift クラスターが AWS のサービスにアクセスすることを許可する IAM ロールを作
成する ............................................................................................................................. 137
IAM ロールへのアクセスの制限 ........................................................................................... 138
AWS リージョンへの IAM ロールの制限 ............................................................................... 139
関連トピック .................................................................................................................... 140
IAM ロールを使用して COPY および UNLOAD 操作を許可する ................................................ 140
IAM ロールをクラスターに関連付ける .......................................................................... 141
Amazon Redshift クラスターとデータベースへのアクセス ............................................................... 146
Amazon Redshift 管理インターフェイスの使用 ...................................................................... 146
AWS SDK for Java の使用 .......................................................................................... 147
HTTP リクエストへの署名 .......................................................................................... 149
Amazon Redshift CLI のセットアップ ........................................................................... 152
クラスターへの接続 ........................................................................................................... 156
Amazon Redshift での接続の設定 ................................................................................ 156
クライアントツールおよびコードからクラスターに接続する ............................................ 184
Amazon Redshift での接続の問題のトラブルシューティング ............................................ 195
クラスターのパフォーマンスをモニタリングする ........................................................................... 200
概要 ................................................................................................................................. 200
パフォーマンスデータの概要 ............................................................................................... 201
Amazon Redshift CloudWatch メトリクス ..................................................................... 201
Amazon Redshift のクエリ/ロードパフォーマンスデータ ................................................. 203
パフォーマンスデータを使用する ......................................................................................... 204
クラスターのパフォーマンスデータを表示する .............................................................. 205
クエリパフォーマンスデータの表示 .............................................................................. 208
ロード操作中にクラスターメトリクスを表示する ........................................................... 215
アラームを作成する ................................................................................................... 216
Amazon CloudWatch コンソールでパフォーマンスメトリクスを使用する .......................... 218
イベント .................................................................................................................................. 220
概要 ................................................................................................................................. 220
コンソールを使ったイベントの表示 ...................................................................................... 220
イベントのフィルタ ................................................................................................... 221
AWS SDK for Java を使ったイベントの表示 ......................................................................... 222
Amazon Redshift CLI と API を使ったイベントの表示 ............................................................. 223
イベント通知 .................................................................................................................... 223
概要 ......................................................................................................................... 223
Amazon Redshift イベントのカテゴリおよびイベントメッセージ ...................................... 225
Amazon Redshift コンソールを使用してイベント通知を管理する ...................................... 231
Amazon Redshift CLI および API を使用してイベント通知を管理する ............................... 236
データベース監査ログ作成 .......................................................................................................... 237
概要 ................................................................................................................................. 237
Amazon Redshift ログ ........................................................................................................ 237
接続ログ .................................................................................................................. 238
ユーザーログ ............................................................................................................ 238
ユーザーアクティビティログ ....................................................................................... 239
ログ作成の有効化 .............................................................................................................. 239
ログファイルの管理 ........................................................................................................... 240
Amazon Redshift 監査ログ作成のためのバケットのアクセス許可 ...................................... 240
Amazon Redshift 監査ログ作成のバケットの構造 ........................................................... 242
Amazon Redshift 監査ログ作成のトラブルシューティング ....................................................... 242
Amazon Redshift 用の AWS CloudTrail の使用 ....................................................................... 243
AWS CloudTrail ログでの Amazon Redshift アカウント ID ...................................................... 243
コンソールを使用して監査を設定する ................................................................................... 244
API Version 2012-12-01
vi
Amazon Redshift 管理ガイド
コンソールを使用して監査ログ作成を有効にする ........................................................... 244
監査ログ作成のバケットを変更する .............................................................................. 245
コンソールを使用して監査ログ作成を無効にする ........................................................... 245
Amazon Redshift CLI および API を使用してログ作成を設定する ............................................. 246
クラスターのサイズ変更 ............................................................................................................. 247
概要 ................................................................................................................................. 247
サイズ変更オペレーションの概要 ......................................................................................... 247
スナップショット、復元、およびサイズ変更オペレーションの概要 ........................................... 248
チュートリアル: サイズ変更オペレーションを使用したクラスターのサイズ変更 .......................... 249
前提条件 .................................................................................................................. 250
ステップ 1: クラスターのサイズを変更する ................................................................... 250
ステップ 2: サンプルクラスターを削除する ................................................................... 251
チュートリアル: スナップショット、復元、サイズ変更オペレーションを使用したクラスターのサ
イズ変更 .......................................................................................................................... 251
前提条件 .................................................................................................................. 252
ステップ 1: スナップショットを作成する ...................................................................... 252
ステップ 2: ターゲットクラスターにスナップショットを復元する .................................... 253
ステップ 3: ターゲットクラスターのデータを確認する .................................................... 255
ステップ 4: ターゲットクラスターのサイズを変更する .................................................... 256
ステップ 5: スナップショット後のデータをソースからターゲットクラスターにコピーする ... 256
ステップ 6: ソースとターゲットクラスターの名前を変更する .......................................... 258
ステップ 7: ソースクラスターを削除する ...................................................................... 259
ステップ 8: 環境をクリーンアップする ......................................................................... 259
制限 ......................................................................................................................................... 260
クォータと制限 ................................................................................................................. 260
命名に関する制約 .............................................................................................................. 261
タグ付け .................................................................................................................................. 263
タグ付けの概要 ................................................................................................................. 263
タグ付け要件 ............................................................................................................ 264
コンソールを使用したリソースタグの管理 ............................................................................ 264
[Manage Tags] ウィンドウを開く方法 .......................................................................... 265
Amazon Redshift コンソールでタグを管理する方法 ........................................................ 266
Amazon Redshift API を使用したタグの管理 ......................................................................... 266
ドキュメント履歴 ...................................................................................................................... 268
API Version 2012-12-01
vii
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. 2) このトピックでは 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 Query API または AWS Software Development Kit (SDK)
のライブラリを使用して、クラスターをプログラムから管理できます。Amazon Redshift Query API
API Version 2012-12-01
1
Amazon Redshift 管理ガイド
Amazon Redshift 管理の概要
を使用する場合、署名することですべての HTTP または HTTPS リクエストを認証する必要がありま
す。リクエストの署名に関する詳細については、「HTTP リクエストへの署名 (p. 149)」を参照して
ください。
CLI、API、および SDK の詳細については、次のリンクを参照してください。
• AWS Command Line Interface Reference
• Amazon Redshift API Reference
• 「アマゾン ウェブ サービスのツール」の SDK 参照。
Amazon Redshift 管理の概要
Amazon Redshift サービスは、データウェアハウスを設定、操作、および拡張するためのすべての作
業を管理します。これらのタスクには、クラスターの容量のプロビジョニング、モニタリング、およ
びバックアップのほか、Amazon Redshift エンジンへのパッチおよびアップグレードの適用が含まれ
ます。
クラスターの管理
Amazon Redshift クラスターは、リーダーノードと 1 つ以上のコンピューティングノードから構成さ
れる一連のノードです。必要なコンピューティングノードのタイプと数は、データのサイズ、実行す
るクエリの数、必要なクエリ実行のパフォーマンスに応じて異なります。
クラスターの作成と管理
データウェアハウスのニーズに応じて、小規模な単一ノードのクラスターから始め、要件が変わっ
たら、より規模の大きい複数ノードのクラスターに簡単に拡張できます。サービスを中断するこ
となく、コンピューティングノードをクラスターに追加または削除できます。詳細については、
「Amazon Redshift クラスター (p. 5)」を参照してください。
コンピューティングノードの予約
クラスターを 1 年以上連続して実行する場合、1 年間または 3 年間コンピューティングノードを予約
することでお金を節約できます。コンピューティングノードを予約すれば、要求に応じてコンピュー
ティングノードをプロビジョニングするときに時間単位で支払う場合に比べて大幅な節約になりま
す。詳細については、「Amazon Redshift リザーブドノードの購入 (p. 100)」を参照してください。
クラスタースナップショットの作成
スナップショットはクラスターのポイントインタイムバックアップです。スナップショットには、
自動と手動の 2 つのタイプがあります。Amazon Redshift は、暗号化された Secure Sockets Layer
(SSL) 接続を使用して、これらのスナップショットを Amazon Simple Storage Service (Amazon S3)
の内部に保存できます。スナップショットから復元する場合は、Amazon Redshift で新しいクラス
ターを作成し、指定したスナップショットからデータをインポートします。スナップショットの詳細
については、Amazon Redshift スナップショット (p. 68) を参照してください。
クラスターのアクセスとセキュリティ
Amazon Redshift には、クラスターのアクセスとセキュリティに関連する複数の機能があります。
これらの機能は、クラスターへのアクセスのコントロール、接続ルールの定義、データおよび接続
の暗号化に役立ちます。これらの機能は、Amazon Redshift のデータベースアクセスおよびセキュ
API Version 2012-12-01
2
Amazon Redshift 管理ガイド
クラスターのアクセスとセキュリティ
リティに関連する機能に追加されています。データベースのセキュリティに関する詳細について
は、Amazon Redshift Database Developer Guide の「データベースセキュリティの管理」を参照して
ください。
AWS アカウントと IAM 認証情報
デフォルトで Amazon Redshift クラスターは、クラスターを作成する AWS アカウントにのみアクセ
スできます。クラスターは誰もアクセスできないようにロックされています。AWS アカウント内で
は、AWS Identity and Access Management (IAM) サービスを使用してユーザーアカウントを作成し、
それらのアカウントがクラスター操作をコントロールするためのアクセス許可を管理します。詳細に
ついては、「セキュリティ (p. 110)」を参照してください。
セキュリティグループ
デフォルトでは、作成するクラスターはすべてのユーザーに対して閉じられています。IAM 認証情報
は、Amazon Redshift API 関連リソース、つまり Amazon Redshift consoleコマンドラインインター
フェイス (CLI)、API および SDK へのアクセスのみコントロールします。JDBC または ODBC 経由で
SQL クライアントツールからクラスターへのアクセスを有効にするには、セキュリティグループを使
用します。
• Amazon Redshift クラスターに EC2-Classic プラットフォームを使用している場合、Amazon
Redshift セキュリティグループを使用する必要があります。
• Amazon Redshift クラスターに EC2-VPC プラットフォームを使用している場合、VPC セキュリ
ティグループを使用する必要があります。
いずれの場合でも、CIDR/IP アドレスの特定の範囲に明示的なインバウンドアクセスを付与するた
めに、セキュリティグループにルールを追加するか、SQL クライアントが Amazon EC2 インスタ
ンスで実行されている場合には、Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグ
ループにルールを追加します。詳細については、「Amazon Redshift クラスターセキュリティグルー
プ (p. 124)」を参照してください。
インバウンドアクセスルールに加えて、クラスター内でデータベース認証を行うための認証情報を提
供するために、データベースのユーザーを作成します。詳細については、このトピックの「データ
ベース (p. 4)」を参照してください。
暗号化
クラスターをプロビジョニングする際には、オプションで、セキュリティ強化のためにクラスター暗
号化オプションを選択できます。暗号化を有効にすると、Amazon Redshift は、暗号化されたフォー
マットでユーザーが作成したテーブルにすべてのデータを保存します。Amazon Redshift 暗号化キー
を管理するために、AWS Key Management Service (AWS KMS) またはハードウェアセキュリティモ
ジュール (HSM) を使用できます。
暗号化は、クラスターの変更不可能なプロパティです。暗号化されたクラスターから、暗号化されて
いないクラスターに切り替える唯一の方法は、データをアンロードして新しいクラスターに再ロード
することです。暗号化は、クラスターとすべてのバックアップに適用されます。暗号化されたスナッ
プショットからクラスターを復元すると、新しいクラスターも暗号化されます。
暗号化、キー、およびハードウェアセキュリティモジュールに関する詳細については、「Amazon
Redshift データベース暗号化 (p. 88)」を参照してください。
SSL 接続
SQL クライアントとクラスター間の接続を暗号化するには、Secure Sockets Layer (SSL) 暗号化を使
用できます。詳細については、「接続のセキュリティオプションを設定する (p. 180)」を参照してく
ださい。
API Version 2012-12-01
3
Amazon Redshift 管理ガイド
クラスターのモニタリング
クラスターのモニタリング
Amazon Redshift でのモニタリングに関連するさまざまな機能があります。ユーザーアクティビティ
ログの生成、興味の情報を追跡するイベントや通知サブスクリプションの設定のために、データベー
ス監査ログ作成を使用できます。さらに、Amazon Redshift および Amazon CloudWatch でメトリク
スを使用して、クラスターとデータベースの状態やパフォーマンスに関する詳細を取得できます。
データベース監査ログ作成
認証の試み、接続、切断、データベースユーザー定義の変更、データベースで実行されるクエリに関
する情報を追跡するために、データベース監査ログ作成機能を使用できます。この情報は、Amazon
Redshift 内でセキュリティおよびトラブルシューティングの目的で役立ちます。このログは Amazon
S3 バケットに格納されます。詳細については、「データベース監査ログ作成 (p. 237)」を参照して
ください。
イベントと通知
Amazon Redshift はイベントを追跡し、AWS アカウントで数週間、そのイベントに関する情報を保
持します。Amazon Redshift はイベントごとに、イベントが発生した日付、説明、イベントのソース
(クラスター、パラメーターグループ、またはスナップショット)、ソース ID などの情報を報告しま
す。一連のイベント フィルタを指定する、Amazon Redshift イベント通知サブスクリプションを作
成できます。フィルタ条件に一致するイベントが発生すると、Amazon Redshift は Amazon Simple
Notification Service を使用してイベントが発生したことをアクティブに通知します。イベントのタイ
プと通知の詳細については、「Amazon Redshift イベント (p. 220)」を参照してください。
パフォーマンス
Amazon Redshift では、クラスターとデータベースの状態やパフォーマンスを追跡できるように
するため、パフォーマンスメトリクスとデータが提供されます。Amazon Redshift は、Amazon
CloudWatch メトリクスを使用して、CPU 使用率、レイテンシー、およびスループットなど、クラ
スターの物理的な側面をモニタリングします。Amazon Redshift は、クラスターのデータベースアク
ティビティをモニタリングできるように、クエリおよびロードパフォーマンスデータも提供します。
パフォーマンスメトリクスとモニタリングの詳細については、「Amazon Redshift クラスターのパ
フォーマンスをモニタリングする (p. 200)」を参照してください。
データベース
Amazon Redshift は、クラスターをプロビジョニングするときにデータベースを 1 つ作成します。こ
れは、データをロードし、データのクエリを実行するために使用するデータベースです。必要に応じ
て SQL コマンドを実行することで、追加のデータベースを作成できます。追加のデータベースの作成
に関する詳細については、Amazon Redshift Database Developer Guide の「データベースの作成」を
参照してください。
クラスターをプロビジョニングする際に、クラスター内に作成されるすべてデータベースにアクセス
できるマスターユーザーを指定します。このマスターユーザーは、最初にデータベースにアクセスで
きる唯一のユーザーであるスーパーユーザーです。ただし、このユーザーは追加のスーパーユーザー
とユーザーを作成できます。詳細については、Amazon Redshift Database Developer Guide の「スー
パーユーザー」と「ユーザー」を参照してください。
Amazon Redshift はパラメーターグループを使用して、日付のプレゼンテーションスタイルや小数点
の精度など、クラスター内のすべてのデータベースの動作を定義します。クラスターをプロビジョニ
ングする際にパラメーターグループを指定しない場合、Amazon Redshift は、デフォルトのパラメー
ターグループをクラスターに関連付けます。詳細については、「Amazon Redshift パラメーターグ
ループ (p. 50)」を参照してください。
Amazon Redshift 内のデータベースに関する詳細については、 Amazon Redshift Database Developer
Guide を参照してください。
API Version 2012-12-01
4
Amazon Redshift 管理ガイド
概要
Amazon Redshift クラスター
概要
Amazon Redshift データウェアハウスは、ノードと呼ばれるコンピューティングリソースのコレ
クションであり、これらはクラスターと呼ばれるグループを構成します。各クラスターは、1 つの
Amazon Redshift エンジンを実行し、1 つ以上のデータベースを含みます。
Note
現時点では、Amazon Redshift バージョン 1.0 エンジンを利用できます。ただし、エンジンの
更新に伴い、複数の Amazon Redshift エンジンバージョンを選択できるようになる可能性が
あります。
コンソールの [Cluster Version] フィールドで、クラスターの Amazon Redshift エンジンとデータベー
スのバージョンを決定できます。数字の最初の 2 つのセクションはクラスターのバージョンで、最後
のセクションはクラスターのデータベースの固有の改訂番号です。次の例では、クラスターバージョ
ンが 1.0 で、データベースの改訂番号が 884 です。
Note
コンソールでは、1 つのフィールドにこの情報が表示されますが、Amazon Redshift API では
ClusterVersion と ClusterRevisionNumber の 2 つのパラメーターになります。詳細に
ついては、「Amazon Redshift API Reference」の「クラスター」を参照してください。
Amazon Redshift には [Allow Version Upgrade] という設定があり、クラスターの Amazon Redshift
エンジンの新しいバージョンが利用可能になると、エンジンを自動的にアップグレードするかど
API Version 2012-12-01
5
Amazon Redshift 管理ガイド
クラスターおよびノードについて
うかを指定できます。この設定はデータベースバージョンのアップグレードには影響しません。
データベースバージョンは、クラスターに指定したメンテナンスウィンドウ中にアップグレードさ
れます。Amazon Redshift エンジンのアップグレードはメジャーバージョンのアップグレードであ
り、Amazon Redshift データベースのアップグレードはマイナーバージョンのアップグレードです。
バージョンの自動アップグレードは、メジャーバージョンに対してのみ無効にできます。マイナー
バージョンアップグレードのメンテナンスウィンドウの詳細については、「メンテナンスウィンド
ウ (p. 11)」を参照してください。
クラスターおよびノードについて
Amazon Redshift クラスターは、ノードで構成されています。クラスターごとに、リーダーノード
と 1 つまたは複数のコンピューティングノードがあります。リーダーノードは、クライアントアプ
リケーションからクエリを受け取ってクエリを解析し、クエリ実行プランを作成します。次に、コ
ンピューティングノードに対するこれらのプランの並列実行を調整し、コンピューティングノード
から得た中間結果を集計してから、最終的にクライアントアプリケーションに結果を返します。コン
ピューティングノード、はクエリ実行プランを実行し、これらのクエリを処理するためにデータをコ
ンピューティングノード間で伝送します。集計の中間結果は、クライアントアプリケーションに送り
返される前にリーダーノードに送り返されます。リーダーノードおよびコンピューティングノードの
詳細については、Amazon Redshift Database Developer Guide の「データウェアハウスシステムの
アーキテクチャ」を参照してください。
クラスターを起動すると、オプションの 1 つとしてノードタイプを指定します。ノードタイプによっ
て、各ノードの CPU、RAM、ストレージ容量、およびストレージデバイスでのタイプが決まりま
す。高密度ストレージノードタイプの DS1 と DS2 は、大容量データのワークロードに合わせて最適
化されており、ハードディスクドライブ (HDD) ストレージを使用します。高密度コンピューティン
グノードタイプの DC1 は、パフォーマンスへの負荷が高いワークロード向けに最適化されており、ソ
リッドステートストレージ (SSD) を使用します。
DS2 ノードタイプは、DS1 ノードタイプと同じストレージ機能を備えていますが、使用可能な
RAM と CPU が大きいため、対応する DS1 ノードタイプよりパフォーマンスが高くなります。ただ
し、DC1 ノードタイプはすべてのノードタイプで最大のパフォーマンスを発揮します。選択するノー
ドタイプは、主に Amazon Redshift にインポートするデータの量、データベースで実行するクエリと
オペレーションの複雑さ、それらのクエリとオペレーションに結果に依存するダウンストリームシス
テムの必要性によって決まります。
ノードタイプは、さまざまなサイズで使用できます。DS1 と DS2 は、xlarge サイズと 8xlarge サイズ
で使用できます。DC1 は、large サイズと 8xlarge サイズで使用できます。ノードサイズとノードの数
によって、クラスターのストレージ総容量が決まります。
ノードタイプに応じて、1 つのノード (単一ノード) または複数のノード (複数ノード) を使用できま
す。8xlarge クラスターの最小ノード数は 2 です。単一ノードクラスターでは、ノードは機能上リー
ダーとコンピューティングで共有されます。マルチノードクラスターでは、リーダーノードとコン
ピューティングノードは分かれています。
Amazon Redshift は、各リージョンの各 AWS アカウントのリソースにクォータを適用しま
す。クォータは、アカウントがリージョン内の特定のリソースタイプに作成できるリソースの数を
制限します (ノードやスナップショットなど)。Amazon Redshift リソースに適用するデフォルトの
クォータの詳細については、アマゾン ウェブ サービス全般のリファレンス の「Amazon Redshift の
上限」を参照してください。上限緩和をご希望の場合は、Amazon Redshift 上限緩和申請を送信しま
す。
ノードタイプの詳細
次のテーブルは、以下の値を使用して各ノードタイプとサイズのノード仕様をまとめたものです。
• vCPU は各ノードの仮想 CPU の数です。
• ECU は、各ノードの Amazon EC2 計算ユニットの数です。
API Version 2012-12-01
6
Amazon Redshift 管理ガイド
ノードタイプの詳細
• RAM は、各ノードのギビバイト (GiB) 単位のメモリ量です。
• 1 ノードあたりのスライスとは、コンピューティングノードでパーティション分割されたスライス
の数です。
• ストレージは、各ノードのストレージの容量とタイプです。
• ノード範囲とは、Amazon Redshift がサポートするノードタイプとサイズにおけるノードの最小数
と最大数です。
Note
前述のように、指定したリージョン内の AWS アカウントに適用されたクォータによって
は、さらに少ないノードに制限されることがあります。
• 全容量とは、ノード範囲で指定されているノードの最大数をデプロイした場合のクラスターのスト
レージ合計容量です。
クラスターのコストは、リージョン、ノードタイプ、ノードの数、ノードが事前に予約されているか
どうかによって異なります。ノードのコストについては、「Amazon Redshift の料金表」ページを参
照してください。
高密度ストレージノードタイプ
ノードサイ
ズ
vCPU ECU
RAM
(GiB)
1 ノードあた
りのスライ
ス
1 ノードあ
たりのスト
レージ
ノード範囲
総容量
ds1.xlarge
2
4.4
15
2
2 TB HDD
1–32
64 TB
ds1.8xlarge
16
35
120
16
16 TB HDD
2–128
2 PB
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
dc1.8xlarge
32
104
244
32
2.56 TB SSD
2–128
326 TB
Amazon Redshift の以前のリリースでは、ノードタイプは異なる名前でした。Amazon Redshift API
および AWS Command Line Interface (AWS CLI) の古い名前を使用できますが、それらの名前を参照
するスクリプトを現在の名前を使用するように更新することをお勧めします。現在の名前と以前の名
前は、次のとおりです。
ノードタイプの以前の名前
現在の名前
以前の名前
ds1.xlarge
dw.hs1.xlarge、dw1.xlarge
ds1.8xlarge
dw.hs1.8xlarge、dw1.8xlarge
dc1.large
dw2.large
API Version 2012-12-01
7
Amazon Redshift 管理ガイド
ノードの数の決定
現在の名前
以前の名前
dc1.8xlarge
dw2.8xlarge
ノードの数の決定
選択するノードの数は、データセットのサイズおよび希望するクエリパフォーマンスによって決ま
ります。例として高密度ストレージノードタイプを使用すると、32 TB のデータがある場合、16
個の ds1.xlarge ノードか、2 個の ds1.8xlarge ノードを選択できます。データの増分が少ない場合
は、ds1.xlarge ノードサイズを選択すると 2 TB ずつ拡張できます。一般的に、データの増分が多い場
合は、ds1.8xlarge ノードサイズを選択することをお勧めします。
Amazon Redshift はクラスターのすべてのコンピューティングノードにクエリを分散し、並列で実行
するので、クラスターにノードを追加するとクエリパフォーマンスを向上させることができます。ま
た、Amazon Redshift はクラスター内のすべてのコンピューティングノードにデータも分散します。2
つ以上のコンピューティングノードを持つクラスターを実行する場合は、各ノードのデータが常に別
のノードのディスクにミラーリングされ、データ損失が発生するリスクが減少します。
どちらを選択しても、Amazon Redshift consoleと Amazon CloudWatch メトリクスのクエリパフォー
マンスをモニタリングできます。また、必要に応じてノードを追加または削除して、最適に動作する
ようにストレージとパフォーマンスのバランスをとることもできます。追加のノードをリクエストし
たときは、Amazon Redshift でデプロイメント、ロードバランシング、およびデータメンテナンスの
詳細がすべて管理されます。クラスターパフォーマンスの詳細については、「Amazon Redshift クラ
スターのパフォーマンスをモニタリングする (p. 200)」を参照してください。
より長い期間 (1 年以上など)、継続してクラスターの実行を維持する予定の場合、1 年間または 3
年間、コンピューティングノードを予約することで、料金を大幅に節約することができます。コン
ピューティングノードを予約するには、リザーブドノードというサービスをご購入ください。予約
する個々のコンピューティングノードについて、1 つのサービスを購入します。コンピューティング
ノードを予約した場合、クラスターが実行されているかどうかにかかわらず、固定の前払い料金と時
間料金をお支払いいただきます。ただし、時間料金は、オンデマンドの使用料金よりも大幅に安くな
ります。詳細については、「Amazon Redshift リザーブドノードの購入 (p. 100)」を参照してくださ
い。
クラスターのサイズ変更
最初にクラスターをプロビジョニングした後にストレージとパフォーマンスの要件が変更された場
合、クラスターのサイズを変更できます。ノードを追加または削除してクラスターをスケールインま
たはスケールアウトできます。また、別のノードタイプを指定してクラスターを拡大または縮小する
こともできます。
たとえば、さらにノードを追加したり、ノードタイプを変更したり、単一ノードクラスターをマルチ
ノードクラスターに変更したり、マルチノードクラスターを単一ノードクラスターに変更したりする
ことができます。 ただし、変更後のクラスターが、現在のデータを保持するのに十分な大きさである
ことを確認する必要があります。変更後のサイズが不十分な場合、サイズの変更は失敗します。 API
を使用するときは、ノードタイプ、ノードサイズ、ノードの数のいずれかのみを変更する場合でもす
べて指定する必要があります。
以下にリサイズプロセスを示します。
1. リサイズプロセスを開始すると、Amazon Redshift はリサイズリクエストを承認するイベント通知
を送信し、新しい (ターゲット) クラスターのプロビジョニングを開始します。
2. 新しい (ターゲット) クラスターがプロビジョニングされると、Amazon Redshift はリサイズが開始
されたというイベント通知を送信し、読み取り専用モードで既存の (ソース) クラスターを再開しま
API Version 2012-12-01
8
Amazon Redshift 管理ガイド
クラスターのサイズ変更
す。再起動すると、クラスターへの既存の接続はすべて終了します。 すべての完了しなかったトラ
ンザクション (コピーも含めて) は、ロールバックされます。クラスターが読み取り専用モードの場
合、クエリの読み取りはできますが、クエリの書き込みはできません。
3. Amazon Redshift は、ソースクラスターからターゲットクラスターにデータをコピーし始めます。
4. リサイズプロセスが完了間近になると、Amazon Redshift はターゲットクラスターのエンドポイン
トを更新し、ソースクラスターへのすべての接続は終了します。
5. リサイズが完了すると、Amazon Redshift はリサイズが完了したというイベント通知を送信しま
す。ターゲットクラスターに接続し、クエリの読み取りと書き取りの実行を再開できます。
クラスターのサイズを変更するとき、サイズ変更が完了するまでは読み取り専用モードのままです。
Amazon Redshift consoleのクラスターの [Status] タブでサイズ変更の進捗を確認することができま
す。クラスターのサイズ変更にかかる時間は、各ノードのデータ量に左右されます。通常、サイズ変
更処理には数時間から 1 日かかります。ただし、データ量が多いクラスターではさらに時間がかかる
こともあります。これは、データが元のクラスターの各ノードからコピー先のクラスターのノードに
並列コピーされるためです。クラスターのサイズ変更の詳細については、「チュートリアル: Amazon
Redshift クラスターのサイズ変更 (p. 247)」および「クラスターのサイズ変更 (p. 28)」を参照し
てください。
サイズ変更の操作中、Amazon Redshift はテーブルをソートしません。クラスターのサイズを変更す
ると、Amazon Redshift は分散方式に基づいてデータベースのテーブルを新しいコンピューティング
ノードに分散し、ANALYZE を実行して統計を更新します。削除のマークが付いた行は転送されない
ため、テーブルを再ソートする必要がある場合のみ VACUUM を実行する必要があります。詳細につ
いては、Amazon Redshift Database Developer Guide の「テーブルのバキューム処理」を参照してく
ださい。
クラスターがパブリックであり、VPC 内に存在する場合、サイズ変更後もリーダーノードの elastic
IP アドレス (EIP) は変更されません。クラスターがプライベートであり、VPC 内に存在する場合、サ
イズ変更後もリーダーノードのプライベート IP アドレスは変更されません。クラスターが VPC 内に
存在しない場合、サイズ変更オペレーションの一部として、新しいパブリック IP アドレスがリーダー
ノードに割り当てられます。
クラスターのリーダーノード IP アドレスを取得するには、以下に示すように dig ユーティリティを使
用します。
dig mycluster.abcd1234.us-west-2.redshift.amazonaws.com
リーダーノード IP アドレスは、以下に示すように結果の ANSWER SECTION の末尾にあります。
dig ユーティリティは、BIND ソフトウェアダウンロードの一部として入手できます。BIND の詳細に
ついては、Internet Systems Consortium のドキュメントの BIND に関する説明を参照してください。
API Version 2012-12-01
9
Amazon Redshift 管理ガイド
クラスターの起動用にサポー
トされているプラットフォーム
クラスターの起動用にサポートされているプラッ
トフォーム
Amazon Redshift クラスターは、選択した Amazon Redshift のノードタイプとサイズ用に構成された
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されます。EC2-Classic か EC2VPC のどちらかのプラットフォームで Amazon Redshift クラスターを起動できます。これらのプラッ
トフォームは、Amazon EC2 インスタンスに対してサポートされています。これらのプラットフォー
ムの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「サポートされているプ
ラットフォーム」を参照してください。利用可能なプラットフォームは、ご利用の AWS アカウント
の設定によって異なります。
Note
SQL クライアントツールと Amazon Redshift データベース間の接続上の問題を防ぐため
に、ホストがパケットサイズを処理できるようにインバウンドルールを設定するか、ある
いはご使用の Amazon EC2 インスタンスのネットワークインターフェース (NIC) で最大送
信単位を 1500 に設定して TCP/IP のジャンボフレームを無効にしておくことをお勧めしま
す。 上記の方法の詳細については、「クエリがハングして、クラスターに達しない場合があ
る (p. 198)」を参照してください。
EC2-Classic プラットフォーム
EC2-Classic プラットフォームでは、クラスターは他の AWS ユーザーと共有する単一のフラットネッ
トワーク内で稼働します。EC2-Classic プラットフォームでクラスターをプロビジョニングする場合
は、クラスターに 1 つ以上の Amazon Redshift クラスターセキュリティグループを関連付けて、クラ
スターへのアクセスを制御します。詳細については、「Amazon Redshift クラスターセキュリティグ
ループ (p. 124)」を参照してください。
EC2-VPC プラットフォーム
EC2-VPC プラットフォームでは、クラスターは論理的に AWS アカウントに限定された Virtual
Private Cloud (VPC) 内で稼働します。EC2-VPC プラットフォームのクラスターをプロビジョニング
する場合は、クラスターに 1 つ以上の VPC のセキュリティグループを関連付けて、クラスターへの
アクセスを制御します。詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティグ
ループ」を参照してください。
VPC でクラスターを作成するには、最初に VPC のサブネット情報を指定して Amazon Redshift クラ
スターサブネットグループを作成してから、クラスターの起動時にサブネットグループを指定する必
要があります。詳細については、「Amazon Redshift のクラスターサブネットグループ (p. 40)」を
参照してください。
Amazon Virtual Private Cloud (Amazon VPC) に関する詳細については、Amazon VPC の製品詳細ペー
ジを参照してください。
プラットフォームの選択
AWS アカウントは、インスタンスを両方のプラットフォームで起動できるか、EC2-VPC だけで起動
できるかが、リージョンごとに決まっています。アカウントがサポートしているプラットフォームを
確認し、クラスターを起動するには、次の操作を行います。
1. クラスターをデプロイする AWS リージョンを決定します。Amazon Redshift を利用できる AWS
リージョンのリストについては、アマゾン ウェブ サービス全般のリファレンス の「リージョンと
エンドポイント」を参照してください。
API Version 2012-12-01
10
Amazon Redshift 管理ガイド
リージョンとアベイラビリティゾーンの考慮事項
2. 選択した AWS リージョンでアカウントがサポートしている Amazon EC2 プラットフォームを確認
します。この情報は、Amazon EC2 コンソールで確認できます。手順については、Linux インスタ
ンス用 Amazon EC2 ユーザーガイド の「サポートされているプラットフォーム」を参照してくだ
さい。
3. アカウントが両方のプラットフォームをサポートしている場合は、Amazon Redshift クラスターを
デプロイするプラットフォームを選択します。アカウントが EC2-VPC のみをサポートしている場
合は、VPC にクラスターをデプロイする必要があります。
4. Amazon Redshift クラスターをデプロイします。Amazon Redshift consoleを使用して、または
Amazon Redshift 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 は、リージョン内のすべての AZ で使用
可能というわけではありません。
Amazon Redshift クラスターをプロビジョニングすることができる、サポートされている AWS リー
ジョンのリストについてはアマゾン ウェブ サービス全般のリファレンス の「リージョンとエンドポ
イント」を参照してください。
メンテナンスウィンドウ
Amazon Redshift は定期的にメンテナンスを実行して、クラスターにアップグレードを適用します。
更新中は Amazon Redshift クラスターで通常の操作を実行することはできません。
Amazon Redshift により、1 週間 (月曜日から日曜日まで) のうちのランダムな日に、リージョンごと
に決められた 8 時間のうちのランダムな 30 分間、メンテナンスウィンドウが割り当てられます。次
のリストは、デフォルトでメンテナンスウィンドウが割り当てられる各リージョンの時間を示しま
す。
• 米国東部(バージニア北部) リージョン: 03:00–11:00 UTC
• 米国西部 (北カリフォルニア) リージョン: 06:00–14:00 UTC
• 米国西部 (オレゴン) リージョン: 06:00–14:00 UTC
• アジアパシフィック (ムンバイ) リージョン: 16:30–00:30 UTC
• アジアパシフィック (ソウル) リージョン: 13:00–21:00 UTC
• アジアパシフィック (シンガポール) リージョン: 14:00–22:00 UTC
• アジアパシフィック (シドニー) リージョン: 12:00–20:00 UTC
• アジアパシフィック (東京) リージョン: 13:00–21:00 UTC
• 欧州 (フランクフルト) リージョン: 06:00–14:00 UTC
• 中国 (北京) リージョン: 13:00–21:00 UTC
• 欧州 (アイルランド) リージョン: 22:00–06:00 UTC
API Version 2012-12-01
11
Amazon Redshift 管理ガイド
デフォルトのディスク容量アラーム
メンテナンスイベントが特定の週に予定されている場合、割り当てられた 30 分のメンテナンスウィ
ンドウ中に開始されます。メンテナンスの実行中、Amazon Redshift で実行中のクエリまたはその
他の操作は終了します。ほとんどのメンテナンスは 30 分のメンテナンスウィンドウ中に完了します
が、メンテナンスタスクの一部はウィンドウが閉じた後も実行を続ける場合があります。スケジュー
ルされたメンテナンスウィンドウの間に実行されるメンテナンスタスクがない場合、クラスターは次
にスケジュールされたメンテナンスウィンドウまで通常どおり稼働します。
クラスターをプログラムで、または Amazon Redshift consoleを使用して変更すると、スケジュールさ
れたメンテナンスウィンドウを変更できます。ウィンドウは 30 分以上、24 時間以内である必要があ
ります。詳細については、「コンソールを使ったクラスターの管理 (p. 15)」を参照してください。
デフォルトのディスク容量アラーム
Amazon Redshift クラスターを作成するとき、クラスターのすべてのノードで使用されているディス
ク容量の平均比率を監視するように Amazon CloudWatch アラームを任意で設定できます。このア
ラームをデフォルトのディスク容量アラームと言います。
デフォルトのディスク容量アラームの目的は、クラスターのストレージ容量を監視することです。こ
のアラームは、データウェアハウスのニーズを基に設定できます。たとえば、別のノードタイプに
するかノードを追加するため、または今後の拡張に備えてリザーブドノードを購入するためにクラス
ターのサイズを変更する必要性の指標として警告を使用できます。
ディスクの使用量が、指定した期間、特定の回数の指定した割合に達したとき、または超えたとき、
デフォルトのディスク容量アラームがトリガーされます。デフォルトでは、指定した割合に達し、か
つ 5 分以上その割合かそれ以上の状態が続いたとき、このアラームがトリガーされます。デフォルト
の値は、クラスターを起動した後編集できます
CloudWatch アラームがトリガーされると、Amazon Simple Notification Service (Amazon SNS) に
より、指定された受取人に、割合がしきい値に達したことを警告する通知が送信されます。Amazon
SNS は、トピックを使用して通知を送信する受取人とメッセージを指定します。既存の Amazon SNS
トピックを使用できますが、クラスターの起動時に指定した設定に基づいてトピックを作成すること
もできます。このアラームのトピックは、クラスターを起動した後編集できます。Amazon SNS ト
ピック作成の詳細については、「Amazon Simple Notification Service の使用開始」を参照してくださ
い。
クラスターを起動した後、[CloudWatch Alarms] の下のクラスターの [Status] ウィンドウからア
ラームを表示したり編集したりすることができます。名前は percentage-disk-space-used-default<string です。アラームを開いて、関連付けられている Amazon SNS トピックを表示し、アラーム
の設定を編集することができます。既存の Amazon SNS トピックを使用するように選択していない
場合、作成されるトピックの名前は、<clustername-default-alarms (<recipient>) です。たとえ
ば、xamplecluster-default-alarms ([email protected]) のようになります。
デフォルトのディスク容量アラームを設定して編集する方法については、「クラスターの作
成 (p. 16)」および「デフォルトのディスク容量アラームの編集 (p. 32)」を参照してください。
Note
クラスターを削除すると、クラスターに関連付けられているアラームは削除されませんが、
トリガーされることもありません。必要がなくなったら、CloudWatch コンソールからアラー
ムを削除できます。
クラスターの名前変更
クラスターに別の名前を使用する必要がある場合は、クラスターの名前を変更できます。クラス
ターのエンドポイントには、クラスター名 (クラスター識別子とも呼ばれる) が含まれているため、
名前の変更が完了した後、新しい名前を使用するようにエンドポイントを変更します。たとえば、
API Version 2012-12-01
12
Amazon Redshift 管理ガイド
クラスターのシャットダウンと削除
既存の examplecluster という名前のクラスターを、newcluster という名前に変更した場合
は、newcluster 識別子を使用するようにエンドポイントを変更します。このクラスターに接続する
アプリケーションは、新しいエンドポイントで更新する必要があります。
アプリケーションのエンドポイントを変更せずに、アプリケーションが接続するクラスターを変更す
る必要がある場合も、クラスターの名前を変更することができます。この場合は、最初に元のクラス
ターの名前を変更してから、新しく接続するクラスターの名前を元のクラスターの名前に変更する必
要があります。クラスター識別子はアカウントとリージョン内で一意にする必要があり、元のクラス
ターと変更後のクラスターを同じ名前にできないため、この操作が必要になります。スナップショッ
トからクラスターを復元するときに、依存アプリケーションの接続プロパティを変更したくない場合
も、この操作を行います。
Note
元のクラスターを削除する場合は、不要なクラスターのスナップショットを削除してくださ
い。
クラスターの名前を変更すると、クラスターの状態は、このプロセスが終了するまで renaming に変
わります。クラスターに使用していた古い DNS 名は直ちに削除されますが、キャッシュには数分間
残っています。名前を変更したクラスターの新しい DNS 名は、10 分以内で有効になります。名前を
変更したクラスターは、新しい名前が有効になるまで使用できません。クラスターが再起動され、ク
ラスターへの既存の接続は削除されます。これが完了すると、新しい名前を使用するようにエンドポ
イントが変更されます。そのため、名前の変更を開始する前にクエリの実行を停止し、名前の変更後
に再起動する必要があります。
クラスターのスナップショットは保持され、クラスターに関連付けられたすべてのスナップショット
は、クラスターの名前を変更した後も関連付けを維持します。たとえば、本番稼働用データベースに
サービスを提供するクラスターがあり、そのクラスターに複数のスナップショットがあるとします。
クラスターの名前を変更し、スナップショットのある本番環境に置き換えると、名前を変更したクラ
スターに既存のスナップショットが関連付けられます。
Amazon CloudWatch アラームおよび Amazon Simple Notification Service (Amazon SNS) イベントの
通知は、クラスター名に関連付けられます。クラスターの名前を変更した場合、それに応じてこれら
の通知も更新する必要があります。Events ペインの CloudWatch コンソールで CloudWatch アラーム
を、Amazon Redshift コンソールで Amazon SNS イベント通知を更新できます。クラスターのロー
ドおよびクエリデータには、名前変更前と名前変更後のデータが引き続き表示されます。ただし、パ
フォーマンスデータは、名前変更プロセスの完了後にリセットされます。
詳細については、「クラスターの変更 (p. 23)」を参照してください。
クラスターのシャットダウンと削除
クラスターの実行を停止して料金の発生を防ぐ場合は、クラスターをシャットダウンできます。
シャットダウンするときに、オプションで最終スナップショットを作成できます。最終スナップ
ショットを作成する場合、Amazon Redshift はクラスターの手動スナップショットを作成した後、ク
ラスターをシャットダウンします。後でクラスターの実行とデータのクエリを再開する場合は、その
スナップショットを復元できます。
クラスターとそのデータが不要になった場合は、最終スナップショットを作成しないでシャットダウ
ンすることができます。この場合、クラスターとデータは完全に削除されます。クラスターのシャッ
トダウンと削除の詳細については、「クラスターの削除 (p. 25)」を参照してください。
クラスターのシャットダウン時に最終的な手動スナップショットを作成するかどうかにかかわらず、
クラスターのシャットダウン後、クラスターに関連付けられた自動スナップショットはすべて削除
されます。クラスターに関連付けられた手動スナップショットは保持されます。オプションの最終ス
ナップショットも含めて、保持された手動スナップショットは、クラスターをシャットダウンすると
きに実行中のクラスターが他にない場合、または、実行中の Amazon Redshift クラスターで利用でき
API Version 2012-12-01
13
Amazon Redshift 管理ガイド
クラスターステータス
る無料ストレージ枠を超えている場合、Amazon Simple Storage Service ストレージ料金が課金され
ます。スナップショットのストレージ料金の詳細については、Amazon Redshift の料金表ページを参
照してください。
クラスターステータス
クラスター状態は、クラスターの現在のステータスを表示します。 次の表では、各クラスターステー
タスについて説明します。
ステータス
説明
available
クラスターは実行されていて、利用可能です。
creating
Amazon Redshift はクラスターを作成しています。 詳細については、「ク
ラスターの作成 (p. 16)」を参照してください。
deleting
Amazon Redshift はクラスターを削除しています。 詳細については、「ク
ラスターの削除 (p. 25)」を参照してください。
final-snapshot
Amazon Redshift は、クラスターを削除する前に最後のスナップショット
を取得しています。 詳細については、「クラスターの削除 (p. 25)」を
参照してください。
hardware-failure
クラスターにハードウェア障害が生じました。
単一ノードクラスターがある場合、そのノードを置き換えることはできま
せん。 クラスターを復元するには、スナップショットを使います。 詳細
については、「Amazon Redshift スナップショット (p. 68)」を参照し
てください。
incompatible-hsm
Amazon Redshift は、ハードウェアセキュリティモジュール (HSM) に接
続できません。 クラスターと HSM 間の HSM 設定を確認してください。
詳細については、「Amazon Redshift でのハードウェアセキュリティモ
ジュールを使用した暗号化について (p. 90)」を参照してください。
incompatiblenetwork
基本的なネットワーク設定に問題があります。 クラスターを起動する
VPC が存在すること、そして設定が正しいことを確認してください。 詳
細については、「Amazon Virtual Private Cloud (VPC) でクラスターを管
理する (p. 35)」を参照してください。
incompatibleparameters
関連付けられたパラメーターグループの 1 つ以上のパラメーター値に問
題があり、パラメーター値の適用ができません。 パラメーターグループ
を変更し、無効な値を更新してください。 詳細については、「Amazon
Redshift パラメーターグループ (p. 50)」を参照してください。
incompatiblerestore
スナップショットからクラスターを復元時に問題が発生しました。 別のス
ナップショットでクラスターの復元を再度お試しください。 詳細について
は、「Amazon Redshift スナップショット (p. 68)」を参照してくださ
い。
modifying
Amazon Redshift は、クラスターへの変更を加えています。 詳細について
は、「クラスターの変更 (p. 23)」を参照してください。
rebooting
Amazon Redshift は、クラスターを再起動しています。 詳細については、
「クラスターの再起動 (p. 27)」を参照してください。
renaming
Amazon Redshift は、クラスターに新しい名前を適用しています。 詳細に
ついては、「クラスターの名前変更 (p. 12)」を参照してください。
API Version 2012-12-01
14
Amazon Redshift 管理ガイド
コンソールを使ったクラスターの管理
ステータス
説明
resizing
Amazon Redshift は、クラスターのサイズを変更しています。 詳細につい
ては、「クラスターのサイズ変更 (p. 28)」を参照してください。
rotating-keys
Amazon Redshift は、クラスターの暗号化キーを更新しています。
詳細については、「Amazon Redshift での暗号化キーの更新につい
て (p. 91)」を参照してください。
storage-full
クラスターがストレージ容量限に達しました。 ノードを追加するためにク
ラスターのサイズ変更をするか、または別のノードサイズを選択してくだ
さい。 詳細については、「クラスターのサイズ変更 (p. 28)」を参照し
てください。
updating-hsm
Amazon Redshift は HSM 設定を更新しています。 詳細については、
「Amazon Redshift でのハードウェアセキュリティモジュールを使用した
暗号化について (p. 90)」を参照してください。
コンソールを使ったクラスターの管理
クラスターの作成、修正、サイズ変更、削除、再起動、バックアップを実行するには、Amazon
Redshift console の [Clusters] セクションを使用できます。
リージョンにクラスターがないときに [Clusters] ページに移動すると、クラスターを起動するオプ
ションが表示されます。次のスクリーンショットでは、リージョンは米国東部 (バージニア北部) リー
ジョンで、このアカウントにクラスターはありません。
選択したリージョンに少なくとも 1 つのクラスターがあると、[Clusters] セクションに、アカウントの
そのリージョンにあるすべてのクラスターに関する情報のサブセットが表示されます。次のスクリー
ンショットでは、選択したリージョンにこのアカウントで作成したクラスターが 1 つあります。
API Version 2012-12-01
15
Amazon Redshift 管理ガイド
クラスターの作成
クラスターを展開すると、エンドポイントの詳細、クラスターとデータベースのプロパティ、タグな
ど、クラスターの詳細を表示することができます。次のスクリーンショットでは、examplecluster が
展開され、クラスターに関する情報の概要が表示されています。
クラスターの作成
クラスターを作成する前に、このセクションの「概要 (p. 5)」で情報を確認してください。
クラスターを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Launch Cluster] を選択します。
3.
[Cluster Details] ページで、以下のオプションの値を入力し、[Continue] を選択します。
Cluster Identifier
クラスターの一意の名前を入力します。
クラスター識別子は、次の条件を満たしている必要があります。
• 1 ~ 63 文字の英数字またはハイフンを含める必要があります。
• 英字は小文字を使用する必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
• AWS アカウントのすべてのクラスター間で一意である必要があります。
API Version 2012-12-01
16
Amazon Redshift 管理ガイド
クラスターの作成
[Database Name]
カスタム名を使ってデータベースを作成する場合に名前を入力します (mydb など)。この
フィールドはオプションです。カスタムデータベース名を指定するかどうかにかかわらず、
クラスターには dev というデフォルトデータベースが作成されます。
データベース名は、次の条件を満たしている必要があります。
• 1 ~ 64 文字の英数字を使用する必要があります。
• 小文字のみを使用する必要があります。
• データベース名に予約語は使用できません。詳細については、『Amazon Redshift
Database Developer Guide』の「予約語」を参照してください。
Database Port
クライアントアプリケーションからデータベースに接続するポート番号を入力します。クラ
スター内のデータベースへの JDBC または ODBC 接続を開く場合、接続文字列にポート番号
を含める必要があります。
ポート番号は、次の条件を満たしている必要があります。
• すべて数字である必要があります。
• 1150 ~ 65535 の範囲である必要があります。デフォルトのポート番号は 5439 です。
• ファイアウォールの内側にいる場合は、受信接続を受け入れる開いているポートを指定す
る必要があります。
Master User Name
データベースのマスターユーザーのアカウント名を入力します。
マスターユーザー名は、次の条件を満たしている必要があります。
• 1 ~ 128 文字の英数字を使用する必要があります。
• 1 字目は文字である必要があります。
• マスターユーザー名を予約語にすることはできません。詳細については、『Amazon
Redshift Database Developer Guide』の「予約語」を参照してください。
[Master User Password] と [Confirm Password]
マスターユーザーアカウントのパスワードを入力し、確認のためにもう一度パスワードを入
力します。
パスワードは以下の条件を満たす必要があります。
• 8 ~ 64 文字の長さにする必要があります。
• 最低 1 個の大文字を含める必要があります。
• 最低 1 個の小文字を含める必要があります。
• 少なくとも 1 つの数字を含める必要があります。
• 表示可能な ASCII 文字 (ASCII コード 33~126) のうち、一重引用符、二重引用符、/、@、
または空白を除く任意の文字を使用できます。
次のスクリーンショットでは、examplecluster がクラスターの識別子、カスタムデータベース
名は未指定、5439 がポート番号、masteruser がマスターユーザー名です。
API Version 2012-12-01
17
Amazon Redshift 管理ガイド
クラスターの作成
4.
[Node Configuration] ページで、以下のオプションの値を入力し、[Continue] を選択します。
Node Type
ノードタイプを選択します。ノードタイプを選択すると、[CPU]、[Memory]、[Storage]、[I/O
Performance] など、選択したノードタイプに対応した情報が表示されます。
Cluster Type
クラスタータイプを選択します。選択すると、選択したノードタイプとクラスタータイプ
におけるコンピューティングノードの最大数が [Maximum] ボックスに表示され、最小数が
[Minimum] ボックスに表示されます。
[Single Node] を選択した場合は、リーダーノードとコンピューティングノードの機能をあわ
せもつノードが 1 つ作成されます。
[Multi Node] を選択した場合は、[Number of Compute Nodes] でクラスターに必要なコン
ピューティングノードの数を指定します。
次のスクリーンショットでは、[dc1.large] ノードタイプが選択され、[Multi Node] クラスターに 2
つのコンピューティングノードが指定されています。
5.
[Additional Configuration] ページで、以下のオプションの値を入力し、[Continue] を選択します。
API Version 2012-12-01
18
Amazon Redshift 管理ガイド
クラスターの作成
a.
[Provide the optional additional configuration details below] で、以下のオプションを設定しま
す。
[Cluster Parameter Group]
クラスターに関連付けるパラメーターグループを選択します。選択しない場合、デフォ
ルトのパラメーターグループが使用されます。
[Encrypt Database]
クラスターとスナップショット内のデータをすべて暗号化するかどうかを選択します。
デフォルト設定の [None] のままにしておくと、暗号化は有効になりません。暗号化を
有効にする場合は、AWS Key Management Service (AWS KMS) またはハードウェアセ
キュリティモジュール (HSM) のどちらを使用するか選択して、関連する設定を指定しま
す。Amazon Redshift の暗号化の詳細については、「Amazon Redshift データベース暗
号化 (p. 88)」を参照してください。
• [KMS]
暗号化を有効にし、AWS KMS を使って暗号化キーを管理する場合は、[KMS] を選択
します。[Master Key] で、[(default) aws/redshift] を選択してデフォルトのカスタマー
マスターキー (CMK) を使用するか、AWS アカウントから別のキーを選択します。
Note
別の AWS アカウントのキーを使用する場合は、[Master Key] から [Enter a
key ARN] を選択します。次に、使用するキーの ARN を入力します。キーを
使用するアクセス権限が必要です。AWS KMS でのキーのアクセスの詳細につ
いては、AWS Key Management Service Developer Guide の「キーへのアク
セスの制御」を参照してください。
Amazon Redshift で AWS KMS 暗号化キーを使用する方法の詳細について
は、「Amazon Redshift での AWS KMS を使用したデータベース暗号化につい
て (p. 88)」を参照してください。
• [HSM]
暗号化を有効にし、ハードウェアセキュリティモジュール (HSM) を使用して暗号化
キーを管理する場合は、[HSM] を選択します。
[HSM] を選択した場合は、[HSM Connection] と [HSM Client Certificate] から値を選択
します。これらの値は、Amazon Redshift と HSM がクラスターキーを渡すことができ
る信頼された接続を確立するために必要です。HSM 接続とクライアント証明書は、ク
ラスターを起動する前に Amazon Redshift でセットアップする必要があります。HSM
接続とクライアント証明書のセットアップの詳細については、「Amazon Redshift で
のハードウェアセキュリティモジュールを使用した暗号化について (p. 90)」を参照
してください。
b.
[Configure Networking Options] で、クラスターを仮想プライベートクラウド (VPC) で起動
するか、VPC の外部で起動するかを設定します。ここで選択したオプションによって、こ
のセクションで使用できる追加のオプションが影響を受けます。Amazon Redshift は EC2Classic と EC2-VPC プラットフォームを使ってクラスターを起動します。AWS アカウン
トによって、クラスターで使用できるプラットフォームが決まります。詳細については、
「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「Supported Platforms」を参照し
てください。
Choose a VPC
クラスターを仮想プライベートクラウド (VPC) で起動するには、使用する VPC を選択
します。少なくとも 1 つの Amazon Redshift サブネットグループが VPC を使用するよ
うにセットアップされている必要があります。詳細については、「Amazon Redshift の
クラスターサブネットグループ (p. 40)」を参照してください。
API Version 2012-12-01
19
Amazon Redshift 管理ガイド
クラスターの作成
クラスターを VPC の外部で起動するには、[Not in VPC] を選択します。このオプション
は、EC2-Classic プラットフォームをサポートする AWS アカウントでのみ使用できま
す。それ以外の場合、クラスターは VPC で起動する必要があります。
[クラスターサブネットグループ]
クラスターを起動する Amazon Redshift サブネットグループを選択します。
Note
このオプションは、VPC のクラスターの場合にのみ使用できます。
パブリックアクセス可能
クラスターを起動する VPC の外部からクラスターに接続可能にするには、[Yes] を選択
します。クラスターへの接続を VPC 内部からのみに制限する場合は、[No] を選択しま
す。
Note
このオプションは、VPC のクラスターの場合にのみ使用できます。
[Choose a Public IP Address]
[Publicly Accessible] を [Yes] に設定した場合、ここで [No] を選択すると、Amazon
Redshift によってクラスターに Elastic IP (EIP) が与えられます。自分で作成して管理
する EIP を使用する場合は、[Yes] を選択します。Amazon Redshift に作成させた場
合、EIP は Amazon Redshift によって管理されます。
Note
このオプションは [Publicly Accessible] が [Yes] に設定された VPC のクラス
ターでのみ使用できます。
API Version 2012-12-01
20
Amazon Redshift 管理ガイド
クラスターの作成
Elastic IP
VPC の外部からクラスターに接続するときに使用する EIP を選択します。
Note
このオプションは [Publicly Accessible] と [Choose a Public IP Address] が [Yes]
に設定された VPC のクラスターでのみ使用できます。
アベイラビリティーゾーン
クラスターが作成されるアベイラビリティゾーンを Amazon Redshift に選択させるに
は、[No Preference] を選択します。そうでない場合、特定のアベイラビリティーゾーン
を選択します。
拡張された VPC のルーティング
拡張された VPC のルーティングを有効にするには、[Yes] を選択します。拡張された
VPC のルーティングには、追加設定が必要になる場合があります。詳細については、
「Amazon Redshift 拡張された VPC のルーティング (p. 46)」を参照してください。
c.
[Optionally, associate your cluster with one or more security groups] で、以下のオプションの
値を指定します。
[クラスターセキュリティグループ]
クラスターの Amazon Redshift セキュリティグループを選択します。デフォルトで選
択されているセキュリティグループは、デフォルトセキュリティグループです。クラス
ターセキュリティグループの詳細については、「Amazon Redshift クラスターセキュリ
ティグループ (p. 124)」を参照してください。
Note
このオプションは、EC2-Classic プラットフォームでクラスターを起動する場合
にのみ使用できます。
VPC セキュリティグループ
クラスターの VPC セキュリティグループを選択します。デフォルトで選択されている
セキュリティグループは、デフォルト VPC セキュリティグループです。VPC セキュ
リティグループの詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリ
ティグループ」を参照してください。
Note
このオプションは、EC2 VPC プラットフォームでクラスターを起動する場合に
のみ使用できます。
d.
[Optionally create a basic alarm for this cluster] で、以下のオプションを設定し、[Continue]
を選択します。
API Version 2012-12-01
21
Amazon Redshift 管理ガイド
クラスターの作成
[Create CloudWatch Alarm]
クラスターのディスク使用状況をモニタリングするアラームを作成する場合は、[Yes] を
選択して、該当するオプションの値を指定します。アラームを作成しない場合は、[No]
を選択します。
[Disk Usage Threshold]
平均ディスク使用率を選択します。この値以上になると、アラームがトリガーされま
す。
[Use Existing Topic]
このアラームのために新しい Amazon Simple Notification Service (Amazon SNS) トピッ
クを作成する場合は、[No] を選択します。[Topic] ボックスでは、必要に応じてデフォル
ト名を編集します。[Recipients] に、アラームがトリガーした場合に通知を受け取る必要
があるすべての受信者のメールアドレスを入力します。
既存の Amazon SNS トピックをこのアラームで使用する場合、[Yes] を選択して、
[Topic] リストで使用するトピックを選択します。
6.
[Review] ページで、クラスターの詳細を確認します。すべてに問題がないことを確認したら、
[Launch Cluster] を選択して、作成プロセスを開始します。問題がある場合は、[Back] を選択して
必要な変更を行い、[Continue] を選択して [Review] ページに戻ります。
Note
[Database Port] や [Master User Name] の値など、一部のクラスタープロパティは変更で
きません。変更する必要がある場合は、[Back] を選択して、変更します。
次のスクリーンショットは、クラスター起動プロセスで選択したさまざまなオプションの概要を
示しています。
API Version 2012-12-01
22
Amazon Redshift 管理ガイド
クラスターの変更
7.
作成プロセスを開始した後、[Close] を選択します。クラスターの使用準備ができるまで、数分か
かることがあります。
パフォーマンスダッシュボードで操作の状態をモニタリングできます。
クラスターの変更
クラスターを変更すると、以下のオプションに対する変更が直ちに適用されます。
• VPC セキュリティグループ
• パブリックアクセス可能
• Master User Password
• [Automated Snapshot Retention Period]
• [HSM Connection]
• [HSM Client Certificate]
API Version 2012-12-01
23
Amazon Redshift 管理ガイド
クラスターの変更
• [Maintenance Window Start]
• [Maintenance Window End]
以下のオプションに対する変更は、クラスターを再起動した後に限り、有効になります。
• Cluster Identifier
Cluster Identifier を変更すると、Amazon Redshift はクラスターを自動的に再起動します。
• [Cluster Parameter Group]
自動作成されたスナップショットの保持期間を短縮すると、新しい保持期間に含まれなくなった、既
存の自動作成されたスナップショットは削除されます。詳細については、「Amazon Redshift スナッ
プショット (p. 68)」を参照してください。
クラスターを変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択して、変更するクラスターを選択します。
3.
クラスターの詳細ページの [Configuration] タブで、[Cluster] を選択し、[Modify] を選択します。
4.
[Modify Cluster] ウィンドウで、クラスターを変更し、[Modify] を選択します。
次のスクリーンショットは、VPC のクラスター用の [Modify Cluster] オプションを示していま
す。
API Version 2012-12-01
24
Amazon Redshift 管理ガイド
クラスターの削除
クラスターの削除
クラスターが不要になった場合には、それを削除することができます。削除するクラスターと同じ
データと設定を使って新しいクラスターをプロビジョニングする予定がある場合は、手動スナップ
ショットを作成し、後でそのスナップショットを復元して、クラスターの作業を再開できるようにす
る必要があります。クラスターを削除して最終手動スナップショットを作成しなかった場合、クラス
ターデータは削除されます。どちらの場合も、クラスターの削除後、自動スナップショットは削除さ
れますが、手動スナップショットはユーザーが削除するまで保持されます。手動スナップショットに
は、クラスターの Amazon Redshift スナップショットで使用できるストレージ量に応じて、Amazon
Simple Storage Service ストレージ料金が課金されます。詳細については、「クラスターのシャット
ダウンと削除 (p. 13)」を参照してください。
クラスターを削除するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択して、削除するクラスターを選択します。
API Version 2012-12-01
25
Amazon Redshift 管理ガイド
クラスターの削除
3.
クラスターの詳細ページの [Configuration] タブで、[Cluster] を選択し、[Delete] を選択します。
4.
[Delete Cluster] ダイアログボックスで、次のいずれかを実行します。
• クラスターを削除して最終スナップショットを作成するには、[Create snapshot] で [Yes] を選
択します。[Snapshot name] に最終スナップショットの名前を入力して、[Delete] を選択しま
す。
• 最終スナップショットを作成しないでクラスターを削除するには、[Create snapshot] で [No] を
選択して、[Delete] を選択します。
クラスターの削除を開始した後、クラスターが削除されるまで数分かかることがあります。次の
スクリーンショットに示すように、クラスターリストでステータスをモニタリングできます。最
終スナップショットを要求した場合、[Cluster Status] には [final-snapshot] が表示され、その
後、[deleting] が表示されます。
次のスクリーンショットには、ステータスが final-snapshot (削除される前) のクラスターが
表示されています。
API Version 2012-12-01
26
Amazon Redshift 管理ガイド
クラスターの再起動
次のスクリーンショットには、ステータスが deleting のクラスターが表示されています。
プロセスが終了すると、クラスターが [Clusters] ページのクラスターのリストに表示されなく
なったことにより削除されたことを確認できます。
クラスターの再起動
クラスターを再起動すると、クラスターの状態が rebooting に設定されます。再起動が終了する
と、クラスターイベントが作成されます。保留されていたクラスターへの変更はすべて、この再起動
時に適用されます。
クラスターを再起動するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択して、再起動するクラスターを選択します。
3.
クラスターの詳細ページの [Configuration] タブで、[Cluster] を選択し、[Reboot] を選択します。
4.
[Reboot Clusters] ウィンドウで、このクラスターを再起動することを確認して、[Reboot] を選択
します。
API Version 2012-12-01
27
Amazon Redshift 管理ガイド
クラスターのサイズ変更
クラスターが使用可能になるまで、数分かかることがあります。次のスクリーンショットに示す
ように、クラスターリストで再起動の状態をモニタリングできます。
クラスターのサイズ変更
クラスターのサイズを変更する場合、クラスターの現在の設定と異なっているノード数またはノード
タイプを指定します。クラスターのサイズ変更処理が実行中の間は、クラスターに対する書き込みク
エリまたは読み取り/書き込みクエリは実行できません。読み込みクエリのみ実行できます。
さまざまな方法を使用してクラスターのサイズを変更するチュートリアルも含めて、クラスター
のサイズ変更方法の詳細については、「チュートリアル: Amazon Redshift クラスターのサイズ変
更 (p. 247)」を参照してください。
クラスターのサイズを変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択して、サイズ変更するクラスターを選択します。
3.
クラスターの詳細ページの [Configuration] タブで、[Cluster] を選択し、[Resize] を選択します。
API Version 2012-12-01
28
Amazon Redshift 管理ガイド
クラスター構成に関する情報の取得
4.
[Resize Clusters] ウィンドウで、[Node Type]、[Cluster Type]、[Number of Nodes] など、サイズ
変更パラメーターを設定し、[Resize] を選択します。
[Status] タブでサイズ変更の進捗状況をモニタリングすることができます。
クラスター構成に関する情報の取得
クラスター構成の詳細を取得するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択し、設定情報を表示するクラスターを選択します。
API Version 2012-12-01
29
Amazon Redshift 管理ガイド
クラスター状態の概要の取得
3.
クラスターの詳細ページの [Configuration] タブで、設定情報を確認します。クラスターのプロパ
ティ、ステータス、データベース、容量、バックアップ、監査ログ、メンテナンス、SSH 処理設
定に関する情報を表示できます。
クラスター状態の概要の取得
クラスターの [Status] タブには、クラスターの状態の概要、クラスターに関連するイベントの概要、
およびクラスターに関連付けられている Amazon CloudWatch アラームのリストが表示されます。
クラスター状態の概要を取得するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択し、ステータス情報を表示するクラスターを選択しま
す。
3.
[Status] タブを選択します。
次のスクリーンショットのような、ステータスの概要ページが表示されます。
API Version 2012-12-01
30
Amazon Redshift 管理ガイド
クラスターのスナップショットの作成
クラスターのスナップショットの作成
次に示すように、クラスターの [Configuration] タブから、クラスターのスナップショットを作成で
きます。また、Amazon Redshift コンソールのスナップショットパートから、クラスターのスナップ
ショットを作成することもできます。詳細については、「コンソールを使用したスナップショットの
管理 (p. 75)」を参照してください。
クラスターのスナップショットを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択し、スナップショットを作成するクラスターを選択し
ます。
3.
クラスターの詳細ページの [Configuration] タブで、[Backup] を選択し、[Take Snapshot] を選択
します。
4.
[Create Snapshot] ダイアログボックスで、次の操作を行います。
5.
a.
[Cluster Identifier] ボックスで、スナップショットを作成するクラスターを選択します。
b.
[Snapshot Identifier] ボックスに、スナップショットの名前を入力します。
[Create] を選択します。
API Version 2012-12-01
31
Amazon Redshift 管理ガイド
デフォルトのディスク容量アラームの編集
作成したスナップショットに関する詳細情報と、AWS アカウントのその他のスナップショットを
表示するには、Amazon Redshift コンソールのスナップショットパートに移動します (「コンソー
ルを使用したスナップショットの管理 (p. 75)」を参照)。
デフォルトのディスク容量アラームの編集
Amazon Redshift クラスターの作成時にデフォルトのディスク容量アラームの作成を選択した場合、
アラームを編集できます。たとえば、アラームをトリガーする割合を変更したり、または期間の設定
を変更する必要のある場合があります。
デフォルトのディスク容量アラームを編集するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Clusters] を選択し、編集するアラームに関連付けられているクラス
ターを選択します。
3.
[Status] タブを選択します。
4.
[CloudWatch Alarms] セクションで、編集するアラームを選択します。
クラスターを起動した際に作成されたデフォルトのディスク容量は、percentage-disk-spaceused-default-< ###で指定されています。string は Amazon Redshift によってランダムに生成
されます。
5.
[Edit Alarm] ウィンドウで、割合や分など、変更する任意の値を編集します。
6.
アラームが関連付けられている Amazon SNS トピックを変更するには、次のいずれかを実行しま
す。
• 別の既存のトピックを選択する場合は、[Send a notification to] リストからトピックを選択しま
す。
• 新しいトピックを作成する場合、[create topic] を選択して、新しいトピック名と受信者のメー
ルアドレスを指定します。
7.
[Save] を選択します。
API Version 2012-12-01
32
Amazon Redshift 管理ガイド
クラスターパフォーマンスデータの操作
クラスターパフォーマンスデータの操作
[Performance]、[Queries]、[Loads] の各タブを使って、クラスターパフォーマンスデータを操作でき
ます。クラスターパフォーマンスの操作方法の詳細については、「Amazon Redshift コンソールでパ
フォーマンスデータを使用する (p. 204)」を参照してください。
AWS SDK for Java を使用したクラスターの管理
次の Java コードの例では、下記に示すような一般的なクラスター管理操作をデモンストレーション
します。
• クラスターの作成
• クラスターに関するメタデータの一覧表示
• 構成オプションの変更
作成対象のクラスターに対する要求を開始すると、変更可能になるまで、クラスターは available
状態になります。この例ではループを使用して、describeClusters 方式を使用しているクラス
ターの状態を定期的にチェックします。クラスターが使用可能になると、クラスターの優先保守ウィ
ンドウが変更されます。
以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実
行例 (p. 148)」を参照してください。コードをアップデートして、クラスターの識別子を指定する必
要があります。
import java.io.IOException;
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.*;
public class CreateAndModifyCluster {
public static AmazonRedshiftClient client;
public static String clusterIdentifier = "***provide a cluster
identifier***";
public static long sleepTime = 20;
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
CreateAndModifyCluster.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
try {
createCluster();
waitForClusterReady();
describeClusters();
modifyCluster();
describeClusters();
} catch (Exception e) {
System.err.println("Operation failed: " + e.getMessage());
}
API Version 2012-12-01
33
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したクラスターの管理
}
private static void createCluster() {
CreateClusterRequest request = new CreateClusterRequest()
.withClusterIdentifier(clusterIdentifier)
.withMasterUsername("masteruser")
.withMasterUserPassword("12345678Aa")
.withNodeType("ds1.xlarge")
.withNumberOfNodes(2);
Cluster createResponse = client.createCluster(request);
System.out.println("Created cluster " +
createResponse.getClusterIdentifier());
}
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(".");
API Version 2012-12-01
34
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を
使用してクラスターを管理する
Thread.sleep(sleepTime*1000);
}
}
}
}
Amazon Redshift CLI および API を使用してクラ
スターを管理する
次の Amazon Redshift CLI オペレーションを使用して、クラスターを管理できます。
• create-cluster
• 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. 35)
• VPC でクラスターを作成する (p. 37)
• クラスターの VPC セキュリティグループの管理 (p. 39)
• Amazon Redshift のクラスターサブネットグループ (p. 40)
概要
Amazon Redshift は、クラスターの起動用に EC2-VPC プラットフォームと EC2-Classic プラット
フォームの両方をサポートしています。詳細については、「クラスターの起動用にサポートされてい
るプラットフォーム (p. 10)」を参照してください。
API Version 2012-12-01
35
Amazon Redshift 管理ガイド
概要
Note
Amazon Redshift は、専用テナンシー VPC へのクラスターの起動をサポートします。詳細に
ついては、Dedicated Instances の Amazon VPC ユーザーガイド を参照してください。
VPC にクラスターをプロビジョニングするときは、次の操作を行います。
• VPC 情報を指定する
VPC 内にクラスターを作成するように Amazon Redshift にリクエストするときは、まずクラス
ターサブネットグループを作成してから、VPC ID などの VPC 情報、および VPC 内のサブネット
のリストを指定する必要があります。クラスターの起動時に、Amazon Redshift が VPC 内のいず
れかのサブネットにクラスターをプロビジョニングできるように、クラスターサブネットグルー
プを指定します。Amazon Redshift でサブネットグループを作成する方法のについては、Amazon
Redshift のクラスターサブネットグループ (p. 40) を参照してください。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 ユーザーガイド
Note
」の「VPC での DNS の使用」を参照してください。
VPC 内にパブリックにアクセス可能な既存のクラスターがある場合は、VPC 内からの接続
は、クラスターのサイズを変更するまで、それらのパラメーターが設定されていてもその
クラスターに接続するために EIP を使用し続けます。すべての新しいクラスターは、同じ
VPC 内からパブリックにアクセス可能なクラスターに接続する際にプライベート IP アドレ
スを使用する、という新しい動作に従います。
EIP は、VPC の外にあるクラスターにアクセスするための IP アドレスですが、[SSH Ingestion
Settings] の下の Amazon Redshift console に表示されているクラスターノードパブリック IP アド
レスおよびプライベート IP アドレスに関連していません。パブリックおよびプライベートクラス
API Version 2012-12-01
ターノードの IP アドレスは、クラスターがパブリックにアクセス可能であるかどうかに関係なく表
36
Amazon Redshift 管理ガイド
VPC でクラスターを作成する
示されます。それらは、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 クラスターセキュリティグループ
を使用して、クラスターへのインバウンドアクセスを許可することはできません。
VPC 内でのクラスターの使用に関する詳細については、「VPC でクラスターを作成する (p. 37)」
を参照してください。
VPC 内のクラスターのスナップショットを復元する
VPC 内のクラスターのスナップショットは、VPC の外部ではなく VPC の内部でのみ復元できます。
これらは、アカウント内の同じ VPC または別の VPC 内で復元できます。スナップショットの詳細に
ついては、Amazon Redshift スナップショット (p. 68) を参照してください。
VPC でクラスターを作成する
VPC 内にクラスターをデプロイするための通常のステップは、次のとおりです。
VPC でクラスターを作成するには
1.
VPC を設定します。
クラスターは、アカウントのデフォルトの VPC 内 (アカウント内に VPC がある場合)、または作
成した VPC 内に作成できます。詳細については、「クラスターの起動用にサポートされているプ
ラットフォーム (p. 10)」を参照してください。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. 40)」を参照してください。
API Version 2012-12-01
37
Amazon Redshift 管理ガイド
VPC でクラスターを作成する
3.
クラスターに関連付ける VPC セキュリティグループ内のインバウンド接続に対して、アクセスを
許可します。
VPC の外部 (パブリックインターネット上) のクライアントがクラスターに接続できるようにする
には、クラスターの起動時に使用したポートへのインバウンドアクセスを許可する VPC セキュリ
ティグループに、クラスターを関連付ける必要があります。セキュリティグループルールの例に
ついては、Amazon VPC ユーザーガイド の「セキュリティグループのルール」を参照してくださ
い。
4.
VPC でクラスターを起動します。
入門ガイドで説明されている手順を使用して、VPC でクラスターを起動できます。詳細につ
いては、「ステップ 2: クラスターを起動する」を参照してください。ウィザードに従って、
[ADDITIONAL CONFIGURATION] ページの [Configure Network Options] に次の情報を指定しま
す。
• [Choose a VPC]: ドロップダウンリストから VPC を選択します。
• [Cluster Subnet Group]: ステップ 2 で作成したクラスターサブネットグループを選択します。
• [Publicly Accessible]: パブリックインターネットからアクセスできるパブリック IP アドレスを
クラスターに指定する場合は [Yes]、VPC 内からのみアクセスできるプライベート IP アドレ
スをクラスターに指定する場合は [No] を選択します。AWS アカウントで EC2-Classic クラス
ターを作成できる場合、デフォルトは「No」、それ以外の場合、デフォルトは「Yes」になり
ます。
• [Choose a Public IP Address] すでに設定した Elastic IP (EIP) アドレスを選択する場合は、[
Yes] を選択します。それ以外の場合、Amazon Redshift にインスタンス の EIP を作成させるた
めに、[No] を選択します。
• [Elastic IP ] VPC の外からクラスターへの接続に使用するために EIP を選択します。
• [アベイラビリティゾーン] Amazon Redshift にクラスターが作成されるアベイラビリティゾー
ンを選択させるには、[No Preference ] を選択します。そうでない場合、特定のアベイラビリ
ティーゾーンを選択します。
• クラスターへの承認済みデバイスのアクセスを許可する VPC セキュリティグループを選択しま
す。
以下は、[ADDITIONAL CONFIGURATION] ページの [Configure Networking Options] セクション
のスクリーンショットの例です。
これで、クラスターを使用する準備ができました。入門ガイドのステップに従って、サンプルデータ
をアップロードし、サンプルクエリを試行することにより、クラスターをテストできます。
API Version 2012-12-01
38
Amazon Redshift 管理ガイド
クラスターの VPC セキュリティグループの管理
クラスターの VPC セキュリティグループの管理
Amazon Redshift クラスターをプロビジョニングすると、デフォルトではロックされているため、誰
もアクセスすることはできません。他のユーザーに Amazon Redshift クラスターへのインバウンド
アクセスを許可するには、クラスターをセキュリティグループに関連付けます。EC2-VPC プラット
フォームでは、既存の Amazon VPC セキュリティグループを使用するか、次に示すように新しいグ
ループを定義してクラスターに関連付けることができます。EC2-Classic プラットフォームでは、ク
ラスターセキュリティグループを定義し、そのグループをクラスターに関連付けます。EC2-Classic
プラットフォームでのクラスターセキュリティグループの使用の詳細については、「Amazon Redshift
クラスターセキュリティグループ (p. 124)」を参照してください。
VPC セキュリティグループは、使用中のクラスターなど、VPC 上のインスタンスへのアクセスを制
御しているルールのセットで構成されます。個別のルールのセットは、IP アドレスの範囲または他の
VPC セキュリティグループに基づいてアクセスします。VPC セキュリティグループをクラスターに
関連付けると、VPC セキュリティグループで定義されているルールがクラスターへのアクセスを制御
します。
EC2-VPC プラットフォーム上でプロビジョニングする各クラスターには、1 つ以上の Amazon VPC
セキュリティグループが関連付けられます。Amazon VPC は、デフォルトという VPC セキュリティ
グループを提供します。これは VPC を作成するときに自動的に作成されます。VPC で起動するクラ
スターは、そのクラスターの作成時に別の VPC セキュリティグループを指定しない限り、それぞれ
がデフォルトの VPC セキュリティグループに自動的に関連付けられます。クラスターの作成時にク
ラスターに VPC セキュリティグループを関連付けるか、または後でクラスターを変更して VPC セ
キュリティグループを関連付けることができます。VPC セキュリティグループとクラスターの関連
付けの詳細については、「クラスターを作成するには (p. 16)」および「クラスターを変更するに
は (p. 24)」を参照してください。
次の表では、デフォルトの VPC セキュリティグループ用のデフォルトルールについて説明します。
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 セキュリティグループの操作の詳
API Version 2012-12-01
39
Amazon Redshift 管理ガイド
クラスターサブネットグループ
細については、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 コンソールを使用してクラスターサブネットグループを管理
する方法について説明します。クラスターサブネットグループの作成、既存のクラスターサブネット
グループの管理、またはクラスターサブネットグループの削除を行うことができます。このようなタ
スクはすべて、クラスターサブネットグループリストから開始されます。管理を行う場合は、対象と
するクラスターサブネットグループを選択する必要があります。
以下に例示したクラスターサブネットグループリストには、クラスターサブネットグループが 1 つ表
示されています。デフォルトでは、AWS アカウントに対して定義されたクラスターサブネットグルー
プは存在しません。my-subnet-group が選択 (強調表示) されているので、編集または削除ができま
す。選択したクラスターサブネットグループの詳細は、[Cluster Subnet Group Details] の下に表示さ
れます。
クラスターサブネットグループの作成
VPC でクラスターをプロビジョニングするには、クラスターサブネットグループが少なくとも 1 つ定
義されている必要があります。
クラスターサブネットグループを作成する方法
1.
2.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
ナビゲーションペインで、[Security] をクリックします。
API Version 2012-12-01
40
Amazon Redshift 管理ガイド
クラスターサブネットグループ
3.
[Subnet Groups] タブで、[Subnet Groups] をクリックします。
4.
[Create Cluster Subnet Group] ダイアログボックスで、グループにサブネットを追加します。
a.
クラスターサブネットグループの [Name]、[Description]、および [VPC ID] を指定します。
b.
以下のいずれかの操作を実行して、グループにサブネットを追加します。
• [add all the subnets] リンクをクリックします。または
• [Availability Zone] および [Subnet ID] のボックスを使用して特定のサブネットを選択し、
[Add] をクリックします。
以下の例に、1 つのサブネットグループで定義されたクラスターサブネットグループを示し
ます。
5.
[Yes, Create] をクリックします。
クラスターサブネットグループのリストに新しいグループが表示されます。
クラスターサブネットグループの変更
クラスターサブネットグループを変更する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
API Version 2012-12-01
41
Amazon Redshift 管理ガイド
クラスターサブネットグループ
2.
ナビゲーションペインで、[Security] をクリックします。
3.
クラスターサブネットグループリストの [Subnet Groups] タブで、変更するグループの行をク
リックし、[Edit] をクリックします。
以下の例では、subnetgroup2 が変更対象のクラスターサブネットグループです。
4.
[Cluster Subnet Group Details] で、以下の操作のいずれかを実行します。
目的
操作
1 つまたは複数のサブネット
をグループに追加します。
個々のサブネットを選択するには、[Availability Zone] および
[Subnet ID] のボックスを使用するか、[add all the subnets] を
クリックします。
[Save] をクリックします。
グループからサブネットを削
除します。
グループで使用しているサブネットのリストで、削除するサブ
ネットの横にある [Remove] をクリックします。
[Save] をクリックします。
クラスターサブネットグループの削除
クラスターで使用されているクラスターサブネットグループは削除できません。
クラスターサブネットグループを削除する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
API Version 2012-12-01
42
Amazon Redshift 管理ガイド
クラスターサブネットグループ
3.
クラスターサブネットグループリストの [Subnet Groups] タブで、削除するグループの行をク
リックします。
以下の例では、my-subnet-group が削除対象のクラスターサブネットグループです。
4.
[Delete Cluster Subnet Group] ダイアログボックスで、[Delete] をクリックします。
AWS SDK for Java を使用したクラスターサブネットグループ
の管理
以下の Java コードの例では、クラスターサブネットに対する一般的な操作を示します。
• クラスターサブネットグループの作成
• クラスターサブネットグループに関するメタデータの一覧表示
• クラスターサブネットグループの変更
以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実
行例 (p. 148)」を参照してください。コードを更新し、クラスターサブネットグループ名と 2 つの
サブネット識別子を指定する必要があります。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.*;
public class CreateAndModifyClusterSubnetGroup {
public static AmazonRedshiftClient client;
public static String clusterSubnetGroupName = "***provide a cluster
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****";
API Version 2012-12-01
43
Amazon Redshift 管理ガイド
クラスターサブネットグループ
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
CreateAndModifyClusterSubnetGroup.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
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() {
API Version 2012-12-01
44
Amazon Redshift 管理ガイド
クラスターサブネットグループ
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);
}
}
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());
}
}
}
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
API Version 2012-12-01
45
Amazon Redshift 管理ガイド
Amazon Redshift 拡張された VPC
のルーティング
Amazon Redshift 拡張された VPC のルーティングを使用すると、Amazon Redshift は Amazon
VPC におけるクラスターとデータリポジトリ間のすべての COPY と UNLOAD トラフィックを強
制します。 これからは、VPC セキュリティグループ、ネットワークアクセスコントロールリスト
(ACL)、VPC エンドポイント、VPC エンドポイントポリシー、インターネットゲートウェイ、ドメ
インネームシステム (DNS) サーバーなどのスタンダード VPC 機能を使用して Amazon Redshift クラ
スターとそのほかのリソース間のデータフローを詳細に管理できます。 拡張された VPC ルーチング
を使用して VPC からトラフィックをルーチングする場合には、VPC フローログを使って COPY と
UNLOAD トラフィックを監視することもできます。
拡張された VPC ルーチングが有効でない場合、Amazon Redshift は AWS ネットワークにおけるその
ほかのサービスへのトラフィックを含むトラフィックをインターネット経由でルーチングします。
Important
拡張された VPC ルーチングはそのほかのリソースに Amazon Redshift がアクセスする方法に
影響を与えるため、VPC を正しく設定しないと COPY と UNLOAD コマンドが失敗する場合
があります。 次に説明するように、クラスターの VPC とデータリソース間のネットワークパ
スを別に作成する必要があります。
拡張された VPC ルーチングが有効化されたクラスターで COPY または UNLOAD コマンドを実行す
る場合には、VPC は厳密あるいは最適なネットワークパスを使ってトラフィックを指定されたリソー
スにルーチングします。
たとえば、VPC で次のパスを設定できます。
• VPC エンドポイント – クラスターと同じリージョンの Amazon S3 バケットへのトラフィックで
は、バケットに直接トラフィックする VPC エンドポイントを作成できます。 VPC のエンドポイン
トを使用すると、Amazon S3 へのアクセスを管理するためにエンドポイントのポリシーをアタッチ
できます。 Amazon Redshift でのエンドポイントの使用の詳細については、「VPC エンドポイント
の使用 (p. 47)」を参照してください。
• NAT ゲートウェイ – Amazon S3 バケットをほかのリージョンまたは AWS ネットワークのほかの
サービスに接続する、あるいは AWS ネットワーク外のホストインスタンスにアクセスするために
は、ネットワークアドレストランスレーション (NAT) ゲートウェイを設定できます。
API Version 2012-12-01
46
Amazon Redshift 管理ガイド
VPC エンドポイントの使用
• インターネットゲートウェイ – VPC 外の AWS サービスに接続するためには、インターネットゲー
トウェイを VPC サブネットにアタッチできます。
詳細については、Amazon VPC ユーザーガイド の「VPC エンドポイント」を参照してください。
拡張 VPC ルーチングは追加料金なしで使用できます。 異なるリージョンで Amazon S3 を UNLOAD
する、またはパブリック IP アドレスで Amazon EMR や SSH から COPY するなどの一定の操作に
は、追加のデータ転送料金が発生する場合があります。 料金の詳細については、「Amazon EC2 料金
表」を参照してください。
トピック
• VPC エンドポイントの使用 (p. 47)
• 拡張された VPC ルーティングの有効化 (p. 48)
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 エンドポイントを使用して接続する場合、接続する
Amazon Redshift クラスターと Amazon S3 バケットは同じリージョンにある必要がありま
す。
VPC エンドポイントを使用するには、クラスターがある VPC への VPC エンドポイントを作成し、そ
してクラスターに拡張された VPC ルーチングを有効化します。 VPC でクラスターを作成する場合、
拡張された VPC ルーチングを有効にするか、あるいは VPC のクラスターを変更して拡張された VPC
ルーティングとして使用することもできます。
VPC エンドポイントは、ルートテーブルを使用して VPC のクラスターと Amazon S3 間のトラ
フィックのルーチングをコントロールします。 特定のルートテーブルに関連付けられたサブネットの
すべてのクラスターは、自動的にそのエンドポイントを使用してサービスにアクセスします。
VPC はトラフィックをルーチングするために、クラスターのトラフィックに合う最も特定された、
または最も限定的なルートを使用します。 たとえば、ルートテーブルにすべてのインターネットトラ
フィック (0.0.0.0/0) 向けに 1 つのインターネットゲートウェイと 1 つの Amazon S3 エンドポイント
を示すルートがある場合、Amazon S3 行きのすべてのトラフィックにこのエンドポイントルートが優
先されます。これは、Amazon S3 サービス向けの IP アドレス範囲が 0.0.0.0/0 よりも特定されている
からです。 この例では、そのほかのリージョンの Amazon S3 バケット行きのトラフィックを含め、
そのほかのすべてのインターネットトラフィックはインターネットゲートウェイに移動します。
エンドポイントの作成の詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイン
ト」を参照してください。
クラスターからデータファイルがある Amazon S3 バケットへのアクセスを制御するために、エンド
ポイントポリシーを使用します。 デフォルトでは、エンドポイント作成ウィザードはどのユーザーあ
るいは VPC 内のサービスにもアクセス制限がないエンドポイントポリシーをアタッチします。 特定
の制御については、オプションでカスタムエンドポイントポリシーをアタッチできます。 詳細につい
ては、「エンドポイントポリシーの使用」を参照してください。
API Version 2012-12-01
47
Amazon Redshift 管理ガイド
拡張された VPC ルーティングの有効化
エンドポイントは追加料金なしで使用できます。データ転送とリソースの使用量に対する標準料金が
適用されます。料金の詳細については、「Amazon EC2 料金表」を参照してください。
拡張された VPC ルーティングの有効化
クラスターを作成時に拡張された VPC ルーチングを有効化することも、既存のクラスターを変更して
拡張された VPC ルーチングを有効化することもできます。
拡張された VPC ルーチングを操作するためには、クラスターが次の要件と制約を満たしている必要が
あります。
• クラスターは VPC 内にある必要があります。
Amazon S3 VPC エンドポイントをアタッチする場合、クラスターは同じリージョンにある
Amazon S3 バケットにアクセスするためだけに VPC エンドポイントを使用します。 ほかのリー
ジョンでバケットにアクセスする ( VPC エンドポイントを使用せずに )、またはほかの AWS サー
ビスにアクセスするためには、クラスターへパブリックアクセスを有効にするか、あるいはネット
ワークアドレストランスレーション ( NAT ) ゲートウェイを使用します。 詳細については、「VPC
でクラスターを作成する (p. 37)」を参照してください。
• VPC 内でドメインネームサービス ( DNS ) 解決を有効にするか、ご自身で所有する DNS サーバー
を使用している場合は、Amazon S3 に送られる DNS リクエストが AWS により維持される IP アド
レスに正しく解決されていることを確認する必要があります。 詳細については、「Using DNS with
Your VPC」を参照してください。
• DNS ホスト名を VPC で有効にする必要があります。 DNS ホスト名はデフォルトで有効化されて
います。
• VPC エンドポイントポリシーは、すべてのマニフェストファイル関連へのアクセスを含む Amazon
Redshift で呼び出される COPY、UNLOAD、CREATE LIBRARY で使用されるすべての Amazon S3
バケットへのアクセスを許可している必要があります。 リモートホストからの COPY では、エン
ドポイントポリシーが各ホストマシンへのアクセスを許可している必要があります。 詳細について
は、「Amazon Redshift Database Developer Guide」の「COPY、UNLOAD と CREATE LIBRARY
の IAM アクセス権限」を参照してください。
AWS マネジメントコンソールを使用して拡張された VPC ルーチングがあるクラスターを作成する
ためには、次に示すように「ネットワーキングオプションの設定」セクションの起動クラスターウィ
ザードの「拡張された VPC ルーチング」のオプションで [Yes] を選択してください。 詳細について
は、「クラスターの作成 (p. 16)」を参照してください。
API Version 2012-12-01
48
Amazon Redshift 管理ガイド
拡張された VPC ルーティングの有効化
クラスターを変更するには コンソールを使用して拡張された VPC ルーチングを有効化するために
は、クラスターを選択し、続けて「クラスターの変更」、そして「クラスターの変更」ダイアログの
「拡張された VPC ルーチング」オプションで [Yes] を選択します。 詳細については、「クラスター
の変更 (p. 23)」を参照してください。
次の Amazon Redshift 用 AWS コマンドラインインターフェース (AWS CLI) 操作を使用して、拡張さ
れた VPC ルーチングを有効化できます。
• create-cluster
• modify-cluster
次の Amazon Redshift APIs アクションを使用して拡張された VPC ルーチングを有効化できます。
• CreateCluster
• ModifyCluster
API Version 2012-12-01
49
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 は
API Version 2012-12-01
50
Amazon Redshift 管理ガイド
デフォルトパラメーター値
engine-default です。パラメーター値を変更した後、source は user に変わり、値がデフォルト
値から変更されたことを示します。
Note
Amazon Redshift console には各パラメーターの source は表示されません。source を表示
するには、Amazon Redshift API、AWS CLI、またはいずれかの AWS SDK を使用する必要が
あります。
ユーザーが作成したパラメーターグループについては、パラメーター値はいつでも変更できます。ま
たはすべてのパラメーター値をデフォルトにリセットすることもできます。また、異なるパラメー
ターグループをクラスターに関連付けることもできます。既にクラスターに関連付けられているパ
ラメーターグループ内のパラメーター値を変更する、または異なるパラメーターグループをクラス
ターに関連付ける場合、更新されたパラメーター値が有効になるようにクラスターを再起動しなけれ
ばならない可能性もあります。クラスターに障害が発生し、Amazon Redshift により再起動された場
合、変更内容はそのときに適用されます。詳細については、「WLM の動的プロパティと静的プロパ
ティ (p. 54)」を参照してください。
デフォルトパラメーター値
次の表はデフォルトパラメーター値の一覧とともに、各パラメーターの詳細な情報へのリンクを示し
ています。これらは redshift-1.0 パラメーターグループファミリーのデフォルト値です。
パラメーター名
値
詳細情報
analyze_threshold_percent10
Amazon Redshift Database Developer Guideの
「analyze_threshold_percent」
datestyle
Amazon Redshift Database Developer Guideの
「datastyle」
ISO, MDY
enable_user_activity_logging
false
このガイドの「データベース監査ログ作
成 (p. 237)」
extra_float_digits
0
Amazon Redshift Database Developer Guideの
「extra_float_digits」
query_group
デフォルト
Amazon Redshift Database Developer Guideの
「query_group」
require_ssl
false
このガイドの「接続のセキュリティオプション
を設定する (p. 180)」
search_path
$user, public
Amazon Redshift Database Developer Guideの
「search_path」
statement_timeout
0
Amazon Redshift Database Developer Guideの
「statement_timeout」
wlm_json_configuration
[{"query_concurrency":5}] このガイドの「ワークロード管理の設
定 (p. 53)」
Note
max_cursor_result_set_size パラメーターは廃止されました。カーソル結果セットのサ
イズの詳細については、Amazon Redshift Database Developer Guideの「カーソルの制約」を
参照してください。
API Version 2012-12-01
51
Amazon Redshift 管理ガイド
AWS CLI によるパラメーター値の設定
データベースで SET コマンドを使用して一時的にパラメーターを上書きすることもできます。SET
コマンドは、現在のセッションの期間だけパラメーターを上書きします。前の表で示されたパラメー
ターに加えて、データベースで wlm_query_slot_count を設定することで、一時的にスロットカウ
ントを調整することもできます。wlm_query_slot_count パラメーターは、パラメーターグループ
での設定に使用することはできません。スロットカウントの調整の詳細については、Amazon Redshift
Database Developer Guideの「wlm_query_slot_count」を参照してください。一時的に他のパラメー
ターを上書きする方法の詳細については、Amazon Redshift Database Developer Guideの「サーバー
設定の変更」を参照してください。
AWS CLI によるパラメーター値の設定
AWS CLI を使用して Amazon Redshift パラメーターを設定するには、特定のパラメーターグルー
プの modify-cluster-parameter-group コマンドを使用します。parameter-group-name
で、変更するパラメーターグループを指定します。parameters パラメーター (modify-clusterparameter-group コマンドのパラメーター) を使用して、パラメーターグループで変更する各パラ
メーターの名前と値のペアを指定します。
Note
AWS CLI を使用して wlm_json_configuration パラメーターを設定する際は、特別な考慮
事項があります。このセクションの例は、wlm_json_configuration を除くすべてのパラ
メーターに適用されます。AWS CLI による wlm_json_configuration の設定の詳細につい
ては、「ワークロード管理の設定 (p. 53)」を参照してください。
パラメーター値を変更した後は、変更したパラメーターグループに関連付けられているクラスター
を再起動する必要があります。値が適用中の間、ParameterApplyStatus のクラスター状態は
applying と表示され、値の適用が完了すると pending-reboot になります。再起動後、クラス
ター内のデータベースは新しいパラメーター値の使用を開始します。クラスターの再起動の詳細につ
いては、「クラスターの再起動 (p. 27)」を参照してください。
Note
wlm_json_configuration パラメーターに含まれる一部のプロパティは動的プロパ
ティであり、関連付けられたクラスターを再起動しなくても変更が適用されます。動的
プロパティと静的プロパティの詳細については、「WLM の動的プロパティと静的プロパ
ティ (p. 54)」を参照してください。
構文
次の構文は、modify-cluster-parameter-group コマンドを使用してパラメーターを設定する方
法を示しています。parameter_name と parameter_value は、実際に変更するパラメーターとそ
のパラメーターの値に置き換えます。複数のパラメーターを同時に変更する場合は、パラメーターと
値の各セットをスペースで区切ります。
aws redshift modify-cluster-parameter-group --parameters
ParameterName=parameter_name,ParameterValue=parameter_value
例
次の例は、myclusterparametergroup パラメーターグループの statement_timeout パラメー
ターと enable_user_activity_logging パラメーターを設定する方法を示しています。
API Version 2012-12-01
52
Amazon Redshift 管理ガイド
ワークロード管理の設定
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
ワークロード管理の設定
Amazon Redshift では、ワークロード管理 (WLM) を使用して、使用可能なクエリキューの数と、処理
するためにクエリをそれらのキューにルーティングする方法を定義します。WLM は、パラメーターグ
ループ設定の一部です。クラスターは、関連付けられているパラメーターグループで指定された WLM
設定を使用します。
パラメーターグループを作成すると、デフォルトの WLM 設定には、最大 5 つのクエリを同時に実行
できる 1 つのキューが含まれます。クエリの処理をさらに細かく制御する場合、キューを追加して、
各キューの WLM プロパティを設定できます。追加した各キューのデフォルトの WLM 設定は、その
プロパティを設定するまで同じです。
付加的なキューを追加する場合、設定内の最後のキューがデフォルトキューになります。クエリが
WLM 設定の条件に基づいて別のキューにルーティングされる場合を除いて、デフォルトキューにより
処理されます。デフォルトキューのユーザーグループまたはクエリグループを指定することはできま
せん。
他のパラメーターと同様、デフォルトパラメーターグループで WLM 設定を変更することはできませ
ん。デフォルトパラメーターグループに関連付けられたクラスターは、常にデフォルトの WLM 設定
を使用します。WLM 設定を変更する場合、パラメーターグループを作成した後、カスタム WLM 設定
を必要とするクラスとそのパラメーターグループを関連付けます。
wlm_json_configuration パラメーター内のプロパ
ティ
WLM は、Amazon Redshift console、AWS CLI、Amazon Redshift API、またはいずれかの AWS SDK
を使用して設定できます。WLM 設定は、キュー間でのメモリ割り当て、キューで同時に実行できる
クエリの数などのキューの動作を定義するいくつかのプロパティで構成されます。次の一覧では、各
キューに設定できる WLM プロパティについて説明します。
Note
以下のプロパティは Amazon Redshift console 名を使用して示されており、対応する JSON
プロパティは説明で示されています。
Concurrency
キューで同時に実行できるクエリの数。キューが同時実行レベルに達すると、後続のクエリを処
理するリソースが利用可能になるまでそれらのクエリはキューで待機します。範囲は 1~50 で
す。
JSON プロパティ: query_concurrency
API Version 2012-12-01
53
Amazon Redshift 管理ガイド
WLM の動的プロパティと静的プロパティ
ユーザーグループ
ユーザーグループ名のカンマ区切りリスト。ユーザーグループのメンバーがデータベースでクエ
リを実行すると、そのメンバーのクエリはユーザーグループに関連付けられたキューにルーティ
ングされます。
JSON プロパティ: user_group
User Group Wildcard
ユーザーグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、
ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードが
有効な場合、「+」または「?」を使用し、クエリを実行するときに複数のユーザーグループを指
定できます。
JSON プロパティ: user_group_wild_card
Query Groups
クエリグループのカンマ区切りリスト。クエリグループのメンバーがデータベースでクエリを実
行すると、そのメンバーのクエリはクエリグループに関連付けられたキューにルーティングされ
ます。
JSON プロパティ: query_group
Query Group Wildcard
クエリグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワ
イルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードが有
効な場合、「+」または「?」を使用し、クエリを実行するときに複数のクエリグループを指定で
きます。
JSON プロパティ: query_group_wild_card
Timeout (ms)
クエリが実行されて始めてからキャンセルされるまでの最大時間 (ミリ秒単位)。
JSON プロパティ: max_execution_time
メモリ (%)
キューに割り当てるメモリの割合。1 つ以上のキュー用のメモリ割合を指定する場合、合計が
100 パーセントになるように他のすべてのキュー用の割合を指定する必要があります。すべての
キューに割り当てられたメモリの合計が 100 パーセントを下回る場合、未割り当てのメモリは
サービスによって管理され、処理用に追加メモリをリクエストするキューに一時的に付与できま
す。
JSON プロパティ: memory_percent_to_use
各プロパティの詳細とクエリキューの設定戦略については、Amazon Redshift Database Developer
Guideの「クエリキューの定義」と「ワークロード管理の実装」を参照してください。
WLM の動的プロパティと静的プロパティ
WLM 設定プロパティは動的または静的とすることができます。動的なプロパティは、クラスターを再
起動することなくデータベースに適用できますが、静的プロパティで変更を有効にするには、クラス
ターの再起動が必要です。ただし、動的プロパティと静的プロパティを同時に変更する場合は、動的
か静的かにかかわらず、すべてのプロパティの変更を有効にするには、クラスターを再起動する必要
があります。
次の WLM プロパティは静的です。
• ユーザーグループ
• User Group Wildcard
• クエリグループ
• Query Group Wildcard
API Version 2012-12-01
54
Amazon Redshift 管理ガイド
AWS CLI による wlm_json_configuration
パラメーターの設定
クエリキューの追加、削除、または順序変更は静的な変更であり、有効にするにはクラスターの再起
動が必要です。
次の WLM プロパティは動的です。
• Concurrency
• Percent of memory to use
• タイムアウト
タイムアウトの値が変更された場合、その新しい値は、値が変更された後に実行を開始する任意のク
エリに適用されます。使用する同時実行またはメモリの割合が変更された場合、Amazon Redshift は
新しい設定に動的に移行するため、現在実行されているクエリは変更によって影響を受けません。詳
細については、「WLM の動的なメモリの割り当て」を参照してください。
AWS CLI による wlm_json_configuration パラメー
ターの設定
WLM を設定するには、wlm_json_configuration パラメーターを変更します。この値は
JavaScript Object Notation (JSON) でフォーマットされています。AWS CLI、Amazon Redshift API、
またはいずれかの AWS SDK を使用して WLM を設定する場合、このセクションの残りの部分で
wlm_json_configuration パラメーターの JSON 構造を構築する方法を参照してください。
Note
Amazon Redshift console を使用して WLM を設定する場合、コンソールでは簡単にキュー
を追加してそのプロパティを設定できるため、JSON 形式について理解する必要はありませ
ん。Amazon Redshift console を使用することで WLM を設定する方法の詳細については、
「パラメーターグループを変更する (p. 60)」を参照してください。
例
次の例は、同時実行レベルが 5 である 1 つのキューを定義するデフォルトの WLM 設定です。
{
"query_concurrency":5
}
構文
デフォルトの 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",
...
},
{
API Version 2012-12-01
55
Amazon Redshift 管理ガイド
AWS CLI による wlm_json_configuration
パラメーターの設定
"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、Mac OS X、Windows の各オペレーティングシステムで適切なコマンドを作成する方法の
詳細については、以下のセクションを参照してください。AWS CLI で JSON データ構造を囲む一般的
な方法の違いの詳細については、AWS Command Line Interface ユーザーガイド の「文字列の引用」
を参照してください。
例
次に示すのは、example-parameter-group という名前のパラメーターグループの WLM を設定す
るためのサンプルコマンドです。ApplyType 設定が dynamic であるため、このパラメーター内の
動的プロパティに対して行われたすべての変更は、設定に対して他の静的な変更が行われていない限
り、速やかに適用されます。この設定では、次の 3 つのキューを定義しています。
• 最初のキューにより、ユーザーは自身のキューで report をラベルとして (query_groups プロパ
ティで) 指定し、そのキューへのクエリのルーティングをスムーズにすることができます。report
ではワイルドカード検索が有効にされているため、クエリをキューにルーティングするためにラベ
ルを正しい順序にする必要はありません。たとえば、reports や reporting もこのクエリグルー
プに一致します。このキューにはすべてのキューの合計メモリのうち 25 パーセントが割り当てら
れ、最大 4 つのクエリを同時に実行できます。クエリの時間は、最大 20,000 ミリ秒 (ms) に制限さ
れています。
• 2 番目のキューにより、データベース内の admin または dba グループのメンバーであるユーザー
は、自身のクエリを処理用にそのキューにルーティングすることができます。ユーザーグループで
はワイルドカード検索が無効になっているため、ユーザーは自身のクエリがそのキューにルーティ
ングされるようにデータベース内のグループと正確に一致する必要があります。このキューにはす
べてのキューの合計メモリのうち 40 パーセントが割り当てられ、最大 5 つのクエリを同時に実行
できます。
• 設定内の最後のキューはデフォルトキューです。このキューにはすべてのキューの合計メモリのう
ち 35 パーセントが割り当てられ、最大 5 つのクエリを同時に処理できます。
Note
デモンストレーションの目的で、例は複数行で示されています。実際のコマンドに改行を入
れることはできません。
API Version 2012-12-01
56
Amazon Redshift 管理ガイド
AWS CLI による wlm_json_configuration
パラメーターの設定
aws redshift modify-cluster-parameter-group
--parameter-group-name example-parameter-group
--parameters
'[
{
"ParameterName":"wlm_json_configuration",
"ParameterValue":"[
{
"query_group":["report"],
"query_group_wild_card":1,
"query_concurrency":4,
"max_execution_time":20000,
"memory_percent_to_use":25
},
{
"user_group":["admin","dba"],
"user_group_wild_card":0,
"query_concurrency":5,
"memory_percent_to_use":40
},
{
"query_concurrency":5,
"memory_percent_to_use":35
}
]",
"ApplyType":"dynamic"
}
]'
Linux および Mac OS X オペレーティングシステムのコマンドラインで AWS
CLI を使用して WLM を設定する際のルール
• JSON 構造全体を単一引用符 (') と角括弧 ([ ]) で囲む必要があります。
• すべてのパラメーター名とパラメーター値は、二重引用符 (") で囲む必要があります。
• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があ
ります。
• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要がありま
す。
• ネストされた構造内では、各二重引用符 (") の前で円記号 (\) のエスケープ文字を使用する必要があ
ります。
• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
• 名前と値の各ペアは、カンマ (,) で区切ります。
• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を
置くことで区切ります。
例
次の例は、Linux および Mac OS X の各オペレーティングシステムで AWS CLI を使用して、このセク
ションで説明されているキューを設定する方法を示しています。
Note
この例は、AWS CLI では 1 行で送信する必要があります。
API Version 2012-12-01
57
Amazon Redshift 管理ガイド
AWS CLI による wlm_json_configuration
パラメーターの設定
aws redshift modify-cluster-parameter-group --parametergroup-name example-parameter-group --parameters
'[{"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}]","ApplyType":"dynamic"}]'
Microsoft Windows オペレーティングシステムの Windows PowerShell で
AWS CLI を使用して WLM を設定する際のルール
• JSON 構造全体を単一引用符 (') と角括弧 ([ ]) で囲む必要があります。
• すべてのパラメーター名とパラメーター値は、二重引用符 (") で囲む必要があります。
• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があ
ります。
• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要がありま
す。
• ネストされた構造内では、各二重引用符 (") とその円記号 (\) のエスケープ文字の前で円記号 (\) のエ
スケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするた
め (\\\:)、3 つの円記号と 1 つの二重引用符を使用することを意味します。
• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
• 名前と値の各ペアは、カンマ (,) で区切ります。
• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を
置くことで区切ります。
例
次の例は、Windows オペレーティングシステム上の Windows PowerShell で AWS CLI を使用して、
このセクションで説明されているキューを設定する方法を示しています。
Note
この例は、AWS CLI では 1 行で送信する必要があります。
aws redshift modify-cluster-parameter-group --parameter-group-name exampleparameter-group --parameters '[{\"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}]\",\"ApplyType\":
\"dynamic\"}]'
Windows オペレーティングシステムでコマンドプロンプトを使用して WLM
を設定する際のルール
• JSON 構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があります。
• すべてのパラメーター名とパラメーター値は、二重引用符 (") で囲む必要があります。
• ParameterValue 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があ
ります。
API Version 2012-12-01
58
Amazon Redshift 管理ガイド
コンソールを使用したパラメーターグループの管理
• ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要がありま
す。
• ネストされた構造内では、各二重引用符 (") とその円記号 (\) のエスケープ文字の前で円記号 (\) のエ
スケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするた
め (\\\:)、3 つの円記号と 1 つの二重引用符を使用することを意味します。
• 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
• 名前と値の各ペアは、カンマ (,) で区切ります。
• 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を
置くことで区切ります。
例
次の例は、Windows オペレーティングシステム上のコマンドプロンプトで AWS CLI を使用して、こ
のセクションで説明されているキューを設定する方法を示しています。
Note
この例は、AWS CLI では 1 行で送信する必要があります。
aws redshift modify-cluster-parameter-group --parameter-group-name exampleparameter-group --parameters "[{\"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}]\",\"ApplyType\":
\"dynamic\"}]"
コンソールを使用したパラメーターグループの管
理
Amazon Redshift console を使用して、パラメーターグループの表示、作成、変更、および削除を行
うことができます。これらのタスクを開始するには、[Parameter Groups] ページのボタンを使用しま
す。次のスクリーンショットを参考にしてください。
リストにある任意のパラメーターグループを展開して、パラメーターおよびワークロード管理 (WLM)
の設定の値の概要を表示することができます。次のスクリーンショットでは、パラメーター値の概要
を示すために、custom-parameter-group というパラメーターグループが展開されています。
API Version 2012-12-01
59
Amazon Redshift 管理ガイド
パラメーターグループを作成する
パラメーターグループを作成する
デフォルトのパラメーターグループとは異なるパラメーター値を設定する場合は、パラメーターグ
ループを作成します。
パラメーターグループを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
3.
4.
[Navigation] ペインで、[Parameter Groups] を選択します。
[Parameter Groups] ページで、[Create Cluster Parameter Group] を選択します。
[Create Cluster Parameter Group] ダイアログボックスで、パラメーターグループファミリー
を選択した後、パラメーターグループ名およびパラメーターグループの説明を入力します。
パラメーターグループの命名に関する制約の詳細については、「Amazon Redshift における制
限 (p. 260)」を参照してください。
5.
[Create] を選択します。
パラメーターグループを変更する
パラメーター設定と WLM 設定プロパティを変更して、パラメーターを調整することができます。
API Version 2012-12-01
60
Amazon Redshift 管理ガイド
パラメーターグループを変更する
Note
デフォルトのパラメーターグループを変更することはできません。
パラメーターグループ内のパラメーターを変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Navigation] ペインで、[Parameter Groups] を選択します。
3.
[Parameter Groups] ページのパラメーターグループリストで、変更するパラメーターグループの
行を選択します。
4.
WLM 設定パラメーター以外のパラメーターを編集するには、[Edit Parameters] を選択します。
次のスクリーンショットに示すように、[Parameters] タブが開きます。
5.
変更するパラメーターに対応する [Value] ボックスで、新しい値を入力します。 これらのパラ
メーターの詳細については、Amazon Redshift パラメーターグループ (p. 50)を参照してくださ
い。
6.
[Save Changes] を選択します。
Note
すでにクラスターと関連付けられたパラメーターグループ内でこれらのパラメーターを
変更した場合、クラスターを再起動して変更を適用します。詳細については、「クラス
ターの再起動 (p. 27)」を参照してください。
パラメーターグループ内の WLM 設定を変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Navigation] ペインで、[Parameter Groups] を選択します。
3.
[Parameter Groups] ページのパラメーターグループリストで、変更するパラメーターグループの
行を選択します。
API Version 2012-12-01
61
Amazon Redshift 管理ガイド
パラメーターグループを変更する
Note
デフォルトのパラメーターグループを変更することはできません。
4.
WLM 設定パラメーターのプロパティを編集するには、[Edit WLM] を選択します。次のスクリー
ンショットに示すように、[WLM] タブが開きます。
5.
キュー設定を変更するには、次の 1 つ以上の操作を行います:
• キューを作成するには、[Add Queue] を選択します。
• キューを変更するには、テーブルのプロパティ値を変更します。
• キューの順序を変更するには、テーブル内の [上] および [下] の矢印ボタンを選択します。
• キューを削除するには、テーブル内にあるキューの行の [Delete] ボタンを選択します。
6.
このパラメーターグループに関連付けられた任意のクラスターに WLM プロパティの変更を適用
するタイミングを指定するには、次のいずれかのオプションを選択します:
• 関連付けられたクラスターに次の再起動後に変更を適用するには、[After cluster reboot] を選択
します。
• 関連付けられたクラスターにすぐに変更を適用するには、[Immediately] を選択します。
Note
一部の変更では、この設定に関係なくクラスターの再起動が必要となります。詳細に
ついては、「WLM の動的プロパティと静的プロパティ (p. 54)」を参照してくださ
い。
7.
[Save] を選択します。
API Version 2012-12-01
62
Amazon Redshift 管理ガイド
パラメーターグループを削除する
パラメーターグループを削除する
パラメーターグループが必要なくなり、どのクラスターにも関連付けられていない場合は、削除でき
ます。カスタムパラメーターグループのみを削除できます。
パラメーターグループを削除するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Navigation] ペインで、[Parameter Groups] を選択します。
3.
削除するパラメーターグループの行を選択してから、[Delete] を選択します。
Note
デフォルトのパラメーターグループを削除することはできません。
4.
[Delete Cluster Parameter Groups] ダイアログボックスで [Continue] を選択します。
パラメーターグループとクラスターを関連付ける
クラスターを起動する場合、パラメーターグループに関連付ける必要があります。パラメーターグ
ループを後で変更する場合は、クラスターを変更し、別のパラメーターグループを選択します。詳細
については、「クラスターを作成するには (p. 16)」および「クラスターを変更するには (p. 24)」を参
照してください。
AWS SDK for Java を使用したパラメーターグ
ループの管理
この例では、パラメーターグループに関連する以下のタスクについて説明します。
• パラメーターグループを作成する
• パラメーターグループを変更する
• パラメーターグループとクラスターを関連付ける
• パラメーターグループに関する情報を取得する
この例では、新規パラメーターグループ parametergroup1 を作成し、以下の更新を実行します。
• パラメーター extra_float_digits を、デフォルト値の 0 から 2 に変更します。
• 既存のワークロード管理構成 (wlm_json_configuration パラメーター) を、デフォルトのキュー
の他に 1 つのキューを定義する以下の JSON と置き換えます。
API Version 2012-12-01
63
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. 148)」を参照してください。コードを更新し、クラスター識別子を指定する必要がありま
す。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.*;
public class CreateAndModifyClusterParameterGroup {
API Version 2012-12-01
64
Amazon Redshift 管理ガイド
AWS SDK for Java を使用し
たパラメーターグループの管理
public static
public static
public static
identifier***";
public static
AmazonRedshiftClient client;
String clusterParameterGroupName = "parametergroup1";
String clusterIdentifier = "***provide cluster
String parameterGroupFamily = "redshift-1.0";
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
CreateAndModifyClusterParameterGroup.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
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")
.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);
API Version 2012-12-01
65
Amazon Redshift 管理ガイド
AWS SDK for Java を使用し
たパラメーターグループの管理
}
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);
API Version 2012-12-01
66
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を
使用したパラメーターグループの管理
for (Parameter parameter : result.getParameters()) {
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());
}
}
}
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
API Version 2012-12-01
67
Amazon Redshift 管理ガイド
概要
Amazon Redshift スナップショット
トピック
• 概要 (p. 68)
• コンソールを使用したスナップショットの管理 (p. 75)
• AWS SDK for Java を使用したスナップショットの管理 (p. 83)
• Amazon Redshift CLI および API を使用したスナップショットの管理 (p. 86)
概要
スナップショットはクラスターのポイントインタイムバックアップです。スナップショットには、自
動と手動の 2 つのタイプがあります。Amazon Redshift は、暗号化された Secure Sockets Layer
(SSL) 接続を使用して、これらのスナップショットを Amazon S3 の内部に保存できます。スナップ
ショットから復元する場合は、Amazon Redshift で新しいクラスターを作成し、指定したスナップ
ショットからデータをインポートします。
スナップショットから復元すると、Amazon Redshift は新しいクラスターを作成し、すべてのデータ
をロードする前に新しいクラスターを使用できるようにするので、すぐに新しいクラスターのクエリ
を開始できます。 クラスターは、アクティブなクエリに応じてスナップショットからデータをオンデ
マンドでストリーミングし、次に残りのデータをバックグラウンドでロードします。
Amazon Redshift は、定期的にスナップショットを作成し、前回のスナップショット以降にクラス
ターに加えられた差分変更を追跡します。Amazon Redshift には、スナップショットからクラスター
を復元するために必要なすべてのデータが保持されます。
スナップショットの詳細を AWS マネジメントコンソール に表示することで、スナップショッ
トの進行状況をモニタリングできます。 または、CLI の describe-cluster-snapshots または
DescribeClusterSnapshots API アクションを呼び出すことでもモニタリングできます。 これにより、
進行中のスナップショットについて、差分スナップショットのサイズ、転送速度、経過時間、および
推定残り時間などの情報が表示されます。
Amazon Redshift では、お使いのクラスターのストレージ容量に等しい空きストレージをスナップ
ショット用に提供しており、これはそのクラスターが削除されるまで有効です。無料スナップショッ
トストレージ制限に達した場合、追加のストレージには通常料金が請求されます。このため、自動ス
ナップショットを保持する必要がある日数を評価し、それに応じて保持期間を設定して、不要になっ
た手動スナップショットは削除してください。料金表については、Amazon Redshift の製品詳細ペー
ジを参照してください。
API Version 2012-12-01
68
Amazon Redshift 管理ガイド
自動スナップショット
自動スナップショット
自動スナップショットがクラスターに対して有効になると、Amazon Redshift が定期的に、通常は 8
時間ごとまたはデータの変更 5 GB ごとに、そのクラスターのスナップショットを作成します。 自
動スナップショットは、クラスターを作成するときデフォルトで有効になります。これらのスナッ
プショットは、保持期間の終了時に削除されます。デフォルトの保持期間は 1 日ですが、Amazon
Redshift コンソールを使用するか、Amazon Redshift API を使用してプログラムにより変更できま
す。
自動スナップショットを無効にするには、保持期間を 0 に設定します。自動スナップショットを無効
にした場合、Amazon Redshift はスナップショットの取得を停止し、クラスターの既存の自動スナッ
プショットを削除します。
自動スナップショットを削除できるのは Amazon Redshift だけであり、これを手動で削除することは
できません。自動スナップショットは、保存期間が終了した場合、自動スナップショットを無効にし
た場合、またはクラスターを削除した場合に、Amazon Redshift によって削除されます。自動スナッ
プショットをもっと長い期間保持する場合は、そのコピーを手動スナップショットとして作成しま
す。自動スナップショットは、保持期間が終わるまで保持されますが、対応する手動スナップショッ
トは手動で削除するまで保持されます。
手動スナップショット
自動スナップショットを有効にしたかどうかに関係なく、いつでも好きなときに手動スナップショッ
トを取得できます。手動スナップショットが Amazon Redshift によって自動的に削除されることはあ
りません。手動スナップショットは、クラスターを削除した後も保持されます。
手動スナップショットにはストレージ料金が発生するので、不要になったスナップショットについて
は手動で削除することが重要です。手動スナップショットを削除した場合、そのスナップショットを
参照する新しい操作を開始することはできません。ただし、復元操作が進行中である場合、その復元
操作は完了するまで実行されます。
Amazon Redshift には、作成できる手動スナップショットの合計数を制限するクォータがあります。
このクォータは AWS アカウントごと、リージョンごとにあります。デフォルトクォータは「AWS
サービス制限」に示されています。
スナップショットのテーブルを除く
デフォルトでは、スナップショットにすべてのユーザー定義の永続テーブルが含まれます。 ステー
ジングテーブルなど、テーブルをバックアップする必要のない場合は、スナップショットの作成やス
ナップショットからの復元にかかる時間を大幅に短縮できます。 さらに、バックアップしないテーブ
ルを使用して、Amazon S3 のストレージ領域を節約することができます。 バックアップしないテー
ブルを作成するには、テーブルの作成時に BACKUP NO のパラメーターを含めてください。 詳細に
ついては、Amazon Redshift Database Developer Guide の、「CREATE TABLE」および「CREATE
TABLE AS」を参照してください。
別のリージョンにスナップショットをコピーする
クラスターのスナップショット (自動または手動) を自動的に別のリージョンにコピーするように
Amazon Redshift を設定できます。スナップショットがクラスターのプライマリリージョンで作成さ
れると、セカンダリリージョンにコピーされます。これらは、それぞれソースリージョンおよびコ
ピー先リージョンと呼ばれます。別のリージョンにスナップショットのコピーは保存することで、
プライマリリージョンに影響が及んだ場合に最新のデータからクラスターを復元できるようになりま
す。一度に 1 つのコピー先リージョンにのみスナップショットをコピーするようにクラスターを設定
できます。Amazon Redshift リージョンのリストについては、アマゾン ウェブ サービス全般のリファ
レンス の「リージョンとエンドポイント」を参照してください。
API Version 2012-12-01
69
Amazon Redshift 管理ガイド
スナップショットからのクラスターの復元
Amazon Redshift が別のリージョンに自動的にコピーできるようにするには、スナップショットのコ
ピー先リージョンを指定します。自動スナップショットの場合、コピー先リージョンに保持する保
持期間も指定できます。自動スナップショットがコピー先リージョンにコピーされ、保有期間に到達
すると、スナップショット使用率を低く抑えるため、コピー先リージョンから削除されます。自動ス
ナップショットをコピー先リージョンに短い期間または長い期間保持する必要があるばあいは、この
保持期間を変更できます。
コピー先リージョンにコピーされる自動スナップショットに対して設定する期間は、ソースリージョ
ンの自動スナップショットの保存期間とは異なります。コピーされたスナップショットのデフォルト
の保持期間は 7 日です。その 7 日間は、自動スナップショットにのみ適用されます。手動スナップ
ショットは、ソースリージョンでもコピー先リージョンでも保持期間の影響を受けず、手動で削除す
るまで残ります。
クラスターの自動スナップショットコピーはいつでも無効にできます。この機能を無効にすると、ス
ナップショットがソースリージョンからコピー先リージョンにコピーされなくなります。コピー先
リージョンにコピーされら自動スナップショットは、手動スナップショットコピーを作成しない限
り、保持期間の制限に達すると削除されます。これらの手動スナップショットと、コピー先リージョ
ンからコピーされた手動スナップショットは、手動で削除するまでコピー先リージョンに保持されま
す。
スナップショットをコピーするコピー先リージョンを変更する場合、まずこの自動コピー機能を無効
にして再度有効にした後、新しいコピー先リージョンを指定する必要があります。
リージョンをまたがってスナップショットをコピーすると、データ転送料金が発生します。スナップ
ショットがコピー先リージョンにコピーされると、アクティブになり、復元目的で利用できるように
なります。
AWS KMS で暗号化されたクラスターのスナップショットを別のリージョンにコピーする場合、コ
ピー先のリージョンで AWS KMS カスタマーマスターキー (CMK) を使用する Amazon Redshift の許
可を作成する必要があります。その場合、コピー元リージョンでスナップショットのコピーを有効に
するときに、その許可を選択する必要があります。スナップショットコピー許可の設定に関する詳細
については、「別のリージョンに AWS KMS 暗号化スナップショットコピーする (p. 89)」を参照
してください。
スナップショットからのクラスターの復元
スナップショットには、クラスター上で動作しているデータベースからのデータと、クラスターに
関する情報 (ノード数、ノートのタイプ、マスターユーザー名など) が含まれます。スナップショッ
トからクラスターを復元する必要がある場合は、Amazon Redshift でクラスター情報を使用して新し
いクラスターを作成し、スナップショットデータからすべてのデータベースを復元します。Amazon
Redshift がスナップショットから作成した新しいクラスターの設定 (ノード数やノードのタイプなど)
は、スナップショットが取得された元のクラスターの設定と同じです。クラスターが復元される場所
は、リクエスト時に別のアベイラビリティーゾーンを指定しない限り、同じリージョンおよびアベイ
ラビリティーゾーンとなります。
DescribeClusters API アクションを呼び出すか、AWS マネジメントコンソールでクラスターの詳細
を表示することにより、復元の進行状況をモニタリングできます。これにより、進行中の復元につい
て、スナップショットデータのサイズ、転送速度、経過時間、および推定残り時間などの情報が表示
されます。これらのメトリクスの説明については、「RestoreStatus」を参照してください。
スナップショットを使用して、アクティブクラスターを前の状態に切り替えることはできません。
Note
新しいクラスターにスナップショットを復元する場合、別の値を指定しない限り、デフォル
トのセキュリティグループおよびパラメーターグループが使用されます。
API Version 2012-12-01
70
Amazon Redshift 管理ガイド
スナップショットからのテーブルの復元
スナップショットからのテーブルの復元
Note
エンジンバージョン 1.0.1036 以降を実行しているクラスターで作成されたクラスタースナッ
プショットからのみ、テーブルを復元できます。Amazon Redshift は 2016 年 3 月 10 日 よ
り、エンジンバージョン 1.0.1036 にクラスターをアップグレードしました。コンソールを使
用してクラスターのバージョン番号を確認するには、クラスターの [Cluster Properties] を表
示します。describe-clusters CLI コマンドまたは DescribeClusters API アクションを
使用して、クラスターのバージョン番号を取得することもできます。詳細については、「ク
ラスター構成に関する情報の取得 (p. 29)」を参照してください。
クラスター全体を復元する代わりに、スナップショットから単一のテーブルを復元できます。スナッ
プショットから単一のテーブルを復元する場合、ソースのスナップショット、データベース、スキー
マ、テーブル名、ターゲットクラスター、スキーマ、および復元されるテーブル用の新しいテーブル
名を指定します。
新しいテーブル名を、既存のテーブルの名前にすることはできません。既存のテーブルを、スナッ
プショットから復元されるテーブルに置き換えるには、スナップショットからテーブルを復元する前
に、既存のテーブルの名前を変更するか、削除します。
ターゲットテーブルは、ソーステーブルの列の定義、テーブル属性、および外部キーを除く列の属性
を使って作成されます。依存関係による競合を回避するため、ターゲットテーブルはソーステーブ
ルから外部キーを継承しません。ソーステーブルで付与されたビューやアクセス権限などの依存関係
は、ターゲットテーブルに適用されません。
ソーステーブルの所有者が存在するなら、そのユーザーは指定されたデータベースおよびスキーマの
関係において所有者となるのに十分なアクセス許可がある場合にのみ、復元されたテーブルの所有者
となります。 それ以外の場合、復元されたテーブルは、クラスターの起動時に作成したマスターユー
ザーが所有します。
復元されたテーブルは、バックアップが作成された時の状態に戻されます。 これには、Redshift の直
列化分離への準拠により定義されるトランザクションの可視性のルールが含まれます。つまり、バッ
クアップ後に開始した実行中のトランザクションにデータがすぐに見えるようになるということで
す。
スナップショットからのテーブルの復元には、以下の制限があります。
• テーブルは、実行中のアクティブなクラスターのみに復元でき、そのクラスターから作成されたス
ナップショットのみから復元できます。
• 一度に復元できるのは 1 つのテーブルのみです。
• クラスターのサイズを変更する前に作成されたクラスタースナップショットからテーブルを復元す
ることはできません。
Amazon Redshift コンソールを使用してスナップショットからテーブルを復元するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Clusters] を選択します。
3.
[Table restore] タブを選択します。
API Version 2012-12-01
71
Amazon Redshift 管理ガイド
スナップショットからのテーブルの復元
スナップショットからテーブルを復元する
4.
[Restore table] を選択します。
5.
[Table restore] パネルで、復元元のクラスタースナップショットを含む日付範囲を選択します。
たとえば、先週に作成したクラスタースナップショットの場合は [Last 1 Week] を選択します。
6.
以下の内容を追加します。
• [From snapshot] – 復元元のテーブルを含むクラスタースナップショットの識別子。
• [Source table to restore from]
• [Database] – 復元元のテーブルを含むクラスタースナップショットからのデータベースの名
前。
• [Schema] – 復元元のテーブルを含むクラスタースナップショットからのデータベーススキー
マの名前。
• [Table] – クラスタースナップショットの復元元のテーブルの名前。
• 復元先のターゲットテーブル
• [Database] – テーブルの復元先となるターゲットクラスターのデータベースの名前。
• [Schema] – テーブルの復元先となるターゲットクラスターのデータベーススキーマの名前。
• [New table name] – 復元されるテーブルの新しい名前。この名前をターゲットデータベース
の既存のテーブルの名前とすることはできません。
[Table restore] パネル
API Version 2012-12-01
72
Amazon Redshift 管理ガイド
スナップショットの共有
7.
[Restore] を選択してテーブルを復元します。
クラスタースナップショットから少なくとも 1 つのテーブルを復元した場合、前のテーブル復元リク
エストの値を、新しいテーブル復元リクエストにコピーできます。この方法を使用すれば、いくつか
のテーブル復元オペレーションで同じになる値を再入力する必要がありません。
前のテーブル復元リクエストから新しいテーブル復元オペレーションにコピーするには:
1.
[Table restore] タブで、既存のテーブルの復元ステータスを選択します。
テーブルの復元ステータスを新しいテーブル復元リクエストにコピーします。
2.
[Copy restore request] を選択します。
Example 例: AWS CLI を使用してスナップショットからテーブルを復元する
次の例では、restore-table-from-cluster-snapshot AWS CLI コマンドを使用して、mysnapshot-id の sample-database スキーマから my-source-table テーブルを復元します。例で
は、新しいテーブルの名前 my-new-table を使用して、mycluster-example クラスターにスナッ
プショットを復元します。
aws redshift restore-table-from-cluster-snapshot --cluster-identifier
mycluster-example
--new-table-name my-newtable
--snapshot-identifier mysnapshot-id
--source-database-name
sample-database
--source-table-name mysource-table
スナップショットの共有
1 つの既存の手動スナップショットについては、そのスナップショットへのアクセスを許可すること
により、他の AWS 顧客アカウントのユーザーと共有することができます。各スナップショットは最
大 20 個、各 AWS Key Management Service (AWS KMS) キーは最大 100 個まで許可できます。つま
り、1 つの KMS キーで暗号化された 10 個のスナップショットがある場合、10 個の AWS アカウント
で、各スナップショットを復元することを許可できます。または、最大 100 個のアカウントのその他
の組み合わせや、スナップショットごとに 20 アカウントを超えないその他の組み合わせを許可でき
ます。アクセス権限が付与されたいずれかのアカウントのユーザーとしてログインされた担当者は、
スナップショットを表示することも、当該アカウントでスナップショットを復元して新しい Amazon
Redshift クラスターを作成することもできます。例えば、実稼働用およびテスト用に個別の AWS 顧
客アカウントを使用する場合、ユーザーは本番用アカウントを使用してログオンし、テスト用アカウ
ントのユーザーとスナップショットを共有することができます。テスト用アカウントのユーザーとし
API Version 2012-12-01
73
Amazon Redshift 管理ガイド
スナップショットの共有
てログオンされた担当者は、テストまたは診断作業のためのテスト用アカウントによって所有される
新しいクラスターを作成するためにスナップショットを復元することができます。
手動スナップショットは、それが作成された AWS 顧客アカウントによって永続的に所有されます。
スナップショットを所有するアカウントのユーザーのみが、スナップショットへのアクセスを他のア
カウントに許可したり、アクセス許可を取り消したりすることができます。アクセス権限が付与され
たアカウントのユーザーは、そのアカウントと共有されているスナップショットの表示または復元が
行えるだけで、共有されているスナップショットのコピーや削除を行うことはできません。アクセス
許可はスナップショットの所有者がそれを取り消すまで有効です。アクセス許可が取り消されると、
前にアクセス権限を付与されたユーザーはスナップショットの可視性を失い、スナップショットを参
照する新しいアクションを起動できなくなります。アクセス権限が取り消される際、アカウントがス
ナップショットを復元するプロセスの途中にあった場合、復元は完了するまで実行されます。スナッ
プショットにアクティブ認可がある限り、そのスナップショットを削除することはできません。ま
ず、すべてのアクセス許可を取り消す必要があります。
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:*/mysnapshot20130829"
]
}
]
}
• スナップショットが共有されている AWS アカウントの IAM ユーザーは、そのスナップショットで
アクションを実行することを許可する IAM ポリシーを持っていない限り、そうしたアクションを実
行することはできません。
• スナップショットを一覧表示するか、または表示するためには、前述ユーザーは
DescribeClusterSnapshots アクションを許可する IAM ポリシーを持っている必要がありま
す。コードの例を以下に示します。
{
"Version": "2012-10-17",
"Statement":[
API Version 2012-12-01
74
Amazon Redshift 管理ガイド
コンソールを使用したスナップショットの管理
{
"Effect":"Allow",
"Action":[
"redshift:DescribeClusterSnapshots"
],
"Resource":[
"*"
]
}
]
}
• スナップショットを復元するには、ユーザーは、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:*/mysnapshot20130829",
"arn:aws:redshift:us-east-1:219876543210:cluster:from-anotheraccount"
]
}
]
}
• スナップショットへのアクセスが AWS アカウントによって取り消されると、そのアカウントの
ユーザーは、前に共有していたスナップショットリソースでのアクションを許可する IAM ポリ
シーを持っていたとしても、スナップショットにアクセスできなくなります。
コンソールを使用したスナップショットの管理
Amazon Redshift は、データの自動的な差分スナップショットを定期的に取得し、Amazon S3 に保存
します。さらに、いつでも好きなときにデータの手動スナップショットを取得することもできます。
このセクションでは、Amazon Redshift コンソールからスナップショットを管理する方法について説
明します。スナップショットの詳細については、Amazon Redshift スナップショット (p. 68) を参
照してください。
Amazon Redshift コンソールでのスナップショットタスクはすべてスナップショットリストから開始
します。スナップショットのタイプ、時間範囲、およびスナップショットに関連付けられたクラス
ターを使用して、リストをフィルタリングすることができます。既存のスナップショットを選択する
と、以下の例に示すように、スナップショットの詳細がリスト内にインライン形式で表示されます。
スナップショットを操作する場合に使用できるオプションは、選択するスナップショットのタイプに
応じて異なります。
API Version 2012-12-01
75
Amazon Redshift 管理ガイド
手動スナップショットの作成
手動スナップショットの作成
クラスターの手動スナップショットは、以下に示すスナップショットリストから作成できます。ある
いは、クラスター設定ペインでクラスターのスナップショットを取得することもできます。詳細につ
いては、「クラスターのスナップショットの作成 (p. 31)」を参照してください。
手動スナップショットを作成する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Snapshots] をクリックします。
3.
[Create Snapshot] をクリックします。
4.
[Create Snapshot] ダイアログボックスで、次の操作を行います。
5.
a.
[Cluster Identifier] ボックスで、スナップショットを作成するクラスターをクリックします。
b.
[Snapshot Identifier] ボックスに、スナップショットの名前を入力します。
[Create] をクリックします。
スナップショットの作成が完了するまで時間がかかる場合があります。新しいスナッ
プショットとその現在の状態がスナップショットのリストに表示されます。以下の例
は、examplecluster-manual-02-13-13 が作成過程にあることを示しています。
API Version 2012-12-01
76
Amazon Redshift 管理ガイド
手動スナップショットの削除
手動スナップショットの削除
手動スナップショットを削除する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Snapshots] をクリックします。
3.
削除するスナップショットを見つけるためにリストをフィルタリングする必要がある場合は、以
下に示す操作のいずれか、またはすべてを実行します。
• [Time Range] ボックスで、検索範囲を絞るための時間範囲をクリックします。
4.
• [Type] ボックスの [manual] をクリックします。
• [Cluster] ボックスで、削除するスナップショットが関連付けられているクラスターをクリック
します。
スナップショットリストで、削除するスナップショットが含まれている行をクリックします。
5.
[Delete Manual Snapshot] をクリックします。
6.
[Delete Manual Snapshot] ダイアログボックスの [Delete] をクリックします。
自動スナップショットのコピー
自動スナップショットを無効にした場合、またはクラスターを削除した場合、自動スナップショット
はその保持期間が過ぎると自動的に削除されます。自動スナップショットをもっと長い期間保持した
API Version 2012-12-01
77
Amazon Redshift 管理ガイド
スナップショットからのクラスターの復元
い場合は、それを手動スナップショットにコピーします。手動スナップショットが Amazon Redshift
によって自動的に削除されることはないので、このコピーは必要に応じて保管しておくことができま
す。
自動スナップショットをコピーする方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Snapshots] をクリックします。
3.
コピーするスナップショットを見つけるためにリストをフィルタリングする必要がある場合は、
以下に示す操作のいずれか、またはすべてを実行します。
• [Time Range] ボックスで、検索範囲を絞るための時間範囲をクリックします。
• [Type] ボックスの [automated] をクリックします。
• [Cluster] ボックスで、コピーするスナップショットが関連付けられているクラスターをクリッ
クします。
4.
スナップショットリストで、コピーするスナップショットの行をクリックします。
5.
[Copy Automated Snapshot] をクリックします。
6.
[Copy Automated Snapshot] ダイアログボックスの [Snapshot Identifier] ボックスにスナップ
ショットのコピーの名前を入力します。
7.
[Copy] をクリックします。
スナップショットからのクラスターの復元
クラスターをスナップショットから復元する場合は、Amazon Redshift によって新しいクラスターが
作成され、その新しいクラスターにスナップショットのすべてのデータが含められます。
スナップショットからクラスターを復元する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
API Version 2012-12-01
78
Amazon Redshift 管理ガイド
スナップショットからのクラスターの復元
2.
ナビゲーションペインで、[Snapshots] をクリックします。
3.
使用するスナップショットを見つけるためにリストをフィルタリングする必要がある場合は、以
下に示す操作のいずれか、またはすべてを実行します。
• [Time Range] ボックスで、検索範囲を絞るための時間範囲をクリックします。
• [Type] ボックスの [manual] または [automated] をクリックします。
• [Cluster] ボックスで、復元するスナップショットが関連付けられているクラスターをクリック
します。
4.
スナップショットリストで、使用するスナップショットが含まれている行をクリックします。
5.
[Restore From Snapshot] をクリックします。
6.
[Restore Cluster from Snapshot] ダイアログボックスで、以下の操作を行います。
a.
[Cluster Identifier] ボックスに、復元するクラスターのクラスター識別子を入力します。
クラスター識別子は、次の条件を満たしている必要があります。
• 1~255 文字の英数字またはハイフンを使用する必要があります。
• 英字は小文字を使用する必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
• AWS アカウントのすべてのクラスター間で一意である必要があります。
b.
[Port] ボックスでは、スナップショットからのポートをそのまま使用するか、またはその値
を適宜変更します。
c.
必要に応じて [Allow Version Upgrade] を選択します。
d.
[Cluster Subnet Group] で、クラスターを復元するサブネットグループを選択します。
このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示さ
れます。
e.
[Publicly Accessible] で、インターネットに対するパブリック接続を通じてアクセスできる
パブリック IP アドレスをクラスターに指定する場合は [Yes] を選択し、VPC 内からのみ
アクセスできるプライベート IP アドレスをクラスターに指定する場合は [No] を選択しま
す。AWS アカウントで EC2-Classic クラスターを作成できる場合、デフォルトは [No] にな
り、それ以外の場合、デフォルトは [Yes] になります。
このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示さ
れます。
f.
既に設定した Elastic IP (EIP) アドレスを選択する場合は、[Choose a Public IP Address] で、
[Yes] を選択します。それ以外の場合、Amazon Redshift にインスタンス の EIP を作成させ
るために、[No] を選択します。
このオプションは、クラスターを EC2-VPC プラットフォームに復元する場合にのみ表示さ
れます。
g.
[Elastic IP ] で、VPC の外からクラスターに接続するために使用する EIP を選択します。
API Version 2012-12-01
79
Amazon Redshift 管理ガイド
スナップショットからのクラスターの復元
このオプションは、EC2-VPC プラットフォームにクラスターを復元するために、[Choose a
Public IP Address] で [Choose a Public IP Address] を選択した場合にのみ表示されます。
h.
[Availability Zone] ボックスでは、スナップショットからのアベイラビリティーゾーンをその
まま使用するか、その値を適宜変更します。
i.
[ Cluster Parameter Group] で、クラスターに関連付けるパラメーターグループを選択しま
す。
j.
[Cluster Security Groups] または [VPC Security Groups] で、クラスターに関連付けるセキュ
リティグループを選択します。ここに表示されるセキュリティグループのタイプは、クラス
ターを EC2-Classic または EC2-VPC プラットフォームのどちらに復元するかによって異な
ります。
クラスターセキュリティグループまたは VPC セキュリティグループを選択するオプション
は、クラスターを EC2-Classic プラットフォームまたは EC2-VPC プラットフォームのどち
らに復元するかによって異なります。
以下に、EC2-VPC プラットフォームを使用してクラスターにスナップショットを復元する例を示
します。
以下に、EC2-Classic プラットフォームを使用してクラスターにスナップショットを復元する例
を示します。
7.
[Restore] をクリックします。
API Version 2012-12-01
80
Amazon Redshift 管理ガイド
クラスターのスナップショットの共有
クラスターのスナップショットの共有
自分が所有する手動スナップショットへのアクセスを他のユーザーに許可することができます。その
アクセス許可については後で不要になった場合に取り消すことができます。
クラスターのスナップショットを共有する方法
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Snapshots] をクリックします。
3.
共有するスナップショットを見つけるためにリストをフィルタリングする必要がある場合は、以
下に示す操作のいずれか、またはすべてを実行します。
• [Time Range] ボックスで、検索範囲を絞るための時間範囲をクリックします。
• [Cluster] ボックスで、共有するスナップショットが関連付けられているクラスターをクリック
します。
4.
スナップショットリストで、使用するスナップショットが含まれている行をクリックします。
5.
[Manage Access ] をクリックします。
6.
[Manage Snapshot Access] ダイアログボックスで、スナップショットにアクセスする権限をユー
ザーに与えることも、前に与えたアクセス権限を取り消すこともできます。
• スナップショットにアクセスする権限をユーザーに与えるには、対象ユーザーの 12 桁の AWS
アカウント ID (ダッシュを除く) をボックスに入力し、[Add Account] をクリックします。
• ユーザーのアクセス権限を取り消すには、ユーザーの AWS アカウント ID の横にある [X] をク
リックします。
7.
[Save] をクリックして変更内容を保存するか、[Cancel] をクリックして変更内容を元に戻しま
す。
クロスリージョンスナップショットのコピーを設定
する暗号化されていないクラスター
クラスターのスナップショットを別のリージョンにコピーするように Amazon Redshift を設定でき
ます。クロスリージョンスナップショットのコピーを設定するには、このコピー機能を有効にし、ス
ナップショットをコピーする場所と、コピーされた自動スナップショットをコピー先リージョンに保
持する期間を設定する必要があります。
API Version 2012-12-01
81
Amazon Redshift 管理ガイド
AWS KMS 暗号化クラスターのクロス
リージョンスナップショットコピーの設定
暗号化されていないクラスターのクロスリージョンスナップショットのコピーを設定するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
[Backup] をクリックし、[Configure Cross Region Snapshots] をクリックします。
4.
[Configure Cross-Region Snapshots] ダイアログボックスの [Copy Snapshots] で [Yes] を選択し
ます。
5.
[Destination Region] で、スナップショットをコピーするリージョンを選択します。
6.
[Retention Period (days)] で、自動スナップショットが削除される前にコピー先のリージョンに保
持される日数を選択します。
7.
[Save] をクリックします。
AWS KMS 暗号化クラスターのクロスリージョンス
ナップショットコピーの設定
Amazon Redshift クラスターを起動するとき、AWS Key Management Service (AWS KMS) のマ
スターキーを使用して暗号化するように選択できます。AWS KMS キーは、リージョンに固有で
す。AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを有効化するには、コ
ピー先のリージョンでマスターキーのスナップショットコピー権限を設定し、コピー先のリージョ
ンで Amazon Redshift が暗号化オペレーションを実行できるようにする必要があります。次の手順
は、AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを有効化するプロセ
スを示しています。Amazon Redshift およびスナップショットコピー権限での暗号化の詳細について
は、別のリージョンに AWS KMS 暗号化スナップショットコピーする (p. 89) を参照してくださ
い。
AWS KMS 暗号化クラスターのクロスリージョンスナップショットコピーを設定するには
1.
https://console.aws.amazon.com/redshift/ にある Amazon Redshift コンソールを開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
[Backup] をクリックし、[Configure Cross Region Snapshots] をクリックします。
4.
[Configure Cross-Region Snapshots] ダイアログボックスの [Copy Snapshots] で [Yes] を選択し
ます。
5.
[Destination Region] で、スナップショットをコピーするリージョンを選択します。
6.
[Retention Period (days)] で、自動スナップショットが削除される前にコピー先のリージョンに保
持される日数を選択します。
7.
[Existing Snapshot Copy Grant] では、次のいずれかを実行します。
8.
a.
[No] を選択し、新しいスナップショットコピー権限を作成します。[KMS Key] では、権限
を作成する AWS KMS キーを選択した後、[Snapshot Copy Grant Name] に名前を入力しま
す。
b.
[Yes] を選択し、コピー先のリージョンから既存のスナップショットコピー権限を選択しま
す。その後、[Snapshot Copy Grant] から権限を選択します。
[Save] をクリックします。
クロスリージョンスナップショットのコピーの保持
期間を修正する
クロスリージョンスナップショットのコピーを設定するときは、設定を変更できます。新しい日数を
選択し、変更を保存することにより、保持期間を簡単に変更できます。
API Version 2012-12-01
82
Amazon Redshift 管理ガイド
クロスリージョンスナップショットのコピーを無効にする
Caution
クロスリージョンスナップショットのコピーが設定されると、コピー先リージョンを変更す
ることはできません。別のリージョンにスナップショットをコピーする場合、まずクロス
リージョンスナップショットのコピーを無効にしてから、新しいコピー先リージョンおよび
保持期間で再度有効にします。クロスリージョンスナップショットのコピーを無効にすると
コピーされた自動スナップショットが削除されるため、クロスリージョンスナップショット
のコピーを無効にする前に、保持するスナップショットがあるかどうかを決定し、それらを
手動スナップショットにコピーしてください。
コピー先クラスターにコピーされたスナップショットの保持期間を変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
[Backup] をクリックし、[Configure Cross Region Snapshots] をクリックします。
4.
[Retention Period] ボックスで、コピー先リージョンに自動スナップショットを保持する新しい日
数を選択します。
コピー先リージョンにスナップショットを保持する日数として短い日数を選択した場合、新しい
保持期間より前に作成された自動スナップショットはすべて削除されます。コピー先リージョン
でスナップショットを保持する日数として長い日数を選択した場合、古い値と新しい値の差分だ
け既存の自動スナップショットの保持期間が延長されます。
5.
[Save Configuration] をクリックします。
クロスリージョンスナップショットのコピーを無効
にする
Amazon Redshift が今後はコピー先リージョンにスナップショットをコピーしないようにする場合
は、クラスターのクロスリージョンスナップショットを無効にできます。
クラスターのクロスリージョンスナップショットを無効にするには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
[Backup] をクリックし、[Configure Cross Region Snapshots] をクリックして [Configure Cross
Region Snapshots] ダイアログ ボックスを開きます。
4.
[Enable Cross Region Snapshots] ボックスで、[No] をクリックします。
5.
[Save Configuration] をクリックします。
AWS SDK for Java を使用したスナップショット
の管理
以下の例では、スナップショットに関係する一般的な操作を示します。
• クラスターの手動クラスタースナップショットの作成.
• クラスターのすべてのスナップショットに関する情報の表示.
• クラスターの手動スナップショットの削除.
API Version 2012-12-01
83
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したスナップショットの管理
この例では、クラスターのスナップショットが開始されます。スナップショットが正常に作成され
ると、新しいスナップショットよりも前に作成されていた、クラスターの手動スナップショットが
すべて削除されます。手動スナップショットの作成が開始されても、スナップショットはすぐに使
用可能になりません。したがって、この例では、describeClusterSnapshot メソッドを呼び出
すことで、ループを使用してスナップショットのステータスをポーリングします。開始後スナップ
ショットが使用できるようになるまでに通常は数分かかります。スナップショットの詳細について
は、Amazon Redshift スナップショット (p. 68) を参照してください。
以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実
行例 (p. 148)」を参照してください。コードを更新し、クラスター識別子を指定する必要がありま
す。
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import
import
import
import
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.CreateClusterSnapshotRequest;
com.amazonaws.services.redshift.model.DeleteClusterSnapshotRequest;
com.amazonaws.services.redshift.model.DescribeClusterSnapshotsRequest;
com.amazonaws.services.redshift.model.DescribeClusterSnapshotsResult;
com.amazonaws.services.redshift.model.Snapshot;
public class CreateAndDescribeSnapshot {
public static AmazonRedshiftClient client;
public static String clusterIdentifier = "***provide cluster
identifier***";
public static long sleepTime = 10;
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
CreateAndDescribeSnapshot.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
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) {
API Version 2012-12-01
84
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したスナップショットの管理
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)
.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 {
API Version 2012-12-01
85
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を
使用したスナップショットの管理
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;
}
}
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
• 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
API Version 2012-12-01
86
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を
使用したスナップショットの管理
Amazon Redshift スナップショットの詳細については、「Amazon Redshift スナップショッ
ト (p. 68)」を参照してください。
API Version 2012-12-01
87
Amazon Redshift 管理ガイド
Amazon Redshift での AWS KMS を
使用したデータベース暗号化について
Amazon Redshift データベース暗号
化
Amazon Redshift では、クラスターに対してデータベースの暗号化を有効にして、保管時のデータを
保護できます。クラスターに対して暗号化を有効にすると、クラスターとそのスナップショットの
データブロックとシステムメタデータが暗号化されます。
暗号化はクラスターのオプションの設定ですが、起動後に変更することはできません。暗号化を必要
とする場合は、クラスターの起動プロセス中に有効にする必要があります。暗号化されたクラスター
から暗号化されていないクラスターに移行する場合や、その逆を行う場合は、既存のクラスターから
データをアンロードしてから、選択した暗号化設定を適用した新しいクラスターに再ロードする必要
があります。
暗号化は Amazon Redshift ではオプションの設定ですが、機密データを含むクラスターに対しては
有効にすることをお勧めします。また、データに適用されるガイドラインやルールに応じて暗号化の
使用が必要になる場合があります。たとえば、Payment Card Industry Data Security Standard (PCI
DSS)、Sarbanes-Oxley Act (SOX)、Health Insurance Portability and Accountability Act (HIPAA) と
いった規制では、特定の種類のデータの取り扱いに関するガイドラインが規定されています。
Amazon Redshift では、暗号化キーの階層を使用してデータベースを暗号化します。AWS Key
Management Service (AWS KMS) またはハードウェアセキュリティモジュール (HSM) のいずれかを
使用して、この階層の最上位の暗号化キーを管理できます。Amazon Redshift で暗号化に使用するプ
ロセスはキーの管理方法によって異なります。
また、Amazon Redshift は自動的に AWS KMS に統合されますが、HSM には統合されません。HSM
を使用するときは、クライアントとサーバーの証明書を使用して、Amazon Redshift と HSM との間
で信頼された接続を設定する必要があります。
Amazon Redshift での AWS KMS を使用したデー
タベース暗号化について
Amazon Redshift によるキー管理用に AWS KMS を選択すると、4 階層の暗号化キーがあります。こ
れらのキーは、階層の最上位から順にマスターキー、クラスターの暗号化キー (CEK)、データベース
の暗号キー (DEK)、データ暗号化キーとなっています。
API Version 2012-12-01
88
Amazon Redshift 管理ガイド
別のリージョンに AWS KMS 暗
号化スナップショットコピーする
クラスターを起動すると、Amazon Redshift では、AWS アカウントが作成したか AWS KMS での使
用アクセス権限のあるカスタマーマスターキー (CMK) のリストが返されます。暗号化キーの階層でマ
スターキーとして使用する CMK を選択します。
Amazon Redshift の初期の設定では、スターキーとしてデフォルトのキーが選択されています。デ
フォルトのキーは AWS 管理のキーであり、AWS アカウントが Amazon Redshift 用に作成したもの
です。暗号化されたクラスターをリージョンで初めて起動してデフォルトのキーを選択すると、AWS
KMS でこのキーが作成されます。
デフォルトのキーを使用しない場合は、Amazon Redshift でクラスターを起動する前に、AWS KMS
でカスタマー管理の CMK を別途用意 (作成) する必要があります。カスタマー管理の CMK を作成す
ると、データの保護に使用する暗号化キーを作成、更新、無効化、アクセス制御定義、監査できる
など、より柔軟に取り扱うことができます。CMK の作成の詳細については、AWS Key Management
Service Developer Guide の「キーの作成」を参照してください。
別の AWS アカウントの AWS KMS キーを使用する場合は、そのキーの使用アクセス権限が必要であ
り、Amazon Redshift でその ARN を指定する必要があります。AWS KMS でのキーのアクセスの詳細
については、AWS Key Management Service Developer Guide の「キーへのアクセスの制御」を参照
してください。
マスターキーを選択した後、Amazon Redshift は AWS KMS に、データキーの生成と選択されたマス
ターキーでの暗号化をリクエストします。このデータキーは Amazon Redshift で CEK として使用さ
れます。AWS KMS は暗号化された CEK を Amazon Redshift にエクスポートします。その CEK はク
ラスターから別のネットワークのディスクに内部で保存され、同時に、CMK とその CEK の暗号化コ
ンテキストに対する権限も保存されます。暗号化された CEK のみが Amazon Redshift にエクスポー
トされます。CMK は AWS KMS に残ります。また、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. 16)」と「Amazon Redshift CLI および API を使用してクラスターを管理する (p. 35)」を参
照してください。
別のリージョンに AWS KMS 暗号化スナップショッ
トコピーする
AWS KMS キーは、リージョンに固有です。別のリージョンへの Amazon Redshift スナップショット
のコピーを有効にし、ソースクラスターとそのスナップショットが AWS KMS からのマスターキーを
使用して暗号化される場合は、ターゲットリージョンで Amazon Redshift に対してマスターキーの使
用権限を設定する必要があります。この権限により、Amazon Redshift はターゲットリージョンでス
ナップショットを暗号化できるようになります。リージョン間のスナップショットのコピーの詳細に
ついては、「別のリージョンにスナップショットをコピーする (p. 69)」を参照してください。
API Version 2012-12-01
89
Amazon Redshift 管理ガイド
Amazon Redshift でのハードウェアセキュ
リティモジュールを使用した暗号化について
Note
暗号化されたクラスターからのスナップショットのコピーを有効にし、マスターキーに AWS
KMS を使用する場合、クラスター名は暗号化コンテキストの一部になるため、クラスター
名を変更することはできません。クラスター名を変更するには、ソースリージョンでスナッ
プショットのコピーを無効にし、クラスター名を変更してから、再びスナップショットのコ
ピーを設定して有効にする必要があります。
スナップショットのコピー権限を設定するプロセスは、以下のとおりです。
1. ターゲットリージョンで、次の手順を実行してスナップショットのコピー権限を作成します。
• 使用する AWS KMS キーがまだなければ作成します。AWS KMS キーの作成の詳細について
は、AWS Key Management Service Developer Guide の「キーの作成」を参照してください。
• スナップショットのコピー権限の名前を指定します。この名前は AWS アカウントのリージョン
で一意であることが必要です。
• 作成する権限が適用される AWS KMS キーの ID を指定します。キー ID を指定しない場合は、こ
の権限はデフォルトのキーに適用されます。
2. ソースリージョンで、スナップショットのコピーを有効にし、ターゲットリージョンで作成したス
ナップショットのコピー権限の名前を指定します。
この事前のプロセスは、AWS CLI、Amazon Redshift API、または SDK を使用してスナップショッ
トのコピーを有効にする場合にのみ必要です。コンソールを使用する場合、Amazon Redshift では、
リージョン間のスナップショットのコピーを有効にするときに、権限の設定ワークフローがあり
ます。コンソールを使用して、AWS KMS で暗号化されたクラスター用にリージョン間のスナップ
ショットのコピーを設定する方法の詳細については、「AWS KMS 暗号化クラスターのクロスリー
ジョンスナップショットコピーの設定 (p. 82)」を参照してください。
スナップショットがターゲットリージョンにコピーされる前に、Amazon Redshift はソースリージョ
ンでマスターキーを使用してスナップショットを復号化し、Amazon Redshift が内部で管理している
ランダムに生成された RSA キーを使用して一時的に再暗号化します。その後、Amazon Redshift は
スナップショットを安全なチャンネル経由でターゲットリージョンにコピーし、内部で管理している
RSA キーを使用してスナップショットを復号化してから、ターゲットリージョンでマスターキーを使
用してスナップショットを再暗号化します。
AWS KMS 暗号化されたクラスター用にスナップショットのコピー権限を設定する方法の詳細につい
ては、「Amazon Redshift API および AWS CLI を使用して、AWS KMS 暗号化キーを使用するように
Amazon Redshift を設定する (p. 98)」を参照してください。
Amazon Redshift でのハードウェアセキュリティ
モジュールを使用した暗号化について
キー管理に AWS KMS を使用しない場合は、Amazon Redshift ではキー管理にハードウェアセキュリ
ティモジュール (HSM) を使用できます。HSM は、キー生成と管理を直接に制御するデバイスです。
キーの管理をアプリケーションとデータベースのレイヤから切り離すことで、より優れたセキュリ
ティを実現します。Amazon Redshift は、AWS CloudHSM とオンプレミスの HSM の両方のキー管理
方式をサポートします。AWS KMS の代わりに HSM を使用して暗号化キーを管理するときは、暗号
化プロセスが異なります。
HSM を使用するようにクラスターを設定すると、Amazon Redshift は HSM に、CEK 用のキーの生成
と保存をリクエストします。ただし、AWS KMS とは異なり、HSM は Amazon Redshift に CEK をエ
クスポートしません。代わりに、Amazon Redshift はクラスターで DEK をランダムに生成し、HSM
に DEK を渡して、DEK は CEK で暗号化されます。HSM は暗号化された DEK を Amazon Redshift
API Version 2012-12-01
90
Amazon Redshift 管理ガイド
Amazon Redshift と HSM との間の信頼された接続の設定
に返します。その DEK は、内部で保存されているランダムに生成されたマスターキーでさらに暗号化
され、クラスターとは別のネットワーク内のディスクに内部で保存されます。また、Amazon Redshift
は、DEK の復号化バージョンをクラスターのメモリにロードします。それにより、DEK を使用して
個々のデータブロックキーを暗号化および復号化できるようになります。
クラスターを再起動した場合、Amazon Redshift は、内部に保存したマスターキーを使用して、
内部で保存した DEK を復号化することで、その DEK を CEK で暗号化した状態に戻します。その
後、CEK で暗号化された DEK は HSM に渡され、復号化されて、Amazon Redshift に戻され、再びメ
モリにロードされて、個々のデータブロックキーに使用できるようになります。
Amazon Redshift と HSM との間の信頼された接続
の設定
クラスターキーの管理に HSM を使用するように選択した場合、Amazon Redshift と HSM の間に信頼
されたネットワークリンクを構成する必要があります。これを行うには、クライアント証明書とサー
バー証明書の設定が必要です。信頼された接続は、暗号化と復号化のオペレーション中に、HSM と
Amazon Redshift との間で暗号化キーを渡すために使用されます。
Amazon Redshift は、ランダムに生成されたプライベートキーとパブリックキーの組み合わせから、
パブリッククライアント証明書を作成します。これらは内部的に暗号化されて保管されます。ユー
ザーは、パブリッククライアント証明書を HSM にダウンロードして登録し、該当する HSM パーティ
ションに割り当てます。
ユーザーは、HSM の IP アドレス、HSM パーティションの名前、HSM パーティションのパスワー
ド、および内部マスターキーで暗号化された HSM サーバー証明書を、Amazon Redshift サービスに
伝達します。Amazon Redshift は設定プロセスを完了し、HSM に接続できることを確認します。接
続できない場合、クラスターは INCOMPATIBLE_HSM 状態に設定され、クラスターは作成されませ
ん。この場合、不完全なクラスターを削除してから、もう一度やり直す必要があります。
Important
別の HSM パーティションを使用するクラスターを変更する場合、Amazon Redshift は新しい
パーティションに接続できるか確認しますが、有効な暗号化キーがあるかは確認しません。
新しいパーティションを使用する前に、新しいパーティションのキーを複製する必要があり
ます。クラスターを再起動し、Amazon Redshift が有効なキーを見つけることができない場
合、再起動は失敗します。詳細については、Replicating Keys Across HSMs を参照してくだ
さい。
HSM を使用するように Amazon Redshift を設定する方法の詳細については、「Amazon Redshift
console を使用し、HSM を使用するように Amazon Redshift を設定する (p. 92)」と「Amazon
Redshift API および AWS CLI を使用し、HSM を使用するように Amazon Redshift を設定す
る (p. 99)」を参照してください。
初期設定の後で Amazon Redshift が HSM に接続できない場合、イベントが記録されます。これらの
イベントの詳細については、「Amazon Redshift イベント通知」を参照してください。
Amazon Redshift での暗号化キーの更新について
Amazon Redshift では、暗号化したクラスターの暗号化キーを更新することができます。キーの更新
プロセスを開始すると、Amazon Redshift は、指定されたクラスターとそのクラスターの自動または
手動スナップショット用の CEK を更新します。また、Amazon Redshift は指定されたクラスターの
DEK を更新しますが、スナップショットの DEK を更新することはできません。スナップショットの
DEK は、Amazon Simple Storage Service (Amazon S3) に内部で保存されている間、既存の DEK で
暗号化されているためです。
API Version 2012-12-01
91
Amazon Redshift 管理ガイド
コンソールを使用したデータベース暗号化の設定
更新の進行中、クラスターはその完了まで ROTATING_KEYS 状態に設定され、完了すると
AVAILABLE 状態に戻ります。Amazon Redshift は、キーの更新プロセスの間に、復号化と再暗号化の
処理を行います。
Note
ソースクラスターなしでスナップショットのキーを更新することはできません。クラスター
を削除する際には、スナップショットのキー更新が必要になるかどうかを検討してくださ
い。
キー更新プロセス中はクラスターが一時的に使用不能になるので、キーの更新は、データのニーズに
よって必要となるか、キーの漏洩の疑いがある場合のみ行ってください。ベストプラクティスとし
て、保存するデータの種類を考慮してデータの暗号化キーの更新頻度を計画してください。キーの更
新の頻度は、データセキュリティに対する企業のポリシーと、機密データおよび規制コンプライアン
スに関する業界標準によって異なります。セキュリティのニーズとクラスターの可用性のバランスを
考慮して計画を立ててください。
キーの更新の詳細については、「Amazon Redshift console を使用した暗号化キーの更新 (p. 97)」
と「Amazon Redshift API および AWS CLI を使用した暗号化キーの更新 (p. 99)」を参照してくだ
さい。
コンソールを使用したデータベース暗号化の設定
Amazon Redshift console を使用すると、HSM を使用して暗号化キーを更新するように Amazon
Redshift を設定できます。AWS KMS 暗号化キーまたは HSM 設定を使用してクラスターを作成する
詳細な方法については、クラスターの作成 (p. 16) およびAmazon Redshift CLI および API を使用して
クラスターを管理する (p. 35) を参照してください。
Amazon Redshift console を使用し、HSM を使用す
るように Amazon Redshift を設定する
次の手順を使用すると、Amazon Redshift console を使用して Amazon Redshift の HSM 接続と構成情
報を指定できます。
HSM 接続を作成するには
1.
3.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
左のナビゲーションペインで [Security] をクリックし、[HSM Connections] タブをクリックしま
す。
[Create HSM Connection] をクリックします。
4.
[Create HSM Connection] ページで、以下の情報を入力します。
2.
a.
b.
[HSM Connection Name] ボックスに、この接続を識別する名前を入力します。
[Description] ボックスに、接続に関する説明を入力します。
API Version 2012-12-01
92
Amazon Redshift 管理ガイド
Amazon Redshift console を使用し、HSM を
使用するように Amazon Redshift を設定する
5.
c.
[HSM IP Address] ボックスに、HSM の IP アドレスを入力します。
d.
[HSM Partition Name] ボックスに、Amazon Redshift が接続するパーティションの名前を入
力します。
e.
[HSM Partition Password] ボックスに、HSM パーティションに接続するために必要なパス
ワードを入力します。
f.
HSM からパブリックサーバー証明書をコピーし、[Paste the HSM's public server certificate
here] ボックスに貼り付けます。
g.
[Create] をクリックします。
接続が作成されたら、HSM クライアント証明書を作成できます。接続を作成した後すぐに HSM
クライアント証明書を作成する場合は、[Yes] をクリックし、次の手順を実行します。すぐに作成
しない場合は、[Not now] をクリックして HSM 接続のリストに戻り、プロセスの残りの操作を後
で実行します。
API Version 2012-12-01
93
Amazon Redshift 管理ガイド
Amazon Redshift console を使用し、HSM を
使用するように Amazon Redshift を設定する
HSM クライアント証明書を作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインで [Security] をクリックし、[HSM Certificates] タブをクリックしま
す。
3.
[Create HSM Client Certificate] をクリックします。
4.
[Create HSM Client Certificate] ページの [HSM Client Certificate Identifier] ボックスに、このクラ
イアント証明書を識別する名前を入力します。
5.
[Next] をクリックします。
6.
証明書が作成されると、HSM にキーを登録するための情報を示す確認ページが表示されま
す。HSM を設定するアクセス許可がない場合は、HSM 管理者に依頼して次の手順を実行しま
す。
API Version 2012-12-01
94
Amazon Redshift 管理ガイド
Amazon Redshift console を使用し、HSM を
使用するように Amazon Redshift を設定する
a.
コンピュータで新しいテキストファイルを開きます。
b.
Amazon Redshift console の [Create HSM Client Certificate] 確認ページで、パブリックキー
をコピーします。
c.
さきほど開いたファイルにパブリックキーを貼り付け、確認ページのステップ 1 に表示
されたファイル名で保存します。ファイルには必ず拡張子 .pem を付けてください (例:
123456789mykey.pem)。
d.
.pem ファイルを HSM にアップロードします。
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.
7.
HSM にキーを登録したら、[Next] をクリックします。
HSM クライアント証明書が作成されて登録されたら、以下のボタンのうち 1 つをクリックしま
す。
API Version 2012-12-01
95
Amazon Redshift 管理ガイド
Amazon Redshift console を使用し、HSM を
使用するように Amazon Redshift を設定する
•
[Launch a Cluster with HSM]:このオプションは、新しいクラスターを起動するプロセスを開
始します。このプロセスの間に、暗号化キーを保存する HSM を選択できます。クラスター
の起動プロセスの詳細については、「コンソールを使ったクラスターの管理 (p. 15)」を参照
してください。
[Create an HSM Connection]:このオプションは、[Create HSM Connection] プロセスを開始
します。
[View Certificates]:このオプションは、ナビゲーションペインの [HSM] に戻り、[Certificates]
タブにクライアント証明書のリストを表示します。
前. このオプションは、[Create HSM Client Certificates] 確認ページに戻ります。
閉じる. このオプションは、ナビゲーションペインの [HSM] に戻り、[Connections] タブに
HSM 接続のリストを表示します。
HSM クライアント証明書のパブリックキーを表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Security] をクリックし、[HSM Certificates] タブをクリックします。
3.
パブリックキーを表示する HSM クライアント証明書をクリックします。このキーは、前の手順
「HSM クライアント証明書を作成するには (p. 94)」で HSM に追加したのと同じキーです。
API Version 2012-12-01
96
Amazon Redshift 管理ガイド
Amazon Redshift console を使用した暗号化キーの更新
HSM 接続を削除するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインで [Security] をクリックし、[HSM Connections] タブをクリックしま
す。
3.
削除する HSM 接続をクリックします。
4.
[Delete HSM Connection] ダイアログボックスで、[Delete] をクリックして接続を Amazon
Redshift から削除するか、[Cancel] をクリックして接続を削除せずに [HSM Connections] タブに
戻ります。
HSM クライアント証明書を削除するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Security] をクリックし、[HSM Certificates] タブを選択します。
3.
リストで、削除する HSM クライアント証明書をクリックします。
4.
[Delete HSM Client Certificate] ダイアログボックスで、[Delete] をクリックして証明書を Amazon
Redshift から削除するか、[Cancel] をクリックして証明書を削除せずに [Certificates] タブに戻り
ます。
Amazon Redshift console を使用した暗号化キーの
更新
Amazon Redshift console を使用して暗号化キーを更新するには、次の手順を使用します。
API Version 2012-12-01
97
Amazon Redshift 管理ガイド
Amazon Redshift API および AWS CLI
を使用したデータベース暗号化の設定
暗号化キーを更新するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
リストで、キーを更新するクラスターをクリックします。
4.
[Database] をクリックし、[Rotate Encryption Keys] をクリックします。
5.
キーを更新する場合は [Yes, Rotate Keys] を、更新しない場合は [Cancel] をクリックします。
Note
キーの更新プロセスが完了するまで、クラスターは一時的に使用不能になります。
Amazon Redshift API および AWS CLI を使用し
たデータベース暗号化の設定
Amazon Redshift API および AWS Command Line Interface (AWS CLI) を使用し、Amazon Redshift
データベースの暗号化キーオプションを設定します。データベース暗号化の詳細については、
「Amazon Redshift データベース暗号化 (p. 88)」を参照してください。
Amazon Redshift API および AWS CLI を使用
して、AWS KMS 暗号化キーを使用するように
Amazon Redshift を設定する
次の Amazon Redshift API アクションを使用して、AWS KMS 暗号化キーを使用するように Amazon
Redshift を設定できます。
• 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
API Version 2012-12-01
98
Amazon Redshift 管理ガイド
Amazon Redshift API および AWS CLI を使用し、HSM
を使用するように Amazon Redshift を設定する
Amazon Redshift API および AWS CLI を使用
し、HSM を使用するように Amazon Redshift を設
定する
次の Amazon Redshift API アクションを使用して、ハードウェアセキュリティモジュールを管理でき
ます。
• CreateHsmClientCertificate
• CreateHsmConfiguration
• DeleteHsmClientCertificate
• DeleteHsmConfiguration
• DescribeHsmClientCertificates
• DescribeHsmConfigurations
次の AWS CLI 操作を使用して、ハードウェアセキュリティモジュールを管理できます。
• create-hsm-client-certificate
• 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 CLI 操作を使用して、暗号化キーを更新できます。
• rotate-encryption-key
API Version 2012-12-01
99
Amazon Redshift 管理ガイド
概要
Amazon Redshift リザーブドノード
の購入
概要
AWS では、Amazon Redshift を使用するために発生する料金はコンピューティングノードに基づい
ています。各コンピューティングノードに対して、時間料金で課金されます。時間料金は、リージョ
ン、ノードの種類、ノードに適用されるのがオンデマンドノード料金であるかリザーブドノード料金
であるかなどの要因によって異なります。
オンデマンドノード料金は最も高価ですが、Amazon Redshift で最も柔軟性のあるオプションです。
オンデマンドレートでは、実行中のクラスターにあるコンピューティングノードに対してのみ課金さ
れます。クラスターをシャットダウンまたは削除すると、そのクラスターにあったコンピューティン
グノードに対して、それ以降は課金されません。使用するコンピューティングノードに対してのみ請
求され、それ以外は課金されません。各コンピューティングノードに対して課金される時間料金は、
リージョンやノードの種類などの要因によって異なります。
リザーブドノード料金はコンピューティングノードに対して、割引された時間単位の料金で課金され
るため、オンデマンド料金よりも安価です。ただし、これらの割引料金の適用を受けるには、リザー
ブドノードのサービスを購入する必要があります。サービスを購入する際は、予約を行います。予約
により、予約期間中に予約する各ノードについて割引料金が設定されます。サービスの割引料金は、
リージョン、ノードの種類、期間、支払いオプションなどの要因によって異なります。
このトピックでは、リザーブドノードのサービスについてと、これらのサービスを購入して Amazon
Redshift クラスターの実行コストを削減する方法について説明します。このトピックでは、一般的な
用語としてオンデマンドレートまたは割引料金について説明し、料金の概念と、それによる課金への
影響について理解できるようにします。特定のレートの詳細については、「Amazon Redshift料金設
定」を参照してください。
リザーブドノードサービスについて
長期間にわたって Amazon Redshift クラスターを実行したままにする予定の場合は、リザーブドノー
ドサービスの購入を検討してください。これらのサービスでは、オンデマンド料金に比べて大幅なコ
スト削減ができますが、コンピューティングノードを予約し、1 年または 3 年の期間にわたってこれ
らのノードの料金の支払いを確約する必要があります。
API Version 2012-12-01
100
Amazon Redshift 管理ガイド
リザーブドノードサービス間の価格の比較
リザーブドノードは、ノードに対する課金レートを決定するために厳密に使用される課金の概念で
す。ノードを予約しても、実際にはノードは作成されません。使用量にかかわらず、リザーブドノー
ドに対して課金されます。つまり、割引料金の適用対象となる実行中のクラスターにノードがあるか
どうかにかかわらず、予約期間中に予約する各ノードについて支払いを行う必要があります。
プロジェクトの評価フェーズ、または概念実証を開発する場合、オンデマンド料金により、従量料金
制の柔軟性を得ることができ、使用した分だけ支払い、クラスターをシャットダウンまたは削除する
ことでいつでも支払いを停止することができます。本稼働環境のニーズが確立され、実装段階を開始
したら、1 つ以上のサービスを購入して、コンピューティングノードの予約を検討してください。
サービスでは 1 つ以上のコンピューティングノードを適用できます。サービスを購入するときに、予
約するコンピューティングノードの数を指定します。複数のコンピューティングノードの 1 つのサー
ビスを購入するか、複数のサービスを購入し、各ノードのコンピューティングノードの特定の数を指
定する選択ができます。
たとえば、次のいずれも、3 つのコンピューティングノードのサービスを購入するための有効な方法
です。
• 1 つのサービスを購入し、3 つのコンピューティングノードを指定する。
• 2 つのサービスを購入し、最初のサービスに対して 1 つのコンピューティングノード、2 つ目の
サービスに対して 2 つのコンピューティングノードを指定する。
• 3 つのサービスを購入し、サービスごとに 1 つのコンピューティングノードを指定する。
リザーブドノードサービス間の価格の比較
Amazon Redshift には、サービスについて複数の支払いオプションがあります。選択する支払いオプ
ションは、支払いスケジュールと、予約に対して課金される割引料金に影響します。予約に対して支
払う前払い料金が高いほど、全体的な削減額が大きくなります。
次の支払いオプションがサービスで利用できます。サービスは、オンデマンドレートに対する削減額
が小さいものから大きいものの順に示されています。
Note
予約に指定された期間中は、リザーブドノードを使用するかどうかにかかわらず、毎時間、
該当する時間料金で課金されます。支払いオプションによって決定されるのは、支払いの
頻度と、適用される割引だけです。詳細については、「リザーブドノードサービスについ
て (p. 100)」を参照してください。
リザーブドノードサービスの比較
お支払い方 支払いスケジュール
法
比較の削減額
前払いなし 予約期間中の月次の
支払い額。前払い料
金はありません。
オンデマンド料金に対 1 年間の期
して約 20 パーセント 間
の割引。
なし
はい
一部前払い 予約の期間について
は部分的な前払い
料金と月次の支払い
額。
期間によって最大 41
~73 パーセントの割
引。
1 年間また
は 3 年間
はい
はい
全前払い
期間によって最大 42
~76 パーセントの割
引。
1 年間また
は 3 年間
はい
なし
予約の完全な前払い
料金。月額料金なし.
API Version 2012-12-01
101
所要時間
前払い料金 繰り返しの
月額料金
Amazon Redshift 管理ガイド
リザーブドノードの動作
Note
以前に Amazon Redshift の重度使用サービスを購入した場合、比較できるサービスは部分的
な前払いサービスとなります。
リザーブドノードの動作
リザーブドノードサービスでは、前のセクションで説明したように、支払い条件に応じて支払いが発
生します。すでに実行中のクラスターがあるか、予約後にクラスターを起動するかどうかにかかわら
ず、この方法で支払いを行います。
サービスを購入すると、予約が処理されるまで予約のステータスは payment-pending になります。予
約の処理に失敗した場合、ステータスは payment-failed と表示され、プロセスを再試行することがで
きます。予約が正常に処理されると、ステータスは active になります。予約の該当する割引料金は、
ステータスが active になるまで適用されません。予約期間が経過すると、ステータスは retired になり
ますが、履歴の目的で予約に関する情報に引き続きアクセスすることができます。予約が retired にな
ると、クラスターは引き続き実行されますが、ノードに割引価格を適用する別の予約がない限り、オ
ンデマンドレートで課金される場合があります。
リザーブドノードは、サービスを購入するリージョンに固有です。Amazon Redshift コンソールを使
用してサービスを購入する場合は、サービスを購入する AWS リージョンを選択し、予約プロセスを
完了します。サービスをプログラムで購入する場合、リージョンは接続先の Amazon Redshift エンド
ポイントによって決まります。Amazon Redshift リージョンの詳細については、アマゾン ウェブ サー
ビス全般のリファレンス の「リージョンとエンドポイント」を参照してください。
クラスターを起動するときに割引料金がすべてのノードに適用されるようにするには、リージョン、
ノードの種類、および選択するノードの数が、1 つ以上のアクティブな予約に一致することを確認し
ます。それ以外の場合、アクティブな予約に一致しないノードについては、オンデマンドレートで課
金されます。
実行中のクラスターで、予約したノードの数を超えた場合は、それらの追加のノードに対して、オン
デマンドレートで課金が発生し続けます。この発生は、予約したノードの数に応じて、同じクラス
ターのノードに対してさまざまなレートで課金される場合があることを示します。別のサービスを購
入して、これらの追加のノードに対応することができます。その場合、予約のステータスが active に
なると、残りの期間は割引料金がノードに適用されます。
別のノードの種類にクラスターのサイズを変更し、その種類のノードを予約していない場合は、オン
デマンドレートで課金されます。サイズ変更したクラスターに対して割引料金の適用を受けたい場合
は、新しいノードの種類の別のサービスを購入できます。ただし、期間が経過するまで、元の予約に
ついても引き続き支払いが発生します。期間の終了前に予約を変更する必要がある場合は、[email protected] にご連絡ください。
リザーブドノードと一括請求 (コンソリデーティッ
ドビリング)
購入アカウントが、1 つの一括請求の支払いアカウントに請求される一連のアカウントの一部である
場合、リザーブドノードの料金面でのメリットを広範囲に利用できます。すべてのサブアカウントの
時間単位の使用量が月次で支払いアカウントに集約されます。さまざまな役割を持つチームやグルー
プがある企業にとっては特に便利です。したがって、請求書の計算には通常のリザーブドノードのロ
ジックが適用されます。詳しくは、AWS Billing and Cost Management ユーザーガイド の「一括請求
(コンソリデーティッドビリング)」を参照してください。
リザーブドノードの例
このセクションのシナリオでは、次の予約の詳細を使用し、オンデマンドレートと割引料金に基づい
て料金がどのように発生するかを示します。
API Version 2012-12-01
102
Amazon Redshift 管理ガイド
リザーブドノードの例
• リージョン: 米国西部 (オレゴン)
•
•
•
•
[Node Type]: ds1.xlarge
支払い方法: 前払い料金なし
期間: 1 年
リザーブドノード数: 16
例1
20 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。
このシナリオでは、16 個のノードで予約から割引料金が適用されますが、クラスターのその他の 4 つ
のノードはオンデマンドレートで課金されます。
例2
12 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。
このシナリオでは、クラスターの 12 個のノードにはすべて、予約から割引料金が適用されます。た
だし、現在それらの適用対象となる実行中のクラスターがなくても、予約の残りのリザーブドノード
に対して支払いが発生します。
例3
12 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。この
設定ではクラスターを数か月実行し、その後でクラスターにノードを追加する必要があります。クラ
スターのサイズを変更し、同じノードの種類を選択して、合計 16 個のノードを指定します。
このシナリオでは、16 個のノードに対して割引料金が請求されます。クラスターにあるノードの数は
予約したノード数と等しいため、料金は 1 年間は同じままです。
例4
16 個のノードがある 米国西部 (オレゴン) リージョンに、1 つの ds1.xlarge クラスターがある。この
設定ではクラスターを数か月実行し、その後でノードを追加する必要があります。クラスターのサイ
ズを変更し、同じノードの種類を選択して、合計 20 個のノードを指定します。
このシナリオでは、サイズ変更の前のすべてのノードに対して割引料金で課金されます。サイズ変更
後は、1 年の残りの期間は 16 個のノードに対して割引料金で課金され、クラスターに追加した 4 つの
追加のノードについてはオンデマンドレートで課金されます。
例5
米国西部 (オレゴン) リージョンに 2 つの ds1.xlarge クラスターがある。クラスターの 1 つは 6 個の
ノードを持ち、他のクラスターは 10 個のノードを持つ。
このシナリオでは、両方のクラスターのノードの合計数は予約したノードの数と等しいため、すべて
のノードに対して割引料金で課金されます。
例6
米国西部 (オレゴン) リージョンに 2 つの ds1.xlarge クラスターがある。クラスターの 1 つは 4 個の
ノードを持ち、他のクラスターは 6 個のノードを持つ。
このシナリオでは、実行中のクラスターの 10 個のノードに対して割引料金で課金され、割引料金の
適用対象となる実行中のクラスターが現在なくても、予約したその他の 6 個のノードに対して割引料
金で支払いが発生します。
API Version 2012-12-01
103
Amazon Redshift 管理ガイド
コンソールを使用したリザーブドノードサービスの購入
Amazon Redshift コンソールを使用したリザーブ
ドノードサービスの購入
Amazon Redshift コンソールで [Reserved Nodes] ページを使用して、リザーブドノードサービスを購
入したり、現在および過去の予約を表示したりします。予約がない場合、[Reserved Node] ページは
以下のように表示されます。
サービスを購入した後、[Reserved Node] リストには、各予約とその詳細 (ノードタイプ、ノード数、
予約状況など) が表示されます。予約の詳細のさらなる情報については、「リザーブドノードの動
作 (p. 102)」を参照してください。
リザーブドノードの予約を表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Reserved Nodes] を選択します。
3.
(オプション) [Filter] で、予約リストでの結果を絞り込むための検索条件を指定します。
リザーブドノードサービスを購入するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Reserved Nodes] を選択します。
3.
[Purchase Reserved Nodes] を選択します。
API Version 2012-12-01
104
Amazon Redshift 管理ガイド
Java を使用したリザーブドノードサービスの購入
4.
[Purchase Reserved Nodes] ウィザードで、[Node Type]、[Term]、[Offering Type] を指定しま
す。
5.
[Number of Nodes] ボックスに、予約するノードの数を入力します。
6.
7.
[Continue] を選択します。
サービスの詳細を確認し、[Purchase] を選択します。
8.
[Reserved Nodes] ページで、予約リストに [payment-pending] ステータスの予約が表示されま
す。
AWS SDK for Java を使用したリザーブドノード
サービスの購入
以下の例は、AWS SDK for Java を使用して次の処理を実行する方法を示しています。
• 既存のリザーブドノードを一覧表示します。
• 指定したノード条件に基づいて、新しいリザーブドノードサービスを検索します。
• リザーブドノードを購入します。
API Version 2012-12-01
105
Amazon Redshift 管理ガイド
Java を使用したリザーブドノードサービスの購入
この例は、指定したノードタイプと固定価格に一致するすべてのリザーブドノードサービスをまず選
択します。次に、見つかった各サービスに対してコードを実行して、サービスを購入できるようにし
ます。
Important
この例を実行し、リザーブドノードサービスを購入するサービスを承認すると、サービスに
ついて課金されます。
この例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実行
例 (p. 148)」を参照してください。リストに示している以外のノードタイプと固定価格について情報
を得るには、そのノードタイプと固定価格でコードを更新します。
import
import
import
import
java.io.DataInput;
java.io.DataInputStream;
java.io.IOException;
java.util.ArrayList;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.redshift.AmazonRedshiftClient;
import
com.amazonaws.services.redshift.model.DescribeReservedNodeOfferingsRequest;
import
com.amazonaws.services.redshift.model.DescribeReservedNodeOfferingsResult;
import com.amazonaws.services.redshift.model.DescribeReservedNodesResult;
import
com.amazonaws.services.redshift.model.PurchaseReservedNodeOfferingRequest;
import com.amazonaws.services.redshift.model.ReservedNode;
import
com.amazonaws.services.redshift.model.ReservedNodeAlreadyExistsException;
import com.amazonaws.services.redshift.model.ReservedNodeOffering;
import
com.amazonaws.services.redshift.model.ReservedNodeOfferingNotFoundException;
import
com.amazonaws.services.redshift.model.ReservedNodeQuotaExceededException;
public class ListAndPurchaseReservedNodeOffering {
public static AmazonRedshiftClient client;
public static String nodeTypeToPurchase = "ds1.xlarge";
public static Double fixedPriceLimit = 10000.00;
public static ArrayList<ReservedNodeOffering> matchingNodes = new
ArrayList<ReservedNodeOffering>();
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
ListAndPurchaseReservedNodeOffering.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
try {
listReservedNodes();
findReservedNodeOffer();
API Version 2012-12-01
106
Amazon Redshift 管理ガイド
Java を使用したリザーブドノードサービスの購入
purchaseReservedNodeOffer();
} catch (Exception e) {
System.err.println("Operation failed: " + e.getMessage());
}
}
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 {
API Version 2012-12-01
107
Amazon Redshift 管理ガイド
AWS CLI および Amazon Redshift API を
使用したリザーブドノードサービスの購入
PurchaseReservedNodeOfferingRequest request = new
PurchaseReservedNodeOfferingRequest()
.withReservedNodeOfferingId(offering.getReservedNodeOfferingId());
ReservedNode reservedNode =
client.purchaseReservedNodeOffering(request);
printReservedNodeDetails(reservedNode);
}
catch (ReservedNodeAlreadyExistsException ex1){
}
catch (ReservedNodeOfferingNotFoundException ex2){
}
catch (ReservedNodeQuotaExceededException ex3){
}
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());
}
}
AWS CLI および Amazon Redshift API を使用し
たリザーブドノードサービスの購入
次の AWS CLI 操作で、リザーブドノードサービスを購入できます。
• purchase-reserved-node-offering
• describe-reserved-node-offerings
• describe-orderable-cluster-options
API Version 2012-12-01
108
Amazon Redshift 管理ガイド
AWS CLI および Amazon Redshift API を
使用したリザーブドノードサービスの購入
次の Amazon Redshift API を使用して、リザーブドノードサービスを購入できます。
• PurchaseReservedNodeOffering
• DescribeReservedNodeOfferings
• DescribeOrderableClusterOptions
API Version 2012-12-01
109
Amazon Redshift 管理ガイド
認証とアクセスコントロール
セキュリティ
Amazon Redshift リソースへのアクセスは 3 つのレベルで制御されます。
• クラスター管理 – クラスターを作成、設定、削除する機能は、ユーザーまたは AWS セキュリティ
認証情報に関連付けられているアカウントに与えられるアクセス権により制御されます。適切なア
クセス権を持つ AWS ユーザーは AWS マネジメントコンソール、AWS Command Line Interface
(CLI)、Amazon Redshift アプリケーションプログラミングインターフェイス (API) を使用し、クラ
スターを管理できます。このアクセスは、IAM ポリシーを使用して管理されます。詳細について
は、「Amazon Redshift に対する認証とアクセスコントロール (p. 110)」を参照してください。
• クラスター接続性 – Amazon Redshift セキュリティグループにより、クラスレスドメイン間ルー
ティング (CIDR) 形式での Amazon Redshift クラスターへの接続が許可される AWS インスタンス
が指定されます。Amazon Redshift、Amazon EC2、Amazon VPC セキュリティグループを作成
し、それらのグループとクラスターを関連付ける方法の詳細については、「Amazon Redshift クラ
スターセキュリティグループ (p. 124)」を参照してください。
• データベースアクセス – テーブルやビューなどのデータベースオブジェクトにアクセスできるかど
うかは、Amazon Redshift データベースのユーザーアカウントにより制御されます。ユーザーは、
ユーザーアカウントがアクセス権限を付与されたデータベースのリソースにのみアクセス可能で
す。これらの Amazon Redshift ユーザーアカウントの作成とそのアクセス権の管理は、CREATE
USER、CREATE GROUP、GRANT、REVOKE SQL ステートメントにより行われます。詳細につ
いては、「Managing Database Security」を参照してください。
Amazon Redshift に対する認証とアクセスコント
ロール
Amazon Redshift へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必要で
す。これらの認証情報には、Amazon Redshift クラスターなどの AWS リソースへのアクセス権限が
必要です。次のセクションでは、AWS Identity and Access Management (IAM) と Amazon Redshift を
使用して、リソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護す
る方法について詳しく説明します。
• 認証 (p. 111)
API Version 2012-12-01
110
Amazon Redshift 管理ガイド
認証
• アクセスコントロール (p. 112)
認証
AWS には、次のタイプのアイデンティティでアクセスできます。
• AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントに関連付
けられた E メールアドレスとパスワードを指定します。これらは ルート認証情報であり、これらの
情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。
Important
セキュリティ上の理由から、AWS アカウントへの完全なアクセス権限を持つ管理者ユー
ザー (IAM ユーザー) を作成するためにのみ、ルート認証情報を使用することをお勧めし
ます。その後、この管理者ユーザーを使用して、制限されたアクセス権限を持つ他の IAM
ユーザーとロールを作成できます。詳細については、『IAM ユーザーガイド』の「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 リクエストを認証するためのプロトコルです。リクエストの認証の
詳細については、『AWS General Reference』の「署名バージョン 4 の署名プロセス」を参照して
ください。
• IAM ロール – IAM ロールは、特定のアクセス権限を持ち、アカウントで作成できるもう 1 つの IAM
アイデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーに関連付けられてい
ません。IAM ロールでは、AWS サービスおよびリソースにアクセスするために使用できる一時的な
アクセスキーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちま
す。
• フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory
Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダー
の既存のユーザーアイデンティティを使用することもできます。このようなユーザーはフェデ
レーティッドユーザーと呼ばれます。AWS では、アイデンティティプロバイダーを通じてアク
セスがリクエストされたときに、フェデレーティッドユーザーにロールを割り当てます。フェデ
レーティッドユーザーの詳細については、『IAM ユーザーガイド』の「フェデレーティッドユー
ザーとロール」を参照してください。
• クロスアカウントアクセス – アカウントで IAM ロールを使って、お客様のアカウントのリソース
へのアクセス権を別の AWS アカウントに付与できます。この例については、『IAM ユーザーガ
イド』の「チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照
してください。
API Version 2012-12-01
111
Amazon Redshift 管理ガイド
アクセスコントロール
• AWS サービスアカウント – アカウントで IAM ロールを使って、お客様のアカウントのリソース
にアクセスする AWS サービスのアクセス権限を付与できます。たとえば、Amazon Redshift が
お客様に代わって Amazon S3 バケットにアクセスし、バケットに保存されたデータを Amazon
Redshift クラスターにロードすることを許可するロールを作成できます。 詳細については、
『IAM ユーザーガイド』の「AWS ユーザーにアクセス権限を委任するロールの作成」を参照して
ください。
• Amazon EC2 で実行されるアプリケーション – インスタンスで実行し、AWS API リクエストを
作成するアプリケーションで使用されるアクセスキーを EC2 インスタンス内に保存する代わり
に、IAM ロールを使用して、これらのアプリケーション用の一時認証情報を管理できます。AWS
ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにする
には、インスタンスにアタッチされたインスタンスプロファイルを作成できます。インスタンス
プロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を
取得することができます。詳細については、『IAM ユーザーガイド』の「Amazon EC2 上のアプ
リケーションに対するロールの使用」を参照してください。
アクセスコントロール
有効な認証情報があればリクエストを認証できますが、Amazon Redshift リソースを作成した
り、それらのリソースにアクセスしたりするには、そのためのアクセス権限が必要です。たとえ
ば、Amazon Redshift クラスターの作成、スナップショットの作成、イベントサブスクリプションの
追加などにはアクセス権限が必要です。
以下のセクションでは、Amazon Redshift のアクセス権限を管理する方法について説明します。最初
に概要のセクションを読むことをお勧めします。
• Amazon Redshift リソースへのアクセス権限の管理の概要 (p. 112)
• Amazon Redshift でアイデンティティベースのポリシー (IAM ポリシー) を使用する (p. 117)
Amazon Redshift リソースへのアクセス権限の管理
の概要
すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアク
セスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス権限ポリ
シーを IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス
(AWS Lambda など) では、アクセス権限ポリシーをリソースにアタッチすることもできます。
Note
アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細につい
ては、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。
アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象とな
るリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。
Amazon Redshift リソースおよびオペレーション
Amazon Redshift では、プライマリリソースはクラスターです。Amazon Redshift は、スナップ
ショット、パラメーターグループ、イベントサブスクリプションなどのプライマリリソースとともに
使用できるその他のリソースをサポートします。これらはサブリソースと呼ばれます。
API Version 2012-12-01
112
Amazon Redshift 管理ガイド
アクセス管理の概要
これらのリソースとサブリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN)
が関連付けられています。
リソースタイプ
ARN 形式
クラスター
arn:aws:redshift:region:account-id:cluster:cluster-name
クラスターセキュリ
ティグループ
arn:aws:redshift:region:accountid:securitygroup:security-group-name
CIDR/IP アドレス
arn:aws:redshift:region:accountid:securitygroupingress:security-group-name/cidrip/IPrange
EC2 セキュリティグ
ループ
arn:aws:redshift:region:accountid:securitygroupingress:security-group-name/
ec2securitygroup/owner/EC2-security-group-id
イベントサブスクリプ
ション
arn:aws:redshift:region:accountid:eventsubscription:event-subscription-name
ハードウェアセキュリ
ティモジュール (HSM)
のクライアント証明書
arn:aws:redshift:region:accountid:hsmclientcertificate:HSM-client-certificate-id
HSM の設定
arn:aws:redshift:region:account-id:hsmconfiguration:HSMconfiguration-id
パラメーターグループ
arn:aws:redshift:region:accountid:parametergroup:parameter-group-name
スナップショット
arn:aws:redshift:region:account-id:snapshot:clustername/snapshot-name
スナップショットコ
ピー権限
arn:aws:redshift:region:accountid:snapshotcopygrant:snapshot-copy-grant-name
サブネットグループ
arn:aws:redshift:region:account-id:subnetgroup:subnetgroup-name
Amazon Redshift には、Amazon Redshift リソースを操作するための一連のオペレーションが用意さ
れています。使用可能なオペレーションのリストについては、「Amazon Redshift API のアクセス権
限リファレンス (p. 123)」を参照してください。
リソース所有権について
リソース所有者は、リソースを作成した 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 アカ
ウントです。
API Version 2012-12-01
113
Amazon Redshift 管理ガイド
アクセス管理の概要
リソースへのアクセスの管理
アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権
限のポリシーを作成するために使用可能なオプションについて説明します。
Note
このセクションでは、Amazon Redshift のコンテキストでの IAM の使用について説明しま
す。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントに
ついては、「IAM とは?」 (IAM ユーザーガイド ) を参照してください。IAM ポリシー構文の
詳細および説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参
照してください。
IAM アイデンティティにアタッチされたポリシーはアイデンティティベースのポリシー (IAM ポ
リシー) と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれま
す。Amazon Redshift では、アイデンティティベースのポリシー (IAM ポリシー) のみがサポートされ
ています。
アイデンティティベースのポリシー (IAM ポリシー)
ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。
• アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする – アカウント管理者
は、特定のユーザーに関連付けられるアクセス権限ポリシーを使用して、そのユーザーに Amazon
Redshift リソース (クラスターなど) の作成を許可するアクセス権限を付与することができます。
• アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与) – アイデ
ンティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアク
セス権限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは
AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サー
ビスに付与するロールを作成することができます。
1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与する
ロールに権限ポリシーをアタッチします。
2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別する
ロールに、信頼ポリシーをアタッチします。
3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるよう
になります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセス
が許可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、
信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。
IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を
参照してください。
次は、ユーザーが AWS アカウントで Amazon Redshift クラスターを作成、削除、変更、および再起
動することを許可するポリシーの例です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"AllowManageClusters",
"Effect":"Allow",
"Action": [
"redshift:CreateCluster",
"redshift:DeleteCluster",
"redshift:ModifyCluster",
API Version 2012-12-01
114
Amazon Redshift 管理ガイド
アクセス管理の概要
"redshift:RebootCluster"
],
"Resource":"*"
}
]
}
Amazon Redshift でアイデンティティベースのポリシーを使用する詳細については、Amazon Redshift
でアイデンティティベースのポリシー (IAM ポリシー) を使用する (p. 117) を参照してください。
ユーザー、グループ、ロール、アクセス権限の詳細については、IAM ユーザーガイド の「アイデン
ティティ (ユーザー、グループ、ロール)」を参照してください。
リソースベースのポリシー
Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされていま
す。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理
できます。Amazon Redshift では、リソースベースのポリシーはサポートされていません。 ポリシー要素の指定 : アクション、効果、リソース、プリンシ
パル
Amazon Redshift リソースごとに (Amazon Redshift リソースおよびオペレーション (p. 112) を参
照)、サービスは一連の API オペレーションを定義します (アクションを参照)。これらの API オペレー
ションのアクセス権限を付与するために、Amazon Redshift は、ポリシー内に指定できる一連のアク
ションを定義します。API オペレーションを実行する場合に、複数のアクションで権限が必要となる
場合があることに注意してください。
以下は、基本的なポリシーの要素です。
• リソース ‐ ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソース
を識別します。詳細については、「Amazon Redshift リソースおよびオペレーション (p. 112)」を
参照してください。
• アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーション
を識別します。たとえば、redshift:DescribeClusters アクセス権限は、Amazon Redshift
DescribeClusters オペレーションの実行をユーザーに許可します。
• 効果 ‐ ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のい
ずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒
否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセス
が許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。
• プリンシパル ‐ アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされて
いるユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソース
ベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエ
ンティティを指定します。Amazon Redshift では、リソースベースのポリシーはサポートされてい
ません。
IAM ポリシーの構文と記述の詳細については、IAM ユーザーガイド の「AWS IAM ポリシーの参照」
を参照してください。
すべての Amazon Redshift API アクションとそれらが適用されるリソースの表については、Amazon
Redshift API のアクセス権限リファレンス (p. 123) を参照してください。
ポリシーでの条件の指定
アクセス権限を付与するとき、アクセスポリシー言語を使用して、ポリシーが有効になる必要がある
条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があり
API Version 2012-12-01
115
Amazon Redshift 管理ガイド
アクセス管理の概要
ます。アクセスポリシー言語での条件の指定の詳細については、IAM ユーザーガイド の「条件」を参
照してください。
アクセス権限ポリシーが適用される条件を指定するには、IAM アクセス権限ポリシーに Condition
要素を含めます。たとえば、redshift:CreateCluster アクションを使用してクラスターを作成す
ることをユーザーに許可するポリシーを作成します。その後、特定のリージョンでのクラスターの作
成のみにそのアクションを制限する Condition 要素を追加できます。詳細については、「詳細に設
定されたアクセスコントロールのための IAM ポリシー条件の使用 (p. 116)」を参照してください。
すべての条件キーとそれらが適用される Amazon Redshift アクションとリソースのリストについて
は、Amazon Redshift API のアクセス権限リファレンス (p. 123)を参照してください。
詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用
Amazon Redshift では、2 つの条件キーを使用し、リソースのタグに基づいてリソースへのアクセス
を制限できます。Amazon Redshift の 2 つの条件キーは以下のとおりです。
条件キー
説明
redshift:RequestTag リソースの作成時にはタグのキー (名前) と値を含める必要がありま
す。redshift:RequestTag 条件キーは、リソースを作成する Amazon
Redshift の API アクションにのみ適用されます。
redshift:ResourceTag特定のタグのキーと値に基づいてリソースへのユーザーアクセスを制限し
ます。
タグの詳細については、「タグ付けの概要 (p. 263)」を参照してください。
redshift:RequestTag および redshift:ResourceTag 条件キーをサポートする API アクション
のリストについては、「Amazon Redshift API のアクセス権限リファレンス (p. 123)」を参照してく
ださい。
例 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": {
API Version 2012-12-01
116
Amazon Redshift 管理ガイド
アイデンティティベースのポリ
シー (IAM ポリシー) を使用する
"Sid":"AllowCreateProductionCluster",
"Effect": "Allow",
"Action": "redshift:CreateCluster",
"Resource": "*"
"Condition":{"StringEquals":{"redshift:RequestTag/usage":"production"}
}
}
Amazon Redshift でアイデンティティベースのポリ
シー (IAM ポリシー) を使用する
このトピックでは、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、ロール) へのア
クセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。
Important
初めに、Amazon Redshift リソースへのアクセスを管理するための基本概念と使用可能なオ
プションについて説明する概要トピックをお読みになることをお勧めします。詳細について
は、「Amazon Redshift リソースへのアクセス権限の管理の概要 (p. 112)」を参照してくだ
さい。
このセクションでは、次のトピックを対象としています。
Topics
• Amazon Redshift コンソールを使用するために必要なアクセス権限 (p. 118)
• Amazon Redshift での AWS 管理 (事前定義) ポリシー (p. 118)
• お客様が管理するポリシーの例 (p. 119)
以下に示しているのは、アクセス権限ポリシーの例です。このポリシーでは、ユーザーはすべてのク
ラスターを作成、削除、変更、再起動できます。さらに、クラスター識別子が production で始まる
クラスターを削除または変更するアクセス権限が拒否されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"AllowClusterManagement",
"Action": [
"redshift:CreateCluster",
"redshift:DeleteCluster",
"redshift:ModifyCluster",
"redshift:RebootCluster"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Sid":"DenyDeleteModifyProtected",
"Action": [
"redshift:DeleteCluster",
"redshift:ModifyCluster"
API Version 2012-12-01
117
Amazon Redshift 管理ガイド
アイデンティティベースのポリ
シー (IAM ポリシー) を使用する
],
"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 クラスター
に適用されます。
Amazon Redshift コンソールを使用するために必要なアクセス
権限
Amazon Redshift コンソールを使用しているユーザーの場合、そのユーザーは、Amazon Redshift
リソースと、Amazon EC2 セキュリティーおよびネットワーク情報を含むその他の関連情報をその
AWS アカウントで記述できる、最小限のアクセス権限を持っている必要があります。
これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM
ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。Amazon
Redshift での AWS 管理 (事前定義) ポリシー (p. 118) で説明されているとおり、ユーザーが
Amazon Redshift コンソールを使用できること、および、 AmazonRedshiftReadOnlyAccess 管理
対象ポリシーがユーザーにアタッチされていることを確認してください。
AWS CLI または Amazon Redshift API のみを呼び出すユーザーには、最小限のコンソールアクセス権
限を付与する必要はありません。
Amazon Redshift での AWS 管理 (事前定義) ポリシー
AWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的
ユースケースに対応します。管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与する
ことで、どの権限が必要なのかをユーザーが調査する必要をなくすることができます。詳細について
は、IAM ユーザーガイド の「AWS 管理ポリシー」を参照してください。
アカウントのユーザーにアタッチ可能な以下の AWS 管理ポリシーは、Amazon Redshift に固有のも
のです。
• AmazonRedshiftReadOnlyAccess – AWS アカウントのすべての Amazon Redshift リソースへの読
み取り専用アクセスを許可します。
• AmazonRedshiftFullAccess – AWS アカウントのすべての Amazon Redshift リソースへのフルアク
セスを許可します。
独自のカスタム IAM ポリシーを作成して、Amazon Redshift API アクションとリソースのためのアク
セス権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス権限が必要な
IAM ユーザーまたはグループにアタッチできます。
API Version 2012-12-01
118
Amazon Redshift 管理ガイド
アイデンティティベースのポリ
シー (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*"
API Version 2012-12-01
119
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"
API Version 2012-12-01
120
Amazon Redshift 管理ガイド
アイデンティティベースのポリ
シー (IAM ポリシー) を使用する
],
"Resource": [
"arn:aws:redshift:us-west-2:123456789012:shared/*"
],
"Effect": "Allow"
},
{
"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 で始まるスナップショットを復元できます。
API Version 2012-12-01
121
Amazon Redshift 管理ガイド
アイデンティティベースのポリ
シー (IAM ポリシー) を使用する
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"AllowCopyClusterSnapshot",
"Action": [
"redshift:CopyClusterSnapshot"
],
"Resource": [
"arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*"
],
"Effect": "Allow"
},
{
"Sid":"AllowRestoreFromClusterSnapshot",
"Action": [
"redshift:RestoreFromClusterSnapshot"
],
"Resource": [
"arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-forrestore*",
"arn:aws:redshift:us-west-2:123456789012:cluster:*"
],
"Effect": "Allow"
}
]
}
例 6: ユーザーの Amazon Redshift および関連する AWS のサービスの一般的
なアクションとリソースへのアクセスを許可する
次のサンプルポリシーでは、Amazon Redshift、Amazon Simple Notification Service (Amazon
SNS)、Amazon CloudWatch のすべてのアクションとリソースへのアクセスを許可し、アカウントに
おける関連するすべての Amazon EC2 リソースでの指定されたアクションを許可します。
Note
リソースレベルのアクセス権限は、このサンプルポリシーで指定された Amazon EC2 アク
ションではサポートされません。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"AllowRedshift",
"Effect": "Allow",
"Action": [
"redshift:*"
],
"Resource": [
"*"
]
},
{
"Sid":"AllowSNS",
"Effect": "Allow",
API Version 2012-12-01
122
Amazon Redshift 管理ガイド
Amazon Redshift API のアクセス権限リファレンス
"Action": [
"sns:*"
],
"Resource": [
"*"
]
},
{
"Sid":"AllowCloudWatch",
"Effect": "Allow",
"Action": [
"cloudwatch:*"
],
"Resource": [
"*"
]
},
{
"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": [
"*"
]
}
]
}
Amazon Redshift API のアクセス権限リファレンス
アクセスコントロール (p. 112) をセットアップし、IAM アイデンティティにアタッチできるアクセ
ス権限ポリシー (アイデンティティベースのポリシー) を作成するときは、以下の表をリファレンスと
して使用できます。この には、各Amazon Redshift API オペレーション、アクションを実行するアク
セス権限を付与できる対応アクション、アクセス権限を付与できる AWS リソース、およびきめ細か
なアクセス制御を設定できる条件キーが記載されています (条件の詳細については、詳細に設定された
アクセスコントロールのための IAM ポリシー条件の使用 (p. 116) を参照してください)。ポリシーの
[Action] フィールドにアクションを、ポリシーの [Resource] フィールドにリソース値を、ポリシー
の [Condition] フィールドに条件を指定します。
Amazon Redshift ポリシーで AWS 全体の条件キーを使用して、条件を表現することができま
す。AWS 全体を対象とするすべてのキーのリストについては、IAM ユーザーガイド の「利用可能な
キー」を参照してください。
Note
アクションを指定するには、API オペレーション名 (redshift:CreateCluster など) の前
に redshift: プレフィックスを使用します。
API Version 2012-12-01
123
Amazon Redshift 管理ガイド
セキュリティグループ
Redshift では、Amazon Redshift API をベースとしない以下のアクションもサポートされます。
• redshift:ViewQueriesInConsole アクションは、ユーザーが Amazon Redshift console コン
ソールの [Cluster] セクションの [Queries] タブでクエリを参照できるかどうかを制御します。
• redshift:CancelQuerySession アクションは、ユーザーが Amazon Redshift console の
[Cluster] セクションから実行中のクエリとロードを終了できるかどうかを制御します。
Amazon Redshift クラスターセキュリティグルー
プ
Amazon Redshift クラスターをプロビジョニングすると、デフォルトではロックされているため、
誰もアクセスすることはできません。他のユーザーに Amazon Redshift クラスターへのインバウン
ドアクセスを許可するには、クラスターをセキュリティグループに関連付けます。EC2-Classic プ
ラットフォームを使用する場合は、後で示すようにクラスターセキュリティグループを定義してク
ラスターに関連付けます。EC2-VPC プラットフォームを使用する場合は、既存の Amazon VPC セ
キュリティグループを使用するか、新しいグループを定義してクラスターに関連付けることができま
す。EC2-VPC プラットフォームでのクラスターの管理の詳細については、「Amazon Virtual Private
Cloud (VPC) でクラスターを管理する (p. 35)」を参照してください。
トピック
• 概要 (p. 124)
• コンソールを使用したクラスターセキュリティグループの管理 (p. 125)
• AWS SDK for Java を使用したクラスターセキュリティグループの管理 (p. 133)
• Amazon Redshift CLI および API を使用したクラスターセキュリティグループの管理 (p. 136)
概要
クラスターセキュリティグループは、クラスターへのアクセスを制御するルールセットで構成されま
す。個々のルールは、IP アドレスの範囲またはクラスターへのアクセスが許可されている Amazon
EC2 セキュリティグループを識別します。クラスターセキュリティグループをクラスターに関連付け
ると、クラスターセキュリティグループで定義されているルールがクラスターへのアクセスを制御し
ます。
クラスターのプロビジョニングとは関係なくクラスターセキュリティグループを作成できます。クラ
スターをプロビジョニングするとき、またはその後のどちらでも、クラスターセキュリティグループ
を Amazon Redshift クラスターと関連付けることができます。また、クラスターセキュリティグルー
プを複数のクラスターに関連付けることもできます。
Amazon Redshift では、最初のクラスターを起動すると、default と呼ばれるクラスターセキュリ
ティグループが自動的に作成されます。初期状態では、このクラスターセキュリティグループは空で
す。インバウンドアクセスルールをデフォルトのクラスターセキュリティグループに追加し、それを
Amazon Redshift クラスターに関連付けることができます。
default クラスターセキュリティグループだけで十分であれば、独自のグループを作成する必要はあ
りません。しかし、クラスターへのインバウンドアクセスをより効果的に管理するために独自のクラ
スターセキュリティグループを作成することもできます。たとえば、Amazon Redshift クラスターで
サービスを実行していて、数社の顧客がいると仮定します。すべての顧客に同じアクセス権を与えた
くない場合は、会社ごとに 1 つのクラスターセキュリティグループを作成することをお勧めします。
会社に固有の Amazon EC2 セキュリティグループと IP アドレス範囲を識別するため、各クラスター
セキュリティグループにルールを追加できます。その後、これらすべてのクラスターセキュリティグ
ループをクラスターに関連付けることができます。
1 つのクラスターセキュリティグループを複数のクラスターと関連付けることも、複数のクラスター
セキュリティグループを 1 つのクラスターと関連付けることもできます。
API Version 2012-12-01
124
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
Amazon Redshift コンソールを使用してクラスターセキュリティグループを管理することも、Amazon
Redshift API または AWS SDK を使用してプログラムによってクラスターセキュリティグループを管
理することもできます。
Amazon Redshift では、クラスターセキュリティグループへの変更は直ちに適用されます。そのた
め、クラスターセキュリティグループがクラスターに関連付けられていると、更新されたクラスター
セキュリティグループのインバウンドクラスターアクセスルールも直ちに適用されます。
コンソールを使用したクラスターセキュリティグ
ループの管理
Amazon Redshift コンソールを使用してクラスターセキュリティグループを作成、変更、および削除
できます。また、Amazon Redshift コンソールで default クラスターセキュリティグループを管理する
こともできます。タスクはすべて、クラスターセキュリティグループリストから開始します。クラス
ターセキュリティグループを管理するには、管理対象のクラスターサブネットグループを選択する必
要があります。
以下のクラスターセキュリティグループリストの例には、2 つのクラスターセキュリティグルー
プ、default クラスターセキュリティグループ、および securitygroup1 と呼ばれるカスタムクラ
スターセキュリティグループがあります。securitygroup1 が選択 (強調表示) されているので、そ
れを削除したり、そのタグを管理したりできるほか、それに関連付けられているルールおよびタグを
確認することもできます。
default クラスターセキュリティグループを削除することはできませんが、進入アクセスを認可するか
取り消すことでそれを変更できます。
セキュリティグループに関連付けられているルールを追加または変更するには、セキュリティグルー
プをクリックして [Security Group Connections] ページに移動します。
クラスターセキュリティグループの作成
クラスターセキュリティグループを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
3.
[Security Groups] タブで、[Create Cluster Security Group] をクリックします。
API Version 2012-12-01
125
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
4.
[Create Cluster Security Group] ダイアログボックスで、クラスターセキュリティグループの名前
と説明を指定します。
5.
[Create] をクリックします。
新しいグループがクラスターセキュリティグループのリストに表示されます。
クラスターセキュリティグループのタグ付け
クラスターセキュリティグループにタグを付けるには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
3.
[Security Groups] タブでクラスターセキュリティグループを選択し、[Manage Tags] をクリック
します。
API Version 2012-12-01
126
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
4.
[Manage Tags] ダイアログボックスで、次のいずれかを実行します。
a.
タグを削除します。
• [Applied Tags] セクションで、削除するタグの横にある [Delete] を選択します。
• [Apply Changes] をクリックします。
b.
タグを追加します。
• [Add Tags] セクションで、タグのキー/値のペアを入力します。
• [Apply Changes] をクリックします。
API Version 2012-12-01
127
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
Amazon Redshift リソースのタグ付けの詳細については、Amazon Redshift コンソールでタ
グを管理する方法 (p. 266) を参照してください。
クラスターセキュリティグループの進入ルールの管理
クラスターセキュリティグループの進入ルールを管理するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
3.
[Security Groups] タブのクラスターセキュリティグループリストで、ルールを管理するクラス
ターセキュリティグループをクリックします。
4.
[Security Group Connections] タブで、[Add Connection Type] をクリックします。
5.
[Add Connection Type] ダイアログで、次のいずれかを実行します。
API Version 2012-12-01
128
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
a.
CIDR/IP に基づく進入ルールを追加する。
• [Connection Type] ボックスで、[CIDR/IP] をクリックします。
• [CIDR/IP] ボックスで、範囲を指定します。
• [Authorize] をクリックします。
b.
EC2 セキュリティグループに基づく進入ルールを追加する。
• [Connection Type] で [EC2 Security Group] を選択します。
• 使用する AWS アカウントを選択します。デフォルトでは、現在コンソールにログインし
ているアカウントが使用されます。[Another account] を選択すると、AWS アカウント ID
を指定する必要があります。
• [EC2 Security Group Name] ボックスで、使用する EC2 セキュリティグループの名前をク
リックします。
• [Authorize] をクリックします。
クラスターセキュリティグループの進入ルールの取り消し
クラスターセキュリティグループの進入ルールを取り消すには
1.
2.
3.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
ナビゲーションペインで、[Security] をクリックします。
[Security Groups] タブのクラスターセキュリティグループリストで、ルールを管理するクラス
ターセキュリティグループをクリックします。
API Version 2012-12-01
129
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
4.
[Security Group Connections] タブで、削除するルールを選択し、[Revoke] をクリックします。
クラスターセキュリティグループの進入ルールのタグ付け
クラスターセキュリティグループの進入ルールにタグを付けるには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
3.
[Security Groups] タブで、ルールを管理する対象のクラスターセキュリティグループをクリック
します。
4.
[Security Group Connections] タブで、タグを付けるルールを選択し、[Manage Tags] をクリック
します。
5.
[Manage Tags] ダイアログボックスで、次のいずれかを実行します。
a.
タグを削除します。
• [Applied Tags] セクションで、削除するタグの横にある [Delete] を選択します。
• [Apply Changes] をクリックします。
API Version 2012-12-01
130
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
b.
タグを追加します。
Note
EC2 セキュリティグループルールをタグ付けすると、EC2 セキュリティグループ自
体ではなくルールにタグが付けられます。EC2 セキュリティグループにもタグ付け
する場合、別個に行う必要があります。
• [Add Tags] セクションで、タグのキー/値のペアを入力します。
• [Apply Changes] をクリックします。
API Version 2012-12-01
131
Amazon Redshift 管理ガイド
コンソールを使用したクラス
ターセキュリティグループの管理
Amazon Redshift リソースのタグ付けの詳細については、Amazon Redshift コンソールでタグを
管理する方法 (p. 266) を参照してください。
クラスターセキュリティグループの削除
1 つ以上のクラスターに関連付けられているクラスターセキュリティグループは削除できません。
クラスターセキュリティグループを削除するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで、[Security] をクリックします。
3.
[Security Groups] タブで、削除するクラスターセキュリティグループを選択し、[Delete] をク
リックします。
1 つの行を選択して、[Delete] ボタンを有効にする必要があります。
Note
default クラスターセキュリティグループは削除できません。
API Version 2012-12-01
132
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したクラ
スターセキュリティグループの管理
4.
[Delete Cluster Security Groups] ダイアログボックスで [Continue] をクリックします。
クラスターによって使用されているクラスターセキュリティグループは削除できません。次の例
では、securitygroup1 が examplecluster2 で使用されていることを示します。
クラスターセキュリティグループとクラスターの関連付け
EC2-Classic プラットフォームでプロビジョニングするクラスターごとに、1 つ以上のクラスターセ
キュリティグループが関連付けられます。クラスターの作成時にクラスターセキュリティグループを
クラスターに関連付けることも、クラスターを変更することによってクラスターセキュリティグルー
プを関連付けることもできます。詳細については、クラスターを作成するには (p. 16) および クラス
ターを変更するには (p. 24) を参照してください。EC2-VPC プラットフォームを使用する場合は、
「クラスターの VPC セキュリティグループの管理 (p. 39)」を参照して、VPC セキュリティグループ
をクラスターに関連付ける方法を確認してください。
AWS SDK for Java を使用したクラスターセキュリ
ティグループの管理
次の例では、クラスターセキュリティグループで行う一般的な操作について説明します。
• 新しいクラスターセキュリティグループを作成します。
• クラスターセキュリティグループに進入ルールを追加します。
• クラスターの設定を変更してクラスターセキュリティグループをクラスターと関連付けます。
API Version 2012-12-01
133
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したクラ
スターセキュリティグループの管理
デフォルトでは、新規クラスターセキュリティグループを作成するときに、進入ルールは作成され
ていません。この例では、2 つの進入ルールを追加して新規クラスターセキュリティグループを変
更します。1 つの進入ルールは CIDR/IP 範囲を指定して追加し、もう 1 つのルールは所有者 ID と
Amazon EC2 セキュリティグループの組み合わせを指定して追加します。
以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java 実
行例 (p. 148)」を参照してください。コードを更新し、クラスター識別子および AWS アカウント番
号を指定する必要があります。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.*;
public class CreateAndModifyClusterSecurityGroup {
public static
public static
public static
identifier***";
public static
AmazonRedshiftClient client;
String clusterSecurityGroupName = "securitygroup1";
String clusterIdentifier = "***provide cluster
String ownerID = "***provide account id****";
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
CreateAndModifyClusterSecurityGroup.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
try {
createClusterSecurityGroup();
describeClusterSecurityGroups();
addIngressRules();
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()
API Version 2012-12-01
134
Amazon Redshift 管理ガイド
AWS SDK for Java を使用したクラ
スターセキュリティグループの管理
.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();
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.");
API Version 2012-12-01
135
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を使用し
たクラスターセキュリティグループの管理
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());
}
}
}
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
API Version 2012-12-01
136
Amazon Redshift 管理ガイド
Amazon Redshift クラスターが AWS のサービスに
アクセスすることを許可する IAM ロールを作成する
ユーザーに代わって Amazon
Redshift が他の AWS のサービスに
アクセスすることを許可する
一部の Amazon Redshift 機能では、ユーザーに代わって Amazon Redshift が他の AWS のサービス
にアクセスする必要があります。例えば、COPY および UNLOAD コマンドでは、Amazon Simple
Storage Service (Amazon S3) バケットを使用してデータを Amazon Redshift クラスターにロードま
たはアンロードできます。Amazon Redshift クラスターがユーザーに代わってタスクを実行するに
は、クラスターにセキュリティ認証情報を指定する必要があります。セキュリティ認証情報は、AWS
アクセスキーにするか、AWS Identity and Access Management (IAM) ロールを指定する望ましい方法
を使用できます。
このセクションでは、他の AWS のサービスにアクセスするための適切なアクセス許可を持つ IAM
ロールを作成する方法を説明します。Amazon Redshift コマンドの実行時に、ロールをクラスターに
関連付けてから、そのロールの Amazon リソースネーム (ARN) を指定する必要があります。詳細につ
いては、「IAM ロールを使用して COPY および UNLOAD 操作を許可する (p. 140)」を参照してく
ださい。
Amazon Redshift クラスターが AWS のサービス
にアクセスすることを許可する IAM ロールを作
成する
ユーザーに代わって Amazon Redshift クラスターが他の AWS のサービスと通信することを許可する
IAM ロールを作成するには、以下の手順を実行します。
Amazon Redshift が AWS のサービスにアクセスすることを許可する IAM ロールを作成する
には
1.
2.
3.
IAM コンソールを開きます。
ナビゲーションペインで [Roles (ロール) ] を選択します。
[Create New Role] を選択します。
4.
[Role Name] で、ロールの名前 (RedshiftCopyUnload など) を入力します。[Next Step] を選択
します。
API Version 2012-12-01
137
Amazon Redshift 管理ガイド
IAM ロールへのアクセスの制限
5.
[AWS Service Roles] を選択し、[Amazon Redshift] までスクロールします。[Select] を選択しま
す。
6.
7.
[Attach Policy] ページで、対象となる AWS のサービスにアクセスするために Amazon Redshift ク
ラスターが必要とするアクセス許可を与えるポリシーを選択します。例えば、Amazon S3 から
データをロードする場合、AmazonS3ReadOnlyAccess ポリシーを選択できます。
[Next Step] を選択します。
8.
情報を確認してから、[Create Role] を選択します。
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.
3.
4.
IAM コンソール (https://console.aws.amazon.com) を開きます。
ナビゲーションペインで [Roles (ロール) ] を選択します。
特定の 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:ExternalId フィールドを制限する信頼関係のセクションの
sts:AssumeRole アクションに条件を追加します。ロールへのアクセスを許可する各データベー
スユーザーの ARN を含めます。
例えば、次の信頼関係では、us-west-2 リージョンの my-cluster クラスターで user1 と
user2 データベースユーザーのみがこの IAM ロールを使用するアクセス許可を持つよう指定され
ます。
{
"Version": "2012-10-17",
"Statement": [
API Version 2012-12-01
138
Amazon Redshift 管理ガイド
AWS リージョンへの IAM ロールの制限
{
"Effect": "Allow",
"Principal": {
"Service": "redshift.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringLike": {
"sts:ExternalId": [
"arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/
user1",
"arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/
user2"
]
}
}
}]
}
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.
ロールの使用を許可する特定のリージョンのリストで、Principal の Service リス
トを変更します。Service リストの各リージョンは、次の形式である必要がありま
す。redshift.region.amazonaws.com
API Version 2012-12-01
139
Amazon Redshift 管理ガイド
関連トピック
例えば、次の編集された信頼関係では、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"
}
]
}
6.
[Update Trust Policy] を選択します。
関連トピック
• IAM ロールを使用して COPY および UNLOAD 操作を許可する (p. 140)
IAM ロールを使用して COPY および UNLOAD 操
作を許可する
COPY コマンドを使用してデータを Amazon Redshift にロード (またはインポート) および UNLOAD
コマンドを使用してデータを Amazon Redshift からアンロード (またはエクスポート) できま
す。COPY または UNLOAD コマンドを使用する場合、Amazon Redshift クラスターを許可するセ
キュリティ認証情報を指定して Amazon S3 バケットなどの送信先に対するデータの読み取りと書き
込みを行う必要があります。セキュリティ認証情報は、AWS アクセスキーまたは IAM ロールを指定
する望ましい方法にすることができます。IAM ロールを指定した場合、その IAM ロールはデータを
ロードまたはデータをアンロードするクラスターに関連付けられる必要があります。Amazon Redshift
を許可して Amazon Redshift に対してデータをコピーまたはデータをアンロードする IAM ロールの作
成については、ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを
許可する (p. 137) を参照してください。
COPY または UNLOAD コマンドで IAM ロールを使用する手順は、次のとおりです。
• Amazon Redshift クラスターで使用する IAM ロールを作成します。
• IAM ロールをクラスターに関連付けます。
• COPY または UNLOAD コマンドを呼び出す場合、IAM ロールの ARN を含めます。
このトピックのセクションでは、IAM ロールを Amazon Redshift クラスターに関連付ける方法につ
いて説明します。 IAM ロールの作成に関する詳細は、ユーザーに代わって Amazon Redshift が他の
AWS のサービスにアクセスすることを許可する (p. 137) を参照してください。
API Version 2012-12-01
140
Amazon Redshift 管理ガイド
IAM ロールをクラスターに関連付ける
COPY コマンドの使用の詳細については、データのロードを参照してください。UNLOAD コマンドの
使用の詳細については、データのアンロードを参照してください。
IAM ロールをクラスターに関連付ける
ユーザーの代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する IAM
ロールを作成した後、そのロールを使用してデータをロードまたはアンロードする前に、そのロール
を Amazon Redshift クラスターに関連付ける必要があります。
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"
],
"Resource": [
"arn:aws:redshift:123456789012:us-east-1:cluster/myredshift-cluster",
"arn:aws:redshift:123456789012:us-east-1:cluster/my-secondredshift-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"
]
}
]
}
API Version 2012-12-01
141
Amazon Redshift 管理ガイド
IAM ロールをクラスターに関連付ける
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.
[Manage IAM Roles] を選択します。
5.
IAM ロールをクラスターに関連付けるには、[Available roles] リストから IAM ロールを選択しま
す。リストに表示されない場合は (IAM ロールがまだ作成されていない場合など)、手動で IAM
ロールを入力することもできます。
6.
クラスターから IAM ロールの関連付けを解除する場合は、関連付けを解除する IAM ロールの X
を選択します。
7.
クラスターの IAM ロールの関連付けを変更することが完了したら、[Apply Changes] を選択して
クラスターに関連付けられる IAM ロールを更新します。
[Manage IAM Roles] パネルは、クラスターの IAM ロール関連付けのステータスを示します。クラス
ターに関連付けられているロールは、in-sync のステータスを示します。クラスターとの関連付けの
途中であるロールは、 adding のステータスを示します。クラスターから関連付けを解除されるロー
ルは、removing のステータスを示します。
API Version 2012-12-01
142
Amazon Redshift 管理ガイド
IAM ロールをクラスターに関連付ける
IAM ロールの関連付けを管理する AWS CLI の使用
次のアプローチを使用して、AWS CLI でクラスターに対する IAM ロールの関連付けを管理できま
す。
AWS CLI を使用して IAM ロールをクラスターに関連付ける
クラスターの作成時に IAM ロールをクラスターに関連付けるには、create-cluster コマンド
の --iam-role-arns パラメーターで 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という名前の既存のクラスターに関連付けます。
API Version 2012-12-01
143
Amazon Redshift 管理ガイド
IAM ロールをクラスターに関連付ける
aws redshift modify-cluster-iam-roles \
--cluster-identifier "my-redshift-cluster" \
--add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
AWS CLI を使用してクラスターから IAM ロールの関連付けを解除する
クラスターから IAM ロールの関連付けを解除するには、modify-cluster-iam-roles コマンドの
--remove-iam-roles パラメーターで IAM ロールの ARN を指定します。modify-cluster-iamroles コマンドを呼び出すときに削除する IAM ロールを最大 10 まで指定できます。
次の例では、my-redshift-clusterという名前のクラスターから 123456789012 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": [
API Version 2012-12-01
144
Amazon Redshift 管理ガイド
IAM ロールをクラスターに関連付ける
{
"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"
}
],
...
}
]
}
AWS CLI の使用の詳細については、AWS Command Line Interface User Guide を参照してください。
API Version 2012-12-01
145
Amazon Redshift 管理ガイド
Amazon Redshift 管理インターフェイスの使用
Amazon Redshift クラスターとデー
タベースへのアクセス
Amazon Redshift、クラスター、およびクラスター内のデータベースの作成、管理、および削除に使用
できる管理ツールとインターフェイスが複数あります。
• Amazon Web Services 管理ツールとインターフェイスを使用すると、Amazon Redshift クラスター
の作成、管理、および削除を行うことができます。これらのツールとインターフェイスは、データ
ウェアハウスのセットアップ、操作、およびスケーリング、容量のプロビジョニング、クラスター
のモニタリングとバックアップ、Amazon Redshift エンジンへのパッチやアップグレードの適用と
いう作業を管理します。
• AWS マネジメントコンソールを使用すると、クラスターの作成、管理、および削除を対話的に行
うことができます。このガイドのトピックでは、AWS マネジメントコンソールを使用して特定の
タスクを実行する場合の手順について説明します。
• 複数ある AWS 管理インターフェイスまたは SDK のいずれかを使用して、クラスターの作成、管
理、および削除をプログラムで実行することができます。詳細については、「Amazon Redshift
管理インターフェイスの使用 (p. 146)」を参照してください。
• Amazon Redshift クラスターを作成した後は、PostgreSQL ODBC または JDBC ドライバーで SQL
ステートメントを実行するクライアントアプリケーションまたはツールを使用して、クラスター内
のデータベースの作成、管理、および削除を行うことができます。
• クライアント SQL ツールのインストールとクラスターへの接続の詳細については、「クラスター
への接続 (p. 156)」を参照してください。
• データベースの設計と Amazon Redshift でサポートされる SQL ステートメントの詳細について
は、Amazon Redshift Database Developer Guide を参照してください。
Amazon Redshift クラスターおよびデータベースの実行に使用されるインターフェイスは、セキュリ
ティグループや IAM ポリシーなどのアクセス制御メカニズムに準拠しています。詳細については、
「セキュリティ (p. 110)」を参照してください。
Amazon Redshift 管理インターフェイスの使用
トピック
• Amazon Redshift での AWS SDK for Java の使用 (p. 147)
• HTTP リクエストへの署名 (p. 149)
API Version 2012-12-01
146
Amazon Redshift 管理ガイド
AWS SDK for Java の使用
• Amazon Redshift CLI のセットアップ (p. 152)
Amazon Redshift は、AWS SDK、AWS コマンドラインインターフェイス、および Amazon Redshift
管理 API という、Amazon Redshift クラスターの作成、管理、および削除に使用できる複数の管理イ
ンターフェイスをサポートしています。
Amazon Redshift QUERY API – クエリリクエストを送信することで呼び出すことができる Amazon
Redshift 管理 API です。クエリリクエストは、HTTP 動詞 (GET または POST) とクエリパラメー
ター Action で記述する HTTP または HTTPS リクエストです。クエリ API の呼び出しは、Amazon
Redshift サービスの最も直接的なアクセス方法ですが、エラー処理やリクエストに署名するハッシュ
の生成など、低レベルの詳細な作業をアプリケーションで処理する必要があります。
• クエリ API リクエストの構築と署名の詳細については、「HTTP リクエストへの署名 (p. 149)」を
参照してください。
• Amazon Redshift のクエリ API アクションとデータ型の詳細については、Amazon Redshift API
Reference を参照してください。
AWS SDK – アマゾン ウェブ サービスにはソフトウェア開発キット (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 のリストとマニュアルのリンクについては、「Tools for
Amazon Web Services」を参照してください。
• このガイドでは、Java SDK を使用して Amazon Redshift を操作する例について説明します。これ
以外の AWS SDK コードサンプルについては、「Sample Code & Libraries」を参照してください。
AWS コマンドラインインターフェイス (CLI) – Windows、Mac、および Linux コンピュータから
AWS サービスを管理する際に使用できるコマンドラインツールセットが用意されています。AWS
CLI には、Amazon Redshift クエリ API アクションに基づくコマンドが含まれています。
• Amazon Redshift CLI のインストールとセットアップの詳細については、「Amazon Redshift CLI の
セットアップ (p. 152)」を参照してください。
• Amazon Redshift CLI コマンドのリファレンスドキュメントについては、AWS CLI リファレンス の
「Amazon Redshift」を参照してください。
Amazon Redshift での AWS SDK for Java の使用
AWS SDK for Java には AmazonRedshiftClient というクラスがあります。このクラスを使用して
Amazon Redshift とやり取りすることができます。AWS SDK for Java のダウンロードの詳細について
は、「AWS SDK for Java 」を参照してください。
Note
AWS SDK for Java には、Amazon Redshift へのアクセスに使用できるスレッドセーフなクラ
イアントが用意されています。最善の方法としては、ご利用のアプリケーションでクライア
ントを 1 つ作成し、そのクライアントをスレッド間で再利用することです。
AmazonRedshiftClient クラスには、基礎となる Amazon Redshift クエリ API のアクションに対応
するメソッドが定義されています (これらのアクションについては、Amazon Redshift の API リファ
API Version 2012-12-01
147
Amazon Redshift 管理ガイド
AWS SDK for Java の使用
レンスを参照してください)。メソッドを呼び出す場合、対応するリクエストオブジェクトと応答オブ
ジェクトを作成する必要があります。リクエストオブジェクトには、実際のリクエストで渡す必要が
ある情報が含まれます。応答オブジェクトには、リクエストに対する応答で Amazon Redshift から返
される情報が含まれます。
例えば、AmazonRedshiftClient クラスには、クラスターをプロビジョニングする
createCluster メソッドがあります。このメソッドは、基礎となる CreateCluster API アクションに
対応します。CreateClusterRequest オブジェクトを作成して、createCluster メソッドで情報
を渡します。
AmazonRedshiftClient client = new AmazonRedshiftClient(credentials);
client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");
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 プロジェクトを作成します。
AWS Toolkit for Eclipse Getting Started Guide の「Setting Up the AWS Toolkit for Eclipse」の手順
に従います。
2. お読みになっているこのドキュメントのセクションからサンプルコードをコピーし、新しい Java
クラスファイルとしてプロジェクトに貼り付けます。
3. コードを実行します。
コマンドラインからの Amazon Redshift の Java 実行例
コマンドラインからの 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 の「Providing AWS Credentials in the AWS SDK for Java」を参照してくださ
い。
d. Java プログラムコンパイラ (javac) と Java アプリケーションランチャー (java) を作業ディレ
クトリから実行できることを確認します。次のコマンドを実行することでテストできます。
javac -help
API Version 2012-12-01
148
Amazon Redshift 管理ガイド
HTTP リクエストへの署名
java -help
2. 実行するコードを .java ファイルに記入し、そのファイルを src フォルダに保存します。
このプロセスを説明するために、ここでは、AWS SDK for Java を使用したクラスターセ
キュリティグループの管理 (p. 133) のコードを使用し、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 の場合は「:」です。
コード例によっては、この例よりも多くのライブラリが必要になる場合があります。また、使用し
ている AWS SDK のバージョンによってはサードパーティフォルダ名が異なる場合があります。こ
のような場合は、必要に応じてクラスパス (-cp) を調整してください。
このドキュメントのサンプルを実行するには、Amazon Redshift をサポートする AWS SDK のバー
ジョンを使用してください。最新バージョンの AWS SDK for Java を入手するには、「AWS SDK
for Java 」を参照してください。
エンドポイントの設定
デフォルトで、AWS SDK for Java はエンドポイント https://redshift.useast-1.amazonaws.com/ を使用しています。次の Java コードスニペットに示すよう
に、client.setEndpoint メソッドを使用してエンドポイントを明示的に設定できます。
client = new AmazonRedshiftClient(credentials);
client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");
クラスターをプロビジョニングできる、サポート対象の AWS リージョンのリストについては、アマ
ゾン ウェブ サービス用語集の「Regions and Endpoints」セクションを参照してください。
HTTP リクエストへの署名
Amazon Redshift では、管理 API に送信するすべてのリクエストが署名によって認証されている必要
があります。このトピックでは、リクエストに署名する方法について説明します。
いずれかの AWS Software Development Kit (SDK) または AWS コマンドラインインターフェイスを使
用する場合、リクエストは自動的に署名されるため、このセクションは省略してかまいません。AWS
SDK の使用方法の詳細については、「Amazon Redshift 管理インターフェイスの使用 (p. 146)」を
参照してください。Amazon Redshift コマンドラインインターフェイスの詳細な使用方法について
は、Amazon Redshift コマンドラインリファレンスを参照してください。
API Version 2012-12-01
149
Amazon Redshift 管理ガイド
HTTP リクエストへの署名
リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。暗号化
ハッシュは、入力データから一意のハッシュ値生成して返す関数です。ハッシュ関数に渡される
入力データとしては、リクエストのテキスト、およびシークレットアクセスキーが該当します。
ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リクエストの
Authorization ヘッダーの一部です。
Note
For API access, you need an access key ID and secret access key. For more information
about creating access keys, see How Do I Get Security Credentials? in the AWS General
Reference.
Amazon Redshift は、リクエストを受け取ると、リクエストの署名に使用されたものと同じハッシュ
関数と入力データを使用して署名を再計算します。再計算された署名がリクエストに含まれる署名と
一致した場合、Amazon Redshift はリクエストを処理します。それ以外の場合、リクエストは拒否さ
れます。
Amazon Redshift は、AWS 署名バージョン 4 を使用した認証をサポートします。署名を計算するプロ
セスは 3 つのタスクで構成されます。これらのタスクをこの後の例に示します。
• タスク 1: 正規リクエストを作成する
HTTP リクエストを正規形式に変換します。正規形式を使用する必要がある理由は、送信した署名
と比較するために、Amazon Redshift で同じ正規形式を使用して署名が計算されるためです。
• タスク 2: 署名文字列を作成する
暗号化ハッシュ関数への入力値の 1 つとして使用する文字列を作成します。署名文字列と呼ばれる
文字列は、ハッシュアルゴリズムの名前、要求日付、認証情報スコープの文字列、および前のタス
クで正規化されたリクエストを結合したものです。認証情報スコープの文字列自体は、日付、リー
ジョン、およびサービス情報を結合したものです。
• タスク 3: 署名を作成する
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/
API Version 2012-12-01
150
Amazon Redshift 管理ガイド
HTTP リクエストへの署名
?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. 150)」で計算されるリクエストの正規形式は次のとおり
です。
POST
/
content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z
content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
正規リクエストの最後の行はリクエスト本文のハッシュです。この API にはクエリパラメーターがな
いため、正規リクエストの 3 行目は空です。
「タスク 2: 署名する文字列を作成する (p. 150)」で署名する文字列は次のとおりです。
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
署名する文字列の最初の行はアルゴリズム、2 行目はタイムスタンプ、3 行目は認証情報スコープ、
最後の行は「タスク 1: 正規リクエストを作成する (p. 150)」で作成した正規リクエストのハッシュ
です。認証情報スコープで使用するサービス名は redshift です。
「タスク 3: 署名を作成する (p. 150)」について、派生キーは次のように表されます。
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
API Version 2012-12-01
151
Amazon Redshift 管理ガイド
Amazon Redshift CLI のセットアップ
最後のステップは、Authorization ヘッダーの構築です。デモンストレーションのアクセスキー
AKIAIOSFODNN7EXAMPLE の場合、ヘッダーは次のとおりです (読みやすいように改行しています)。
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/useast-1/redshift/aws4_request,
SignedHeaders=content-type;host;x-amz-date,
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
Amazon Redshift CLI のセットアップ
ここでは、Amazon Redshift の管理に使用するために、AWS CLI コマンドラインツールをセット
アップして実行する方法について説明します。Amazon Redshift コマンドラインツールは、AWS
Command Line Interface (AWS CLI) で実行されており、Python (http://www.python.org/) を使用ま
す。AWS CLI は、Python をサポートするあらゆるオペレーティングシステムで実行できます。
インストール手順
Amazon Redshift コマンドラインツールを初めて使用する場合、まず AWS CLI をセットアップ
し、Amazon Redshift CLI オプションを定義した設定ファイルを追加します。
別の AWS サービス用に AWS CLI のインストールと設定が完了している場合は、この手順を省略でき
ます。
AWS Command Line Interface をインストールするには
1.
2.
3.
「Getting Set Up with the AWS Command Line Interface」を参照し、AWS CLI のインストール手
順に従います。
For CLI access, you need an access key ID and secret access key. For more information about
creating access keys, see How Do I Get Security Credentials? in the AWS General Reference.
アクセスキー、デフォルトのリージョン、コマンドの出力形式など、設定情報を含むファイル
を作成します。次に、そのファイルを参照する AWS_CONFIG_FILE 環境変数を設定します。詳
細な手順については、AWS Command Line Interface ユーザーガイド の「Configuring the AWS
Command Line Interface」を参照してください。
テストコマンドを実行して、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 を使用してクラスターをプロビ
API Version 2012-12-01
152
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. 152)」を参照してください。
ステップ 1.3: クライアントツールおよびドライバーをダウンロードする
PostgreSQL JDBC または ODBC ドライバーを使用する Amazon Redshift クラスターへの接続には、
任意の SQL クライアントツールを使用できます。現在そのようなソフトウェアがインストールされて
いない場合は、SQL Workbench をおすすめします。SQL Workbench は無料のクロスプラットフォー
ムツールです。このツールを使用して Amazon Redshift クラスター内のテーブルへのクエリを実行で
きます。このセクションの例では、SQL Workbench クライアントを使用しています。
SQL Workbench と PostgreSQL ドライバーをダウンロードする方法については、「Amazon Redshift
Getting Started Guide」にアクセスしてください。
ステップ 2: クラスターを起動する
これで、AWS コマンドラインインターフェイス (CLI) を使用してクラスターを起動する準備ができま
した。
Important
ここで起動するクラスターはライブとなります (サンドボックスで実行されるわけではありま
せん)。クラスターを終了するまで、そのクラスターについて標準使用料が発生します。料金
表については、Amazon Redshift の料金表ページを参照してください。
ここで説明した演習を中断せずに完了し、終了時にクラスターを終了すれば、合計料金はご
くわずかです。
create-cluster コマンドには多くのパラメーターがあります。この演習で使用するパラメーター値
を次の表で説明します。要件に合ったクラスター構成を作成できるようにするため、実働環境にクラ
スターを作成する前に、すべての必須およびオプションのパラメーターを確認することをお勧めしま
す。詳細については、「create-cluster」を参照してください。
パラメーター名
この演習で使用するパラメーター値
Cluster Identifier
examplecluster
Master Username
masteruser
Master Password
TopSecret1
API Version 2012-12-01
153
Amazon Redshift 管理ガイド
Amazon Redshift CLI のセットアップ
パラメーター名
この演習で使用するパラメーター値
Node Type
ds1.xlarge または使用するノードサイズ。詳
細については、「クラスターおよびノードについ
て (p. 6)」を参照してください。
Cluster Type
single-node
クラスターを作成するには、次のコマンドを入力します。
aws redshift create-cluster --cluster-identifier examplecluster --masterusername 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...
}
[ClusterStatus] フィールドが [creating] から [available] に変わったら、クラスターは使用できる
状態です。
次のステップでは、アクセスを許可してクラスターに接続できるようにします。
ステップ 3: インバウンドトラフィックにクラスターアクセスを許可する
クラスターに接続するには、クライアントへのインバウンドアクセス権限を明示的に付与する必要が
あります。Amazon EC2 インスタンスまたは外部のコンピューターをクライアントとすることができ
ます。
前のステップでは、セキュリティグループを指定せずにクラスターを作成したため、そのクラスター
にはデフォルトのクラスターセキュリティグループが関連付けられています。デフォルトのクラス
ターセキュリティグループには、クラスターへのインバウンドトラフィックを認証するルールが含ま
れていません。新しいクラスターにアクセスするには、クラスターセキュリティグループへのインバ
ウンドトラフィックを処理するルール (進入ルール) を追加する必要があります。
インターネットで実行されるアプリケーションの進入ルール
インターネットからクラスターにアクセスする場合は、CIDR/IP (Classless Inter-Domain Routing IP)
アドレス範囲を承認する必要があります。この例では、CIDR/IP ルール 192.0.2.0/24 を使用します。
この範囲は、実際の IP アドレスとネットマスクに合わせて変更する必要があります。
API Version 2012-12-01
154
Amazon Redshift 管理ガイド
Amazon Redshift CLI のセットアップ
クラスターのネットワークへの着信を可能にするために、次のコマンドを入力します。
aws redshift authorize-cluster-security-group-ingress --cluster-securitygroup-name default --cidrip 192.0.2.0/24
EC2 インスタンスの進入ルール
Amazon EC2 インスタンスからクラスターにアクセスする場合は、Amazon EC2 セキュリティグルー
プを認可する必要があります。そのためには、セキュリティグループ名と、EC2 セキュリティグルー
プ所有者の 12 桁のアカウント番号を指定します。
Amazon EC2 コンソールを使用して、使用しているインスタンスに関連付けられた EC2 セキュリ
ティグループを確認できます。
お使いの AWS アカウント番号を確認するには、https://aws.amazon.com/ にアクセスし、[My
Account] ページにサインインします。そのページの右上隅に AWS アカウント番号が表示されていま
す。
この例では、Amazon EC2 セキュリティグループ名として myec2securitygroup を使用し、アカウ
ント番号として 123456789012 を使用します。これらの名前と番号は、実際の名前と番号に変更する
必要があります。
クラスターのネットワークへの着信を可能にするために、次のコマンドを入力します。
aws redshift authorize-cluster-security-group-ingress --cluster-securitygroup-name default --ec2-security-group-name myec2securitygroup --ec2security-group-owner 123456789012
ステップ 4: クラスターに接続する
デフォルトのクラスターセキュリティグループに進入ルールを追加したので、特定の CIDR/IP または
EC2 セキュリティグループから examplecluster に着信する接続が認可されます。
これでクラスターに接続する準備ができました。
API Version 2012-12-01
155
Amazon Redshift 管理ガイド
クラスターへの接続
クラスターへの接続については、「Amazon Redshift Getting Started Guide」を参照してください。
ステップ 5: テーブルの作成、データのアップロード、サンプルクエリの実行
テーブルの作成、データのアップロード、クエリの発行については、「Amazon Redshift 入門ガイ
ド」を参照してください。
ステップ 6: サンプルクラスターを削除する
クラスターを起動すると、以後それが使用可能な状態である限り、たとえ能動的に使用していなくて
も、クラスターの実行時間に基づき料金が請求されます。不要になったクラスターは削除できます。
クラスターを削除するときは、最終スナップショットを作成するかどうかを決定する必要がありま
す。これは演習であり、テスト用クラスターに重要なデータは含まれていないため、最終スナップ
ショットは省略します。
クラスターを削除するには、次のコマンドを入力します。
aws redshift delete-cluster --cluster-identifier examplecluster --skip-finalcluster-snapshot
おめでとうございます。クラスターの起動、アクセス権の設定、クラスターへの接続、クラスターの
終了をひととおり体験しました。
クラスターへの接続
Java Database Connectivity (JDBC)、Open Database Connectivity (ODBC) 接続を介して SQL クライ
アントツールから Amazon Redshift クラスターに接続できます。Amazon Redshift は、SQL クライア
ントツールをライブラリを提供していないため、それらを使用してクラスター内のデータを操作する
には、クライアントコンピューターまたは Amazon EC2 インスタンスにインストールする必要があり
ます。 JDBC または ODBC ドライバーをサポートするほとんどの SQL クライアントツールを使用で
きます。
このセクションでは、クライアントコンピューターまたは Amazon EC2 インスタンスが JDBC または
ODBC 接続を使用するように設定するプロセスと、クライアントをサーバーに接続するための関連す
るセキュリティオプションについて説明します。さらに、このセクションには、まだビジネスインテ
リジェンスツールを使用していない場合に、2 つのサンプルサードパーティ SQL クライアントツール
と SQL Workbench/J および psql をセットアップする方法とそこから接続する方法に関する情報もあ
ります。また、このセクションでは、クラスターにプログラムにより接続する方法を理解することも
できます。最後に、クラスターに接続しようとしたときに問題が発生した場合は、このセクションの
トラブルシューティング情報を確認して、考えられる解決策を見つけることができます。
トピック
• Amazon Redshift での接続の設定 (p. 156)
• クライアントツールおよびコードからクラスターに接続する (p. 184)
• Amazon Redshift での接続の問題のトラブルシューティング (p. 195)
Amazon Redshift での接続の設定
このセクションでは、SQL クライアントツールからクラスターに接続するように JDBC および
ODBC 接続を設定する方法を学習できます。また、JDBC および ODBC 接続をセットアップする方法
と、Secure Sockets Layer (SSL) およびサーバー証明書を使用してクライアント/サーバー間の通信を
暗号化する方法について説明します。
API Version 2012-12-01
156
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
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. 158)」と「ODBC 接続を設定
する (p. 164)」を参照してください。
クラスター接続文字列を検索する
SQL クライアントツールでクラスターに接続するには、クラスター接続文字列が必要です。クラス
ター接続文字列は、Amazon Redshift コンソールのクラスターの設定ページにあります。
クラスター接続文字列を取得するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
[Clusters] ページで、接続文字列を取得する対象のクラスターの名前をクリックします。
3.
そのクラスターの [Configuration] タブの [JDBC URL] または [ODBC URL] で、接続文字列をコ
ピーします。
次の例は米国西武リージョンで起動されたクラスターの接続文字列を示しています。別のリー
ジョンで起動しているクラスターの場合、接続文字列はそのリージョンのエンドポイントに基づ
くものになります。
API Version 2012-12-01
157
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
JDBC 接続を設定する
JDBC 接続を使用すると、多くのサードパーティ SQL クライアントツールから Amazon Redshift
クラスターに接続できます。これを行うには、JDBC ドライバーをダウンロードする必要がありま
す。JDBC 接続を使用する場合、このセクションの手順に従います。
トピック
• Amazon Redshift JDBC ドライバーをダウンロードします。 (p. 158)
• JDBC URL を取得する (p. 159)
• JDBC ドライバー設定オプション (p. 160)
Amazon Redshift JDBC ドライバーをダウンロードします。
Amazon Redshift には、JDBC 4.2 API、JDBC 4.1 API、または JDBC 4.0 API と互換性のあるツー
ル用のドライバが用意されています。これらのドライバでサポートされる機能については、Amazon
RedshiftJDBC ドライバリリースノートを参照してください。
SQL クライアントツールまたはアプリケーションで使用されている JDBC API のバージョンに応じ
て、次のいずれかをダウンロードします。
Note
ドライバーのクラス名として、com.amazon.redshift.jdbc.Driver を使用するか、以下のドライ
バーごとに記載されているバージョン別のクラス名を使用します。
• JDBC 4.2 互換ドライバ: https://s3.amazonaws.com/redshift-downloads/drivers/
RedshiftJDBC42-1.2.1.1001.jar.
このドライバーのクラス名は com.amazon.redshift.jdbc42.Driver です。
• JDBC 4.1 互換ドライバ: https://s3.amazonaws.com/redshift-downloads/drivers/
RedshiftJDBC41-1.2.1.1001.jar.
このドライバーのクラス名は com.amazon.redshift.jdbc41.Driver です。
• JDBC 4.0 互換ドライバ: https://s3.amazonaws.com/redshift-downloads/drivers/
RedshiftJDBCRedshiftJDBC4-1.2.1.1001.jar
このドライバーのクラス名は com.amazon.redshift.jdbc4.Driver です。
次に、Amazon Redshift JDBC ドライバーのライセンス契約をダウンロードして確認します。
これらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。
前バージョンの JDBC ドライバ
ツールに特定のバージョンのドライバが必要な場合にのみ、Amazon Redshift JDBC ドライバの以前
のバージョンをダウンロードします。以前のバージョンのドライバでサポートされる機能について
は、「Amazon Redshift JDBC ドライバリリースノート」をダウンロードしてください。
以前のバージョンの JDBC 4.2 互換ドライバは以下のとおりです。
• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.1.17.1017.jar.
以前のバージョンの JDBC 4.1 互換ドライバは以下のとおりです。
• https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.17.1017.jar.
API Version 2012-12-01
158
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
• 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/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 URL を取得する
SQL クライアントツールから Amazon Redshift クラスターに接続する前に、クラスターの JDBC URL
を確認しておく必要があります。JDBC の URL 形式を次に示します。
jdbc:redshift://#######:###/######
Note
jdbc:postgresql://#######:###/###### という旧形式で指定されている JDBC URL は、まだ
動作します。
フィールド
値
jdbc
接続用のプロトコルです。
Redshift
データベースに接続するために Amazon Redshift ドライバを使用するよう指定す
るサブプロトコルです。
#######
Amazon Redshift クラスターのエンドポイント。
###
クラスターを起動したときに指定したポート番号。ファイアウォールがある場
合、このポートが開いていて使用できることを確認します。
database
クラスター用に作成したデータベース。
JDBC URL の例を次に示します。jdbc:redshift://examplecluster.abc123xyz789.uswest-2.redshift.amazonaws.com:5439/dev
JDBC URL を取得するには
1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2. 右上で、クラスターを作成したリージョンを選択します。
API Version 2012-12-01
159
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
Amazon Redshift 入門ガイド に従って、[US West (Oregon)] を選択します。
3. 左のナビゲーションペインの [Clusters] をクリックし、クラスターをクリックします。
Amazon Redshift 入門ガイド に従った場合は、[examplecluster] をクリックします。
4. [Configuration] タブで、[Cluster Database Properties] の下にある、クラスターの JDBC URL をコ
ピーします。
クライアントコンピューターがデータベースに接続できない場合、考えられる問題をトラブルシュー
ティングすることができます。詳細については、「Amazon Redshift での接続の問題のトラブル
シューティング (p. 195)」を参照してください。
JDBC ドライバー設定オプション
Amazon Redshift JDBC ドライバーの動作を制御するには、次の表で説明する設定オプションを
JDBC URL に付加します。例えば、サーバー証明書を使用せずに Secure Socket Layer (SSL) を使用
して、以下の JDBC URL がクラスターに接続します。
jdbc:redshift://examplecluster.abc123xyz789.uswest-2.redshift.amazonaws.com:5439/dev?
ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory
SSL オプションの詳細については、「SSL を使用して接続する (p. 180)」を参照してください。
JDBC オプション
一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
AuthMech
いいえ
DISABLE
使用する認証メカニズム。以下の値を指定できま
す。
• DISABLE - 非 SSL 接続を確立します。
• ALLOW — 非 SSL 接続の確立を試みます。接続に
失敗すると、次に SSL 接続を試みます。
API Version 2012-12-01
160
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
JDBC オプション
一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
• REQUIRE — SSL 接続を確立します。
• PREFER — SSL 接続の確立を試みます。接続に
失敗すると、次に非 SSL 接続を試みます。
BlockingRowsMode いいえ
0
メモリに保持する行数。1 つの行が破棄されると、
その代わりとして別の行がロードされます。
DisableIsValidQueryいいえ
false
デフォルトでは、DisableIsValidQuery は False に設
定されます。これにより、データベース接続が予期
せずに終了した場合でも、どの時点で JDBC ドライ
バーの有効なデータベース接続が失われたかを java
Connection.isValid () メソッドで検出できます。バー
ジョン 1.2.1 より前の Amazon Redshift JDBC ドラ
イバーでは、どの時点で有効な接続が失われたかを
確実に検出しませんでした。以前のドライバーで確
認された動作を復元するには、DisableIsValidQuery
を True に設定します。
DSILogLevel
0
ログ記録を有効にし、ログファイルに含まれる詳細
量を指定します。次の表に、ログ記録の詳細レベル
を示します。
いいえ
• 0 – すべてのログ記録を無効にします。
• 1 – ドライバの中止につながる重大なエラーイベン
トを記録します。
• 2 – ドライバの実行の続行を許可する可能性がある
エラーイベントを記録します。
• 3 – 有害な可能性がある状況を記録します。
• 4 – ドライバの進行状況を示す全般的な情報を記録
します。
• 5 – ドライバのデバッグに役立つ詳細な情報を記録
します。
• 6 – すべてのドライバアクティビティを記録しま
す。
FilterLevel
いいえ
NOTICE
クライアントが処理するメッセージの最小重要度。
以下の値を指定できます (重要度が最も低い値から最
も高い値の順)。
• DEBUG
• INFO
• NOTICE
• WARNING
• LOG
• ERROR
API Version 2012-12-01
161
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
JDBC オプション
一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
loginTimeout
はい
0
サーバーに接続するときにタイムアウトするまで待
つ秒数。接続を確立するときにこのしきい値よりも
時間がかかると、接続は中止されます。
このプロパティがデフォルト値の 0 に設定されてい
ると、接続はタイムアウトしません。
loglevel
はい
null
ドライバーによって出力されるログ情報の量。
デフォルトでは、ログ記録は行われません。情報
はドライバーマネージャーの LogStream または
LogValue オプションで指定されている場所に出力さ
れます。以下の値を指定できます。
• 2 (DEBUG) — 多くの詳細な情報をログに記録しま
す。
• 1 (INFO) — より少ない詳細をログに記録します。
Note
パフォーマンスに影響を与える可能性がある
ため、ドライバの問題をトラブルシューティ
ングする場合にのみ、このプロパティを使用
してください。
OpenSourceSubProtocolOverride
いいえ
false
有効になっている場合、この設定は、Amazon
Redshift JDBC ドライバと PostgreSQL JDBC ドラ
イバとの間に発生する可能性のある競合を防ぎま
す。ご使用のアプリケーションが、Amazon Redshift
JDBC ドライバを使ってクラスターに接続すると同
時に、PostgreSQL JDBC ドライバを使って他のデー
タソースに接続する場合、PostgreSQL データソース
に接続するために使用する JDBC URL にこの接続属
性を追加します。以下の値を指定できます。
• true—OpenSourceSubProtocolOverride を有効に
します。
• false—OpenSourceSubProtocolOverride を無効に
します。
PWD
はい
null
Amazon Redshift サーバーに接続するために使用す
るパスワード。
socketTimeout
はい
0
タイムアウトする前にソケット読み込みオペレー
ションを待つ秒数。このオペレーションにこのしき
い値よりも時間がかかると、接続は閉じます。
このプロパティがデフォルト値の 0 に設定されてい
ると、接続はタイムアウトしません。
API Version 2012-12-01
162
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
JDBC オプション
一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
ssl
はい
false
SSL 接続を使用するかどうかを決定する値。以下の
値を指定できます。
• true — SSL を使用します。
• false — SSL を使用しません。
sslCert
いいえ
null
SSL を使用する場合のプロキシサーバーの確認用
に、信頼された追加の CA 証明書を含む、.pem ま
たは .crt ファイルの完全パス。このオプション
は、sslKey を指定した場合のみ必要です。
sslFactory
はい
null
サーバー証明書なしで SSL 接続を行うために使用す
るファクトリ。以下の値を指定できます。
• com.amazon.redshift.ssl.NonValidatingFactory
• org.postgresql.ssl.NonValidatingFactory
sslKey
いいえ
null
sslCert オプションで指定された証明書の確認用の
PKCS8 キーファイルを含む .der ファイルの完全パ
ス。このオプションは、sslCert を指定した場合の
み必要です。
sslMode
はい
null
サーバー証明書の確認方法を決定する設定。以下の
値を指定できます。
• verify-ca—SSL を使用する必要があり、サーバー
証明書を検証する必要があります。
• verify-full—SSL を使用する必要があります。サー
バー証明書を検証し、サーバーのホスト名が証明
書上のホスト名属性と一致する必要があります。
sslMode が指定されていない場合、サーバー証明書
は必要ありません。
sslMode オプションの詳細については、「Java で
SSL をサーバー証明書を使用する (p. 182)」を参照
してください。
sslRootCert
いいえ
null
SSL を使用する場合のプロキシサーバーの確認用
のルート証明機関 (CA) の証明書を含む .pem また
は .crt ファイルの完全パス。
sslPassword
いいえ
null
sslKey オプションで指定された暗号化キーファイ
ルのパスワード。このオプションは、sslKey が指
定され、.der ファイルが暗号化されている場合のみ
必要です。
tcpKeepAlive
はい
true
TCP キープアライブを有効にするかどうかを決定す
る値。以下の値を指定できます。
• true — TCP キープアライブを有効にします。
• false — TCP キープアライブを無効にします。
API Version 2012-12-01
163
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
JDBC オプション
一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
TCPKeepAliveMinutes
いいえ
5
TCP キープアライブの送信を開始する前にアイドル
状態である時間のしきい値 (分単位)。
UID
null
Amazon Redshift サーバーに接続するために使う
ユーザー名。
はい
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 クライアントツールを使用する場合は、ダ
ウンロードするドライバーが適切であることを確認してください。システムアーキテクチャが異なる
複数のツールを使用する場合、32 ビットドライバーと 64 ビットドライバーの両方をインストールす
る必要がある場合があります。
トピック
• クラスターの ODBC URL を取得する (p. 164)
• Microsoft Windows オペレーティングシステムに Amazon Redshift ODBC ドライバーをインス
トールして設定する (p. 166)
• Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールす
る (p. 169)
• Mac OS X に Amazon Redshift ODBC ドライバーをインストールする (p. 171)
• Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設定する (p. 172)
• ODBC ドライバー設定オプション (p. 176)
クラスターの 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 ビットドライバーの場合) に
なります。
API Version 2012-12-01
164
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
フィールド
値
サーバー
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/)を開きます。
2. 右上で、クラスターを作成したリージョンを選択します。
Amazon Redshift 入門ガイド に従って、[US West (Oregon)] を選択します。
3. 左のナビゲーションペインの [Clusters] をクリックし、クラスターをクリックします。
Amazon Redshift 入門ガイド に従った場合は、[examplecluster] をクリックします。
4. [Configuration] タブで、[Cluster Database Properties] の下にある、クラスターの ODBC URL をコ
ピーします。
API Version 2012-12-01
165
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
Microsoft Windows オペレーティングシステムに Amazon Redshift ODBC ドラ
イバーをインストールして設定する
システム要件
Amazon Redshift データウェアハウスにアクセスするクライアントコンピューターに Amazon
Redshift ODBC ドライバーをインストールします。ドライバーをインストールするコンピューター
は、それぞれ以下の最小システム要件を満たしている必要があります。
• Microsoft Windows Vista 以降のオペレーティング システム
• 55 MB の使用可能なディスク容量
• クライアントコンピューターの管理者権限
• データベースに接続するための Amazon Redshift マスターユーザーまたはユーザーアカウント
Windows オペレーティングシステムへの Amazon Redshift ドライバーのインストール
このセクションの手順を使用して、Microsoft Windows オペレーティングシステム用の Amazon
Redshift ODBC ドライバーをダウンロードします。Amazon Redshift での使用が認定されている、固
有のドライバーを必要とするサードパーティアプリケーションを実行している場合にのみ、これらと
は異なるドライバーを使用できます。
ODBC ドライバーをインストールするには
1. 使用する SQL クライアントツールまたはアプリケーションのシステムアーキテクチャーに応じ
て、次のいずれかをダウンロードします。
• 32 ビット: https://s3.amazonaws.com/redshift-downloads/drivers/
AmazonRedshiftODBC32-1.3.1.1000.msi
このドライバーの名前は Amazon Redshift (x86) です。
• 64 ビット: https://s3.amazonaws.com/redshift-downloads/drivers/
AmazonRedshiftODBC64-1.3.1.1000.msi
このドライバーの名前は Amazon Redshift (x64) です。
Note
SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに対応する
MSI パッケージをダウンロードします。たとえば、SQL クライアントツールが 64 ビット
である場合は、64 ビットドライバーをインストールします。
次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。こ
れらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。
2. .msi ファイルをダブルクリックし、ウィザードの手順に従ってドライバーをインストールします。
前バージョンの ODBC ドライバ
ツールに特定のバージョンのドライバが必要な場合にのみ、Amazon Redshift ODBC ドライバの以
前のバージョンをダウンロードします。以前のバージョンのドライバでサポートされる機能について
は、Amazon Redshift ODBC ドライバリリースノートを参照してください。
以前の 32 ビットドライバを以下に示します。
• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32-1.2.7.1007.msi
API Version 2012-12-01
166
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
• 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
• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC32.msi
以前の 64 ビットドライバを以下に示します。
• 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
• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC64.msi
Microsoft Windows での ODBC 接続用のシステム DSN エントリの作成
ODBC ドライバーをダウンロードしてインストールした後、クライアントマシンか Amazon EC2 イン
スタンスにデータソース名 (DSN) エントリを追加する必要があります。SQL クライアントツールは、
このデータソースを使用して Amazon Redshift データベースに接続します。
システム DSN エントリを作成するには
1. [Start] メニューのプログラムのリストでドライバーフォルダを見つけます。
Note
32 ビットドライバーをインストールした場合、フォルダ名は Amazon Redshift ODBC
Driver (32-bit) です。64 ビットドライバーをインストールした場合、フォルダ名は Amazon
Redshift ODBC Driver (64-bit) です。両方のドライバーをインストールした場合、ドライ
バーごとにフォルダがあります。
2. [ODBC Administrator] をクリックし、プロンプトが表示されたら、管理者認証情報を入力します。
3. コンピューターのすべてのユーザーに対してドライバーを設定する場合は [System DSN] タブを選
択し、使用するユーザーアカウントのみに対してドライバーを設定する場合は [User DSN] タブを
選択します。
4. [Add] をクリックします。[Create New Data Source] ウィンドウが開きます。
5. Amazon Redshift ODBC ドライバーを選択し、[Finish] をクリックします。[Amazon Redshift
ODBC Driver DSN Setup] ウィンドウが開きます。
6. [Connection Settings] で以下の情報を入力します。
データソース名
データソースの名前を入力します。クラスターへの接続を作成するときに、後でデータソースを識
別するためにどのような名前でも使用できます。たとえば、Amazon Redshift 入門ガイド に従った
場合は、この DSN に関連付けるクラスターを覚えやすくするために「exampleclusterdsn」と
入力します。
サーバー
Amazon Redshift クラスターのエンドポイントを指定します。この情報は Amazon Redshift
consoleのクラスターの詳細ページで見つけることができます。詳細については、「Amazon
Redshift での接続の設定 (p. 156)」を参照してください。
ポート
データベースが使用するポート番号を入力します。デフォルトでは、Amazon Redshift は 5439 を
使用しますが、クラスターが起動されたときに使用するように設定されたポートを使用する必要が
あります。
API Version 2012-12-01
167
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
データベース
Amazon Redshift データベースの名前を入力します。データベース名を指定せずにクラスターを起
動した場合は、「dev」と入力します。それ以外の場合は、起動プロセスで選択した名前を使用し
ます。Amazon Redshift 入門ガイド に従った場合は、「dev」と入力します。
7. [Credentials] で以下の情報を入力します。
ユーザー
データベースにアクセスするために使用するデータベースユーザーアカウントのユーザー名を入力
します。Amazon Redshift 入門ガイド に従った場合は、「masteruser」と入力します。
パスワード
データベースユーザーアカウントに対応するパスワードを入力します。
8. [SSL Settings] で次の値を指定します。
SSL 認証
Secure Sockets Layer (SSL) を処理するモードを選択します。テスト環境では prefer を使用でき
ますが、本稼働環境では、安全なデータ交換が必要な場合、verify-ca または verify-full を
使用します。SSL の使用の詳細については、「SSL を使用して接続する (p. 180)」を参照してく
ださい。
9. [Additional Options] で以下のいずれかのオプションを選択して、クエリの結果を SQL クライアン
トツールまたはアプリケーションに返す方法を指定します。
• [Single Row Mode]。クエリの結果が一度に 1 行ずつ SQL クライアントツールまたはアプリケー
ションに返されるようにする場合は、このオプションを選択します。このオプションは、大規
模な結果セットのクエリを実行するため、結果全体をメモリに取り込みたくない場合に使用しま
す。このオプションを無効にするとパフォーマンスは向上しますが、メモリ不足エラーの数が増
える可能性があります。
• [Use Declare/Fetch]。クエリの結果が一度に指定した行数ずつ SQL クライアントツールまたはア
プリケーションに返されるようにする場合は、このオプションを選択します。[Cache Size] で行
の数を指定します。
• [Use Multiple Statements]。クエリの複数の SQL ステートメントに基づいて結果が返されるよう
にするには、このオプションを選択します。
• [Retrieve Entire Result Into Memory]。クエリの結果が一度にすべて SQL クライアントツールま
たはアプリケーションに返されるようにする場合は、このオプションを選択します。デフォルト
は有効です。
10.[Logging Options] で以下の値を指定します。
• [Log Level]。ログ記録を有効にするかどうかと、ログに記録する詳細のレベルを指定するオプ
ションを選択します。
Important
問題に関する情報を取り込む必要がある場合にのみログ記録を有効にしてください。ロ
グ記録によってパフォーマンスが低下し、ディスク容量が大量に消費される可能性があ
ります。
• [Log Path]。ログファイルを保存するフォルダへの完全パスを指定します。
次に、[OK] をクリックします。
11.[Data Type Options] で以下の値を指定します。
• [Use Unicode]。Unicode 文字のサポートを有効にするには、このオプションを選択します。デ
フォルトは有効です。
• [Show Boolean Column As String]。文字列値としてビット値ではなくブール値が表示されるよう
にする場合は、このオプションを選択します。これを有効にすると、1 および 0 ではなく "1" お
よび "0" と表示されます。デフォルトは有効です。
API Version 2012-12-01
168
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
• [Text as LongVarChar]。テキストが LongVarChar として表示されるようにするには、このオプ
ションを選択します。デフォルトは有効です。
• [Max Varchar]。Varchar データ型の最大値を指定します。指定した最大値より大きい値を持つ
Varchar フィールドは LongVarchar に昇格します。デフォルト値は 255 です。
• [Max LongVarChar]。LongVarChar データ型の最大値を指定します。指定した最大値より大きい
LongVarChar フィールド値は切り捨てられます。デフォルト値は 8190 です。
• [Max Bytea]。Bytea データ型の最大値を指定します。指定した最大値より大きい Bytea フィール
ド値は切り捨てられます。デフォルト値は 255 です。
Note
Bytea データ型は、Amazon Redshift システムテーブルおよびビューでのみ使用され、他
ではサポートされていません。
次に、[OK] をクリックします。
12.[Test] をクリックします。クライアントコンピューターが Amazon Redshift データベースに接続で
きる場合は、次のメッセージが表示されます。Connection successful
クライアントコンピューターがデータベースに接続できない場合、考えられる問題をトラブルシュー
ティングすることができます。詳細については、「Amazon Redshift での接続の問題のトラブル
シューティング (p. 195)」を参照してください。
Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをイン
ストールする
システム要件
Amazon Redshift データウェアハウスにアクセスするクライアントコンピューターに Amazon
Redshift ODBC ドライバーをインストールします。ドライバーをインストールするコンピューター
は、それぞれ以下の最小システム要件を満たしている必要があります。
• 以下のいずれかの 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 ドライバーマネージャー
• iODBC ドライバーマネージャー 3.52.7 以降。iODBC ドライバーマネージャーの詳細とダウン
ロードリンクについては、Independent Open Database Connectivity のウェブサイトにアクセス
してください。
• unixODBC 2.3.0 以降。unixODBC ドライバーマネージャーの詳細とダウンロードリンクについて
は、unixODBC のウェブサイトにアクセスしてください。
• データベースに接続するための Amazon Redshift マスターユーザーまたはユーザーアカウント
Linux オペレーティングシステムでの Amazon Redshift ドライバーのインストール
このセクションの手順を使用して、サポートされている Linux ディストリビューションに Amazon
Redshift ODBC ドライバーをダウンロードしてインストールします。 インストールプロセスでは、以
下のディレクトリにドライバーファイルがインストールされます。
• /opt/amazon/redshiftodbc/lib/32 (32 ビットドライバーの場合)
• /opt/amazon/redshiftodbc/lib/64 (64 ビットドライバーの場合)
API Version 2012-12-01
169
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
• /opt/amazon/redshiftodbc/ErrorMessages
• /opt/amazon/redshiftodbc/Setup
Amazon Redshift ODBC ドライバーをインストールするには
1.
使用する SQL クライアントツールまたはアプリケーションのシステムアーキテクチャーに応じ
て、次のいずれかをダウンロードします。
• 32 ビット .rpm: https://s3.amazonaws.com/redshift-downloads/drivers/
AmazonRedshiftODBC-32bit-1.3.1.1000.i686.rpm
• 64 ビット .rpm: https://s3.amazonaws.com/redshift-downloads/drivers/
AmazonRedshiftODBC-64bit-1.3.1.1000-1.x86_64.rpm
これらのドライバーの名前はどちらも Amazon Redshift ODBC ドライバーです。
Note
SQL クライアントツールまたはアプリケーションのシステムアーキテクチャに対応する
パッケージをダウンロードします。たとえば、クライアントツールが 64 ビットである場
合は、64 ビットドライバーをインストールします。
次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。こ
れらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。
2.
パッケージをダウンロードした場所に移動し、以下のいずれかのコマンドを実行します。使用し
ている Linux ディストリビューションに対応するコマンドを使用します。
• RHEL 5.0/6.0 および CentOS 5.0/6.0 オペレーティングシステムでは、次のコマンドを実行し
ます。
yum --nogpgcheck localinstall RPMFileName
RPMFileName を RPM パッケージのファイル名に置き換えます。たとえば、次のコマンドは
32 ビットドライバーのインストールを示しています。
yum --nogpgcheck localinstall AmazonRedshiftODBC-32bit-1.x.x.xxxxx.i686.rpm
• SLES では、次のコマンドを実行します。
zypper install RPMFileName
RPMFileName を RPM パッケージのファイル名に置き換えます。たとえば、次のコマンドは
64 ビットドライバーのインストールを示しています。
zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm
Important
ドライバーのインストールが完了したら、ドライバーをシステムで使用できるように設定し
ます。ドライバー設定の詳細については、「Linux および Mac OS X オペレーティングシステ
API Version
ムで ODBC ドライバーを設定する
(p.2012-12-01
172)」を参照してください。
170
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
前バージョンの ODBC ドライバ
ツールに特定のバージョンのドライバが必要な場合にのみ、Amazon Redshift ODBC ドライバの以
前のバージョンをダウンロードします。以前のバージョンのドライバでサポートされる機能について
は、Amazon Redshift ODBC ドライバリリースノートを参照してください。
以前のバージョンの 32 ビットドライバを以下に示します。
• 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/
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
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 マスターユーザーまたはユーザーアカウント
Mac OS X への Amazon Redshift ドライバーのインストール
このセクションの手順を使用して、サポートされているバージョンの Mac OS X に Amazon Redshift
ODBC ドライバーをダウンロードしてインストールします。インストールプロセスでは、以下のディ
レクトリにドライバーファイルがインストールされます。
• /opt/amazon/redshift/lib/universal
• /opt/amazon/redshift/ErrorMessages
• /opt/amazon/redshift/Setup
API Version 2012-12-01
171
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
Mac OS X に Amazon Redshift ODBC ドライバーをインストールするには
1.
https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC-1.3.1.1000.dmg. こ
のドライバーの名前は Amazon Redshift ODBC ドライバーです。
次に、Amazon Redshift ODBC ドライバーのライセンス契約をダウンロードして確認します。こ
れらのドライバーを顧客またはその他のサードパーティに配布する必要がある場合は、[email protected] までメールをいただければ適切なライセンスを用意します。
2.
AmazonRedshiftODBC.dmg をダブルクリックしてディスクイメージをマウントします。
3.
AmazonRedshiftODBC.pkg をダブルクリックしてインストーラを実行します。
4.
インストーラの手順に従ってドライバーのインストールプロセスを完了します。インストールを
実行するには、ライセンス契約の条件に同意する必要があります。
Important
ドライバーのインストールが完了したら、ドライバーをシステムで使用できるように設定し
ます。ドライバー設定の詳細については、「Linux および Mac OS X オペレーティングシステ
ムで ODBC ドライバーを設定する (p. 172)」を参照してください。
前バージョンの ODBC ドライバ
ツールに特定のバージョンのドライバが必要な場合にのみ、Amazon Redshift ODBC ドライバの以
前のバージョンをダウンロードします。以前のバージョンのドライバでサポートされる機能について
は、Amazon Redshift ODBC ドライバリリースノートを参照してください。
Mac OS X 用の以前のバージョンの Amazon Redshift ODBC ドライバを以下に示します。
• 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
• https://s3.amazonaws.com/redshift-downloads/drivers/AmazonRedshiftODBC.dmg
Linux および Mac OS X オペレーティングシステムで ODBC ドライバーを設
定する
Linux および Mac OS X オペレーティングシステムでは、ODBC ドライバーマネージャーを使用して
ODBC 接続を設定します。ODBC ドライバーマネージャーは設定ファイルを使用して ODBC データ
ソースおよびドライバーを定義および設定します。使用する ODBC ドライバーマネージャーは、使
用するオペレーティングシステムによって異なります。Amazon Redshift ODBC ドライバーを設定す
るために使用できる ODBC ドライバーマネージャーの詳細については、「システム要件 (p. 169)」
(Linux オペレーティングシステムの場合) および「システム要件 (p. 171)」 (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/universal (Mac OS X のドライバーの場合)
API Version 2012-12-01
172
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
さらに、/opt/amazon/redshiftodbc/Setup (Linux の場合) または /opt/amazon/redshift/Setup (Mac OS X
の場合) には、Amazon Redshift ODBC ドライバーとデータソース名 (DSN) を設定するための例とし
て使用できる odbc.ini および odbcinst.ini サンプルファイルがあります。
設定ファイルに Amazon Redshift ODBC ドライバーのインストールディレクトリを使用することは
推奨されません。Setup ディレクトリのサンプルファイルは例示のみを目的としています。Amazon
Redshift ODBC ドライバーを後で再インストールするか、新しいバージョンにアップグレードする場
合、インストールディレクトリは上書きされ、これらのファイルに対して行われた変更はすべて失わ
れます。
これを回避するには、インストールディレクトリ以外のディレクトリに 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_endpoint
Port=port_number
Database=database_name
locale=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/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
API Version 2012-12-01
173
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
Database=dev
locale=en-US
Mac OS X オペレーティングシステムでは次の形式を使用します。
[ODBC Data Sources]
driver_name=dsn_name
[dsn_name]
Driver=path/libamazonredshiftodbc.dylib
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=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/universal/libamazonredshiftodbc.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
odbcinst.ini ファイルの設定
odbcinst.ini ファイルを使用して ODBC ドライバーを定義します。
Linux オペレーティングシステムでは次の形式を使用します。
[ODBC Drivers]
driver_name=Installed
...
[driver_name]
Description=driver_description
Driver=path/driver_file
...
次の例は、Linux オペレーティングシステムでデフォルトのディレクトリにインストールされた 32
ビットドライバーと 64 ビットドライバーの両方の odbcinst.ini 設定を示しています。
[ODBC Drivers]
Amazon Redshift (x86)=Installed
Amazon Redshift (x64)=Installed
[Amazon Redshift (x86)]
Description=Amazon Redshift ODBC Driver (32-bit)
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
[Amazon Redshift (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
API Version 2012-12-01
174
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Mac OS X オペレーティングシステムでは次の形式を使用します。
[ODBC Drivers]
driver_name=Installed
...
[driver_name]
Description=driver_description
Driver=path/libamazonredshiftodbc.dylib
...
次の例は、Mac OS X オペレーティングシステムでデフォルトのディレクトリにインストールされた
ドライバーの odbcinst.ini 設定を示しています。
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed
[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for Mac OS X
Driver=/opt/amazon/redshift/lib/universal/libamazonredshiftodbc.dylib
ドライバー設定ファイルの環境変数の設定
Amazon Redshift ODBC ドライバーを正しく機能させるには、以下で説明するように多くの環境変数
を設定する必要があります。
ドライバーマネージャーライブラリへのパスを指定する環境変数を設定します。
• Linux では、ドライバーマネージャーライブラリを含んでいるディレクトリを指すように
LD_LIBRARY_PATH を設定します。サポートされているドライバーマネージャーの詳細について
は、「Linux オペレーティングシステムに Amazon Redshift ODBC ドライバーをインストールす
る (p. 169)」を参照してください。
• Mac OS X では、ドライバーマネージャーライブラリを含んでいるディレクトリを指すように
DYLD_LIBRARY_PATH を設定します。サポートされているドライバーマネージャーの詳細について
は、「Mac OS X に Amazon Redshift ODBC ドライバーをインストールする (p. 171)」を参照し
てください。
必要に応じて、amazon.redshiftodbc.ini ファイルを指すように AMAZONREDSHIFTODBCINI を設定
します。AMAZONREDSHIFTODBCINI ではファイル名を含む完全パスを指定する必要があります。
この変数を設定するか、システムが検索で見つける場所にこのファイルを配置する必要がありま
す。amazon.redshiftodbc.ini ファイルを見つけるとき、次の検索順序が使用されます。
1. AMAZONREDSHIFTODBCINI 環境変数が定義されている場合、ドライバーはこの環境変数で指定さ
れているファイルを検索します。
2. AMAZONREDSHIFTODBCINI 環境変数が定義されていない場合、ドライバーはその独自のディレク
トリ (ドライバーバイナリを含むディレクトリ) で探します。
3. amazon.redshiftodbc.ini ファイルが見つからない場合、ドライバーはドライバーマネージャーの設
定の自動的な特定と接続を試みます。ただし、この場合、エラーメッセージは正しく表示されませ
ん。
odbc.ini ファイルと odbcinst.ini ファイルをユーザーのホームディレクトリ以外のディレクトリに格納
する場合は、設定ファイルの場所を指定する環境変数を設定する必要もあります。
API Version 2012-12-01
175
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
• odbc.ini ファイルを指すように ODBCINI を設定します。
• odbcinst.ini ファイルを含んでいるディレクトリを指すように ODBCSYSINI を設定します。
Linux を使用している場合、ドライバーマネージャーライブラリは /usr/local/lib ディレクト
リ、odbc.ini ファイルと amazon.redshiftodbc.ini ファイルは /etc ディレクトリ、odbcinst.ini ファイル
は /usr/local/odbc ディレクトリにあるため、次の例に示すように環境変数を設定します。
export
export
export
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
ODBCINI=/etc/odbc.ini
AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
ODBCSYSINI=/usr/local/odbc
Mac OS X を使用している場合、ドライバーマーネージャーライブラリは /usr/local/lib ディレクト
リ、odbc.ini ファイルと amazon.redshiftodbc.ini ファイルは /etc ディレクトリ、odbcinst.ini ファイル
は /usr/local/odbc ディレクトリにあるため、次の例に示すように環境変数を設定します。
export
export
export
export
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
ODBCINI=/etc/odbc.ini
AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
ODBCSYSINI=/usr/local/odbc
ODBC ドライバー設定オプション
次の表に示す設定オプションを使用して、Amazon Redshift ODBC ドライバーの動作をコントロール
できます。
Windows では、通常、DSN を設定するときにドライバーオプションを設定します。プログラムに
よって接続するときに、または HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\#### DSN
でレジストリキーを追加または変更することによって、接続文字列でドライバーオプションを設定す
ることもできます。DSN の設定の詳細については、「Microsoft Windows オペレーティングシステ
ムに Amazon Redshift ODBC ドライバーをインストールして設定する (p. 166)」を参照してくださ
い。接続文字列でドライバーオプションを設定する例については、「クラスターにプログラムで接続
する (p. 191)」を参照してください。
Linux および Mac OS X では、「Linux および Mac OS X オペレーティングシステムで ODBC ドライ
バーを設定する (p. 172)」で説明されているように、odbc.ini ファイルと amazon.redshiftodbc.ini
ファイルでドライバー設定オプションを設定します。amazon.redshiftodbc.ini ファイルで設定されて
いる設定オプションはすべての接続に適用され、odbc.ini ファイルで設定されている設定オプション
は接続ごとに固有です。odbc.ini で設定されている設定オプションは amazon.redshiftodbc.ini で設定
されている設定オプションよりも優先されます。
ODBC オプション 一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
BoolsAsChar
はい
0
このオプションが有効 (1) になっていると、ドライ
バーはブール値を長さが 5 文字の SQL_VARCHAR
データ型として公開します。
このオプションが無効 (0) になっていると、ドライ
バーはブール値を SQL_BIT データ型として公開しま
す。
データベース
はい
接続が確立されるときに使用するデータベースの名
前。
API Version 2012-12-01
176
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
ODBC オプション 一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
ドライバー
はい
Amazon Redshift ODBC ドライバーの共有オブジェ
クトファイルの場所。
取得
はい
100
UseDeclareFetch が有効になっているときにドライ
バーが返す行数。
KeepAlive
いいえ。
1
キープア
ライブが
TCP/IP レ
ベルで無
効になっ
ている場
合、KeepAliveTime
と
KeepAliveInterval
は 0 に設
定されま
す。
このオプションが有効 (1) になっていると、ドライ
バーは TCP キープアライブを使用して接続がタイム
アウトしないようにします。
いいえ
接続が切断されていると見なされる前に失うことが
許容される TCP キープアライブパケットの数。
KeepAliveCount
0
このオプションが無効 (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 コード単位)。
Port
はい
Amazon Redshift サーバー上の接続先のポート。
Note
デフォルトでは、Amazon Redshift はポート
5439 を使用します。
PWD または
Password
はい
Amazon Redshift サーバーに接続するために使用す
るパスワード。
API Version 2012-12-01
177
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
ODBC オプション 一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
Server または
Servername
はい
Amazon Redshift サーバーの IP アドレスまたはホス
ト名。
SingleRowMode
いいえ
0
このオプションが有効 (1) になっていると、ドライ
バーはクエリの結果を一度に 1 行ずつ返します。こ
のオプションは、大規模な結果のクエリを実行する
ため、結果全体をメモリに取り込みたくない場合に
有効にします。
このオプションと UseDeclareFetch の両方が無効
(0) になっていると、ドライバーはクエリの結果全体
をメモリに取り込みます。
Note
UseDeclareFetch が有効 (1) になってい
ると、それは SingleRowMode よりも優
先されます。SingleRowMode が有効 (1)
になっており、UseDeclareFetch が無効
(0) になっていると、SingleRowMode は
UseMultipleStatements よりも優先されま
す。
SSLCertPath
はい
デフォル
トのファ
イル名は
root.crt
で、デフォ
ルトのパ
スはドラ
イバーの
DLL ファ
イルの場所
です。
サーバーを認証するためのルート証明書があるファ
イルの完全パス。このオプションが設定されていな
い場合、ドライバーはドライバーの DLL ファイルが
格納されているフォルダー内を探します。
SSLMode
はい
require
接続するときに使用する SSL 証明書認証モード。使
用できる SSL モードの詳細については、「ODBC で
SSL サーバー証明書を使用する (p. 181)」を参照し
てください。
0
このオプションが有効 (1) になっていると、ドライ
バーは LONG VARCHAR データとして TEXT 列を返
します。
TextAsLongVarchar はい
このオプションが無効 (0) になっていると、ドライ
バーは TEXT データとして TEXT 列を返します。
UID
はい
Amazon Redshift サーバーに接続するために使う
ユーザー名。
API Version 2012-12-01
178
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
ODBC オプション 一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
UseDeclareFetch
はい
0
このオプションが有効 (1) になっていると、ドライ
バーは一度に特定の数の行を返します。行数を設定
するには、Fetch オプションを使用します。
このオプションが無効 (0) になってお
り、SingleRowMode が有効 (1) になっていると、
ドライバーはクエリの結果を一度に 1 行ずつ返しま
す。SingleRowMode も無効 (0) になっていると、ド
ライバーはクエリの結果全体をメモリに取り込みま
す。
Note
UseDeclareFetch が有効になっている
と、UseDeclareFetch は SingleRowMode お
よび UseMultipleStatements よりも優先され
ます。
UseMultipleStatements
いいえ
0
このオプションが有効 (1) になっていると、ドライ
バーは複数のステートメントに分割されたクエリを
実行できます。
このオプションが無効 (0) になっていると、ドライ
バーはクエリを 1 つのステートメントとして実行し
ます。
Note
UseDeclareFetch が有効 (1) になっ
ていると、UseDeclareFetch は
UseMultipleStatements よりも優先され
ます。UseDeclareFetch が無効 (0) に
なっており、SingleRowMode が有効
(1) になっていると、SingleRowMode は
UseMultipleStatements よりも優先されま
す。
Username
はい
UID (Amazon Redshift サーバーに接続するために使
用するユーザー名) と同じ情報。UID が定義されてい
ると、UID はユーザー名よりも優先されます。
API Version 2012-12-01
179
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
ODBC オプション 一致する
デフォルト 説明
PostgreSQL 値
オプション
の有無
UseUnicode
いいえ
0
このオプションが有効 (1) になっていると、ドライ
バーはデータを Unicode 文字型として返します。
• CHAR は SQL_WCHAR として返されます。
• VARCHAR は SQL_WVARCHAR として返されま
す。
• テキストは SQL_WLONGVARCHAR として返され
ます。
このオプションが無効 (0) になっていると、ドライ
バーはデータを通常の SQL の型として返します。
• CHAR は SQL_CHAR として返されます。
• VARCHAR は SQL_VARCHAR として返されま
す。
• TEXT は SQL_LONGVARCHAR として返されま
す。
接続のセキュリティオプションを設定する
Amazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサー
バー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。
SSL を使用して接続する
SSL 接続をサポートするには、Amazon Redshift でクラスターごとに自己署名 SSL 証明書を作成して
インストールします。パブリックキーは https://s3.amazonaws.com/redshift-downloads/redshift-ssl-cacert.pem に保存されます。Windows オペレーティングシステムまたは Linux オペレーティングシステ
ムでこの証明書をダウンロードすると、ファイルの末尾には .pem 拡張子が付きます。Mac OS X オ
ペレーティングシステムでこの証明書をダウンロードすると、ファイルの末尾の拡張子は .er になり
ます。予想される MD5 チェックサムの数値は 1314113b03bf3e6c49ea0b1d2dc03121 です。Md5sum
プログラム (Linux オペレーティングシステムの場合) またはその他のツール (Windows および Mac
OS X オペレーティングシステムの場合) を使用して、ダウンロードした証明書がこの予想される
MD5 チェックサムの数値と一致することを確認できます。
Important
厳密には、Amazon Redshift での SSL サポートは、クライアントとクラスター間の接続を暗
号化することが目的であり、サーバーの認証に使用されるべきではありません。サーバーを
認証するには、SSL 証明書のパブリックキー (.pem ファイル) をクライアントにインストール
し、このキーを使ってクラスターに接続します。
デフォルトでは、クラスターデータベースは SSL の使用の有無にかかわらず接続を受け入れます。ク
ラスターが SSL 接続を要求するように設定するには、クラスターに関連付けられているパラメーター
グループで require_SSL パラメーターを true に設定します。パラメーターグループの変更につい
ては、「パラメーターグループを変更する (p. 60)」を参照してください。
Amazon Redshift では、Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 鍵契約プロトコルがサ
ポートされます。ECDHE を使用すると、クライアントとサーバーはそれぞれ、安全でないチャネル
を介して共有シークレットを確立するために使用される楕円曲線パブリック/プライベートキーペアを
API Version 2012-12-01
180
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
持ちます。ECDHE を有効にするために、Amazon Redshift で設定を行う必要はありません。ECDHE
を使用してクライアント/サーバー間の通信を暗号化する SQL クライアントツールから接続する場
合、Amazon Redshift は提供された暗号リストを使用して適切な接続を行います。詳細について
は、Wikipedia の「Elliptic Curve Diffie—Hellman」と OpenSSL ウェブサイトの「Ciphers」を参照し
てください。
ODBC で SSL サーバー証明書を使用する
ODBC DSN には、クライアント接続の暗号化処理方法とサーバー証明書の検証を決定する sslmode
設定が含まれます。Amazon Redshift は、クライアント接続の次の sslmode 値をサポートします。
• disable
SSL は無効となり、接続は暗号化されません。
• allow
SSL は、サーバーで必要な場合に使用されます。
• prefer
SSL は、サーバーでサポートされる場合に使用されます。Amazon Redshift では SSL がサポートさ
れるため、sslmode を prefer に設定すると SSL が使用されます。
• require
SSL が必要です。
• verify-ca
SSL を使用する必要があり、サーバー証明書を検証する必要があります。
• verify-full
SSL を使用する必要があります。サーバー証明書を検証し、サーバーのホスト名が証明書上のホス
ト名属性と一致する必要があります。
sslmode オプションの詳細については、PostgreSQL ドキュメントの「SSL Support」を参照してく
ださい。
クライアントとサーバーの間の接続で 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
接続は暗号化され、サーバー証明書が検証されます。
API Version 2012-12-01
181
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
sslmode (ク
ライアント)
require_SSL
(サーバー)
結果
verify-ca
false
接続は暗号化され、サーバー証明書が検証されます。
verifyfull
true
接続は暗号化され、サーバー証明書とホスト名が検証されます。
verifyfull
false
接続は暗号化され、サーバー証明書とホスト名が検証されます。
Microsoft Windows で ODBC によりサーバー証明書を使用して接続する
SSL とサーバー証明書を使用してクラスターに接続する場合、クライアントコンピューターか
Amazon EC2 インスタンスに証明書をダウンロードし、ODBC DSN を設定する必要があります。
1.
Amazon Redshift サーバー証明書をクライアントコンピュータにダウンロードし、ドライバーの
インストールディレクトリにある lib フォルダーに root.crt として保存します。
2.
[ODBC Data Source Administrator] を開き、ODBC 接続のシステム DSN エントリを追加または編
集します。[SSL Mode] で、verify-ca を選択して [Save] をクリックします。
ODBC DSN の設定方法の詳細については、「ODBC 接続を設定する (p. 164)」を参照してくだ
さい。
ODBC でサーバー証明書を使わずに接続する
Amazon Redshift サーバー証明書を使わずにクラスターに接続する場合、[allow]、[prefer]、[require]
のうち 1 つを使用するように ODBC DSN を設定できます。これらの設定では、接続に SSL が使用さ
れますが、サーバー証明書は検証されません。
Java で SSL をサーバー証明書を使用する
SSL は、クライアントとクラスター間を移動するデータを暗号化することによりセキュリティを強化
します。サーバー証明書の使用により、クラスターが Amazon Redshift クラスターであることが確認
され、セキュリティがさらに強化されます。これを行うには、プロビジョニングしたすべてのクラス
ターに自動インストールされたサーバー証明書をチェックします。JDBC でサーバー証明書を使用す
る方法の詳細については、PostgreSQL ドキュメントの「Configuring the Client」を参照してくださ
い。
Java でサーバー証明書を使って接続する
このセクションでは、Amazon Redshift 証明書を Java キーストアに追加する方法を説明します。この
手順では、JAVA_HOME 環境変数によって示される Java インストールが、クラスターへの接続に使用
するクライアントで使用されていることを前提としています。また、root ユーザーとしてタスク内の
コマンドを実行することをお勧めします。
サーバー証明書を使って接続するには
keytool プログラムを使用して、クライアントコンピューターまたは Amazon EC2 インスタンスの
Java システム信頼ストアに Amazon Redshift 証明書を追加します。コマンドプロンプトで次のコマン
ドを使用します。
${JAVA_HOME}/bin/keytool -keystore ${JAVA_HOME}/lib/security/cacerts -import
-alias <alias> -file <certificate_filename>
ここで、<alias> はユーザーが指定した任意の文字列値であり、<certificate_filename> は
https://s3.amazonaws.com/redshift-downloads/redshift-ssl-ca-cert.pem からダウンロードした証明書
ファイルへの完全パスです。
API Version 2012-12-01
182
Amazon Redshift 管理ガイド
Amazon Redshift での接続の設定
キーストアの操作に使用するパスワードの入力と再入力が求められます。cacerts キーストアのデフォ
ルトパスワードは changeit ですが、変更した場合はキーストアに属する使用する任意のパスワードを
使用してください。
上のコマンドで cacerts キーストアにアクセスできない場合は、次のコマンドを使用して独自の信頼
ストアを作成できます。
${JAVA_HOME}/bin/keytool -keystore <keystore_name> -alias <alias> -import file <certificate_filename>
ここで、<keystore_name> はクライアントアプリケーションが使用するキーストアで、<alias> と
<certificate_filename> は前述の説明に対応します。キーストアの操作に使用するパスワードの
入力と再入力が求められます。このパスワードは後で使用するので、書き留めておきます。
その場合、Java アプリケーションを起動するとき、使用するキーストアとパスワードを指定する必要
があります。
java -Djavax.net.ssl.trustStore=keystore_name Djavax.net.ssl.trustStorePassword=password com.mycompany.MyApp
信頼ストアに証明書を追加する際に問題が発生した場合は、ログ情報にエラーがないかどうかを確認
してください。Amazon Redshift 入門ガイド および Amazon Redshift ドキュメントのその他の関連す
る演習で SQL Workbench/J を使用している場合、SQL Workbench/J ドキュメントの「Configuration
Directory」に移動して、ログが保存されている場所を見つけます。別のクライアントツールを使用し
ている場合、ツールに付随するドキュメントを参照して、ログの保存場所を見つけてください。
接続文字列に次のプロパティを指定します。
• プロパティ名: ssl
• プロパティ値: true
たとえば、SQL Workbench/J では、JDBC URL で ssl=true パラメーターを使用して接続文字列を指定
できます。
jdbc:redshift://examplecluster.abc123xyz789.uswest-2.redshift.amazonaws.com:5439/dev?ssl=true
JDBC 接続の詳細については、「JDBC URL を取得する (p. 159)」を参照してください。
Java コードの場合は、次のように接続文字列を指定します。
Connection conn = null;
Properties props = new Properties();
props.setProperty("ssl", "true");
conn = DriverManager.getConnection(<jdbc-connection-string>, props);
SSL を使用する Java の完全なサンプルについては、「Java の使用によるクラスターへの接
続 (p. 191)」を参照してください。
Java でサーバー証明書を使わずに接続する
サーバー証明書を使用しなくても Amazon Redshift クラスターに接続できます。ただし、Amazon
Redshift クラスターに接続していることをクライアント側では確認できなくなります。証明書を使用
しなくても SSL を使って接続できます。
サーバー証明書を使わずに接続するには
接続文字列に次のプロパティを指定します。
API Version 2012-12-01
183
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
• プロパティ名: sslfactory
• プロパティ値: com.amazon.redshift.ssl.NonValidatingFactory
SQL Workbench/J のサンプル接続文字列を次に示します。
jdbc:redshift://examplecluster.abc123xyz789.uswest-2.redshift.amazonaws.com:5439/dev?
ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory
JDBC 接続の詳細については、「JDBC URL を取得する (p. 159)」を参照してください。
Java コードの場合は、次のように接続文字列を指定します。
Connection conn = null;
Properties props = new Properties();
props.setProperty("ssl", "true");
props.setProperty("sslfactory",
"com.amazon.redshift.ssl.NonValidatingFactory");
conn = DriverManager.getConnection(<jdbc-connection-string>, props);
クライアントツールおよびコードからクラスターに
接続する
このセクションでは、まだクラスターに接続するビジネスインテリジェンスツールがない場合に、
サードパーティツールがクラスターに接続するためのいくつかのオプションについて説明します。さ
らに、クラスターにプログラムにより接続する方法について説明します。
トピック
• SQL Workbench/J を使用するクラスターに接続する (p. 184)
• psql ツールを使用してクラスターに接続する (p. 188)
• クラスターにプログラムで接続する (p. 191)
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 インスタンスにダウンロードしま
す。
API Version 2012-12-01
184
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
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」と入力します。または、http://
www.java.com/jp/ にアクセスして [Java の有無のチェック] リンクをクリックし、
[Verify Java] ボタンをクリックします。
Java Runtime Environment のインストールと設定の詳細については、http://
www.java.com/jp/ にアクセスしてください。
SQL Workbench/J で JDBC 接続を介してクラスターに接続する
Important
この手順のステップを実行する前に、クライアントコンピューターまたは Amazon EC2 イン
スタンスに推奨される Amazon Redshift JDBC ドライバーがあることを確認します。最新の
ドライバーをダウンロードするリンクについては、「Amazon Redshift JDBC ドライバーをダ
ウンロードします。 (p. 158)」を参照してください。
SQL Workbench/J で JDBC 接続を使用するには
1.
SQL Workbench/J を開きます。
2.
[File] をクリックし、[Connect window] をクリックします。
3.
[Create a new connection profile] をクリックします。
4.
[New profile] ボックスに、プロファイルの名前を入力します。たとえば、examplecluster_jdbc な
どです。
5.
[Manage Drivers] をクリックします。[Manage Drivers] ダイアログが開きます。[Name] ボックス
にドライバーの名前を入力します。
API Version 2012-12-01
185
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
[Library] ボックスの横にあるフォルダアイコンをクリックし、目的のドライバーの場所まで移動
してそのドライバーをクリックし、[Open] をクリックします。
[Please select one driver] ダイアログボックスが表示されたら、
[com.amazon.redshift.jdbc4.Driver] または [com.amazon.redshift.jdbc41.Driver] を選択し、[OK]
をクリックします。[Classname] ボックスは、SQL Workbench/J によって自動入力されます。
[Sample URL] ボックスは空白のままにしておいて、[OK] をクリックします。
6.
[Driver] ボックスで、追加したドライバーを選択します。
7.
[URL] で、Amazon Redshift console から JDBC URL をコピーし、ここに貼り付けます。
JDBC URL を見つける方法の詳細については、「JDBC 接続を設定する (p. 158)」を参照してく
ださい。
8.
[Username] に、マスターユーザーの名前を入力します。
Amazon Redshift 入門ガイド に従っている場合は、「masteruser」と入力します。
9.
[Password] に、マスターユーザーアカウントに関連付けられたパスワードを入力します。
10. [Autocommit] ボックスをオンにします。
11. 次に示す [Save profile list] アイコンをクリックします。
12. [OK] をクリックします。
API Version 2012-12-01
186
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
SQL Workbench/J 接続をテストする
JDBC または ODBC 接続を設定すると、サンプルクエリを実行することで接続をテストできます。
1.
「Amazon Redshift 入門ガイド」に記載されているサンプルのテーブルとデータを読み込んだ場
合は、[Statement] ウィンドウに次のクエリを入力することで、接続をテストできます。
select * from users order by userid limit 100;
接続に成功すると、[Results] タブにレコードのリストが表示されます。
2.
また、次のクエリを使用して接続をテストすることもできます。
select * from information_schema.tables;
API Version 2012-12-01
187
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
psql ツールを使用してクラスターに接続する
Amazon Redshift クラスターを作成したら、psql (PostgreSQL のターミナル型フロントエンド) を
使ってクラスターのデータにクエリを発行することができます。クエリはインタラクティブに入力す
ることも、ファイルから読み取ることもできます。psql から接続するには、クラスターのエンドポイ
ント、データベース、ポートを指定する必要があります。
Note
psql ツールは、Amazon Redshift から提供されるのではなく PostgreSQL とともにインス
トールされます。psql の使用については、http://www.postgresql.org/docs/8.4/static/apppsql.html を参照してください。PostgreSQL クライアントツールのインストール方法につい
ては、http://www.postgresql.org/download/ の PostrgreSQL バイナリダウンロードページか
ら、該当するオペレーティングシステムを選択します。
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] の値を書き留
めます。
API Version 2012-12-01
188
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
3.
コマンドプロンプトで、コマンドラインパラメーターか接続情報文字列を使用して接続情報を指
定します。パラメーターを使用するには次のように行います。
psql -h <endpoint> -U <userid> -d <databasename> -p <port>
各パラメーターの意味は次のとおりです。
• <endpoint> は前のステップで書き留めた [Endpoint] です。
• <userid> はクラスターに接続するアクセス権限があるユーザー ID です。
• <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 証明書をコンピューターにダウンロード
し、sslmode=verify-ca を指定して証明書の場所と sslrootcert を指定します。sslmode の詳細
については、「接続のセキュリティオプションを設定する (p. 180)」を参照してください。
接続情報文字列のパラメーターの詳細については、http://www.postgresql.org/docs/8.4/static/libpqconnect.html を参照してください。
API Version 2012-12-01
189
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
証明書を使って接続するには
1.
https://s3.amazonaws.com/redshift-downloads/redshift-ssl-ca-cert.pem からパブリックキー
を .pem ファイルとしてコンピューターに保存します。Internet Explorer で File\Save as を行う場
合、ファイル形式を [Text file (*.txt)] に指定し、.txt 拡張子を削除します。例えば、ファイルを C:
\MyDownloads\redshift-ssl-ca-cert.pem という名前で保存します。
2.
Amazon Redshift コンソールで、クラスターを選択して [Cluster Database Properties] を表示しま
す。[Endpoint]、[Port]、[Database Name] のフィールドに表示された値を書き留めます。
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 の区切り文字 (\) は使用
しないでください。
以下に例を示します。
psql "host=examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com
user=masteruser dbname=dev port=5439 sslmode=verify-ca sslrootcert=C:/
MyDownloads/redshift-ssl-ca-cert.pem"
4.
psql パスワードプロンプトで、<userid> ユーザーのパスワードを入力します。
これでクラスターに接続されるので、コマンドをインタラクティブに入力できます。
API Version 2012-12-01
190
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
クラスターにプログラムで接続する
このセクションでは、クラスターにプログラムで接続する方法を示します。クライアント接続を管理
する SQL Workbench/J のようなアプリケーションを使用している場合は、このセクションをスキッ
プできます。
Java の使用によるクラスターへの接続
Java を使用してプログラムでクラスターに接続する場合、サーバー認証の使用は任意です。サーバー
認証を使用する予定がある場合は、「接続のセキュリティオプションを設定する (p. 180)」の手順ど
おりに操作を行って、Amazon Redshift サーバー証明書をキーストアに格納します。キーストアを参
照するには、コード実行時にプロパティを次のように指定します。
-Djavax.net.ssl.trustStore=<path to keystore>
-Djavax.net.ssl.trustStorePassword=<keystore password>
API Version 2012-12-01
191
//Redshift driver: "jdbc:redshift://x.y.us-を使用した Amazon Redshift の Java 実
以下の例を実行するための詳しい手順については、「Eclipse
west-2.redshift.amazonaws.com:5439/dev";
行例
(p. 148)」を参照してください。
サーバー証明書の詳細については、「接続のセキュリティオプションを設定する
(p. 180)」を参照し
//or "jdbc:postgresql://x.y.us-west-2.redshift.amazonaws.com:5439/dev";
てください。
static final String Amazon
dbURL
=Redshift
"***jdbc
cluster connection string ****";
props.setProperty("ssl",
"true");
管理ガイド
サーバー証明書でクラスターを認証する場合は、キーストアを使用する行のコメントアウトを解除し
static final Stringクライアントツールおよびコー
MasterUsername = "***master user name***";
ます。
static final String ドからクラスターに接続する
MasterUserPassword = "***master user password***";
次の例では、クラスターに接続し、システムテーブルを返すサンプルクエリを実行します。この例
は、データベースにデータがなくても使用できます。
public
static
void main(String[] args) {
Example
: Java
を使ってクラスターに接続する
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.jdbc41.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.
//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.");
}
}
API Version 2012-12-01
192
Amazon Redshift 管理ガイド
クライアントツールおよびコー
ドからクラスターに接続する
.NET の使用によるクラスターへの接続
.NET (C#) を使用してプログラムでクラスターに接続する場合、サーバー認証の使用は任意です。
サーバー認証を使用する予定がある場合は、「接続のセキュリティオプションを設定する (p. 180)」
の手順どおりに操作を行って Amazon Redshift サーバー証明書をダウンロードし、.NET コードに
合った形式で証明書を設定します。
API Version 2012-12-01
193
// Server, e.g. "examplecluster.xyz.us次の例では、クラスターに接続し、システムテーブルを返すサンプルクエリを実行します。サー
west-2.redshift.amazonaws.com"
バー認証は表示されません。この例は、データベースにデータがなくても使用できます。この例で
string server
= "***provide
server name part of connection
Amazon
Redshift
管理ガイド
は、System.Data.Odbc
Namespace、.NET
Framework
Data Provider for ODBC を使用します。
string****";
クライアントツールおよびコー
ドからクラスターに接続する
// Port, e.g. "5439"
port = "***provide port***";
Example .NET string
を使ってクラスターに接続する
// 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)
{
Console.Error.WriteLine(ex.Message);
Console.ReadKey();
}
}
}
}
API Version 2012-12-01
194
Amazon Redshift 管理ガイド
Amazon Redshift での接続の
問題のトラブルシューティング
Amazon Redshift での接続の問題のトラブルシュー
ティング
SQL クライアントツールからクラスターへの接続で問題が発生した場合は、問題を絞り込むために確
認できるいくつかの点があります。SSL またはサーバー証明書を使用している場合、接続の問題をト
ラブルシューティングしているときにまずこの複雑さを排除します。その後、解決策を見つけたらも
う一度これを追加します。詳細については、「接続のセキュリティオプションを設定する (p. 180)」
を参照してください。
次のセクションに、接続の問題のサンプルエラーメッセージと考えられる解決策を示します。SQL ク
ライアントツールによってエラーメッセージが異なるため、このリストは完全ではありませんが、問
題のトラブルシューティングに適した開始点です。
トピック
• Amazon EC2 以外から接続する — ファイアウォールタイムアウトの問題 (p. 195)
• 接続が拒否または失敗する (p. 197)
• クライアントおよびドライバーに互換性がない (p. 198)
• クエリがハングして、クラスターに達しない場合がある (p. 198)
Amazon EC2 以外から接続する — ファイアウォールタイムア
ウトの問題
問題の例
COPY コマンドなどの長いクエリを実行すると、データベースへのクライアント接続がハングまたは
タイムアウトしているように見えます。この場合、Amazon Redshift consoleにはクエリが完了した
と表示されますが、クライアントツール自体はまだクエリを実行しているように見えることがありま
す。接続がいつ停止したかに応じて、クエリの結果がないか、不完全になる可能性があります。
考えられる解決策
これは、Amazon EC2 インスタンス以外のコンピューターから Amazon Redshift に接続し、一定期間
アイドル状態が続いて、介在するネットワークコンポーネント (ファイアウォールなど) によってアイ
ドル接続が停止されたときに生じます。このような動作は、Virtual Private Network (VPN) やローカル
ネットワークからログインした場合によく発生します。
このようなタイムアウトを回避するために以下の変更を行うことを推奨します。
• クライアントシステムで TCP/IP タイムアウト値を大きく設定します。この変更は、クラスターへ
の接続に使用しているコンピューターで行います。クライアントやネットワークに対してタイムア
ウト期間を調整する必要があります。「TCP/IP タイムアウト設定を変更するには (p. 195)」を参
照してください。
• 必要に応じて、DSN レベルでキープアライブの動作を設定します。「DSN のタイムアウト設定を
変更するには (p. 196)」を参照してください。
TCP/IP タイムアウト設定を変更するには
•
クラスターへの接続に使用するオペレーティングシステムに応じて、タイムアウトを設定しま
す。
a.
Linux — クライアントが Linux で動作している場合は、次のコマンドを root ユーザーとして
実行し、現在のセッションのタイムアウト設定を変更します。
API Version 2012-12-01
195
Amazon Redshift 管理ガイド
Amazon Redshift での接続の
問題のトラブルシューティング
/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=200
net.ipv4.tcp_keepalive_intvl=200
net.ipv4.tcp_keepalive_probes=5
b.
Windows — クライアントが Windows で動作している場合、HKEY_LOCAL_MACHINE
\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ にある次のレジストリ設定の値を編
集します。
• KeepAliveTime: 30000
• KeepAliveInterval: 1000
• TcpMaxDataRetransmissions: 10
これらの設定は DWORD のデータの種類を使用します。これらがレジストリパスに存在しな
い場合、設定を作成し、これらの推奨値を指定できます。Windows レジストリの編集の詳細
については、Windows のドキュメントを参照してください。
これらの値を設定したら、コンピューターを再起動して変更を有効にします。
c.
Mac — クライアントが Mac で動作している場合は、次のコマンドを実行して現在のセッ
ションのタイムアウト設定を変更します。
sudo
sudo
sudo
sudo
sysctl
sysctl
sysctl
sysctl
net.inet.tcp.keepintvl=20000
net.inet.tcp.keepidle=20000
net.inet.tcp.keepinit=20000
net.inet.tcp.always_keepalive=1
設定を保持するには、次の値を使ってファイル /etc/sysctl.conf を作成または変更しま
す。
net.inet.tcp.keepidle=20000
net.inet.tcp.keepintvl=20000
net.inet.tcp.keepinit=20000
net.inet.tcp.always_keepalive=1
コンピュータを再起動し、次のコマンドを実行して、値が設定されていることを確認しま
す。
sysctl
sysctl
sysctl
sysctl
net.inet.tcp.keepidle
net.inet.tcp.keepintvl
net.inet.tcp.keepinit
net.inet.tcp.always_keepalive
DSN のタイムアウト設定を変更するには
必要に応じて、DSN レベルでキープアライブの動作を設定できます。これを行うには、odbc.ini ファ
イルで以下のパラメーターを追加または変更します。
API Version 2012-12-01
196
Amazon Redshift 管理ガイド
Amazon Redshift での接続の
問題のトラブルシューティング
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. 172)」を参照してください。
これらのパラメーターがない場合、または値が 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
Private Cloud (VPC) でクラスターを管理する (p. 35)」を参照してください。
• VPC の外で Amazon Redshift クラスターを作成した場合は、Amazon Redshift でクラスターセ
キュリティグループにクライアント CIDR/IP アドレスを追加する必要があります。クラスターセ
キュリティグループの設定の詳細については、「Amazon Redshift クラスターセキュリティグルー
プ (p. 124)」を参照してください。
Amazon EC2 インスタンスでクライアントツールからクラスターに接続しようとした場合、Amazon
EC2 インスタンスに関連付けられた Amazon EC2 セキュリティグループのクラスターセキュリティ
グループに Ingress ルールを追加する必要があります。クラスターセキュリティグループの設定の詳
細については、「Amazon Redshift クラスターセキュリティグループ (p. 124)」を参照してください。
さらに、クラスターとサーバーの間にレイヤーがある場合 (ファイアウォールなど)、ファイアウォー
ルがクラスターに対して設定したポートを介した着信接続を受け入れることを確認します。
API Version 2012-12-01
197
Amazon Redshift 管理ガイド
Amazon Redshift での接続の
問題のトラブルシューティング
クライアントおよびドライバーに互換性がない
エラーの例
"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 プラットフォームを使用している場合、Destination
Unreachable を返すインバウンドのカスタム Internet Control Message Protocol (ICMP) ルールに
よって Amazon VPC セキュリティグループを設定して、ネットワークパスで最低の MTU サイズを
使用するよう送信側ホストに指示します。この方法の詳細については、「セキュリティグループを
設定して ICMP の "Destination Unreachable" を許可する (p. 198)」を参照してください。
• ご使用のクラスターが EC2-Classic プラットフォームを使用しているか、ICMP インバウンドルー
ルを許可できない場合、TCP/IP ジャンボフレームを無効にして、Ethernet v2 フレームを使用しま
す。この方法の詳細については、「インスタンスの MTU の設定 (p. 199)」を参照してください。
セキュリティグループを設定して ICMP の "Destination Unreachable" を許可
する
2 つのホスト間のネットワークで MTU サイズに違いがある場合、ネットワーク設定がパス MTU 検出
(PMTUD) をブロックしないことをまず確認します。PMTUD は、受信側ホストが次の ICMP メッセー
ジで送信側ホストに応答するのを可能にします: Destination Unreachable: fragmentation
needed and DF set (ICMP Type 3, Code 4)。このメッセージは、送信側ホストがネットワー
クパスに沿って最低の MTU サイズを使用してリクエストを再送信するように指示します。このネゴ
シエーションがないと、リクエストが大きすぎて受信側ホストが受け取れないため、パケットドロッ
プが発生する可能性があります。この ICMP メッセージの詳細については、Internet Engineering Task
Force (IETF) ウェブサイトの「RFC792」を参照してください。
この ICMP インバウンドルールを Amazon VPC セキュリティグループのために明示的に設定しない場
合、PMTUD はブロックされます。AWS では、セキュリティグループは、インバウンドおよびアウト
API Version 2012-12-01
198
Amazon Redshift 管理ガイド
Amazon Redshift での接続の
問題のトラブルシューティング
バウンドトラフィックのルールをインスタンスに指定する仮想ファイアウォールです。EC2-VPC プ
ラットフォームを使用するクラスターでは、Amazon Redshift はクラスターへのトラフィックを許可
または拒否するために VPC セキュリティグループを使用します。デフォルトでは、セキュリティグ
ループはロックされており、すべてのインバウンドトラフィックを拒否します。
VPC セキュリティグループにルールを追加する方法については、「クラスターの VPC セキュリティ
グループの管理 (p. 39)」を参照してください。このルールで必要な特定の 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.
3.
出力で Ethernet アダプタの MTU の値を確認します。
値が 1500 ではない場合、次のコマンドを実行して設定します。
netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent
この値を設定したら、コンピュータを再起動して変更を有効にします。
Linux オペレーティング システムで MTU を設定する
クライアントが Linux オペレーティング システムで動作している場合、ip コマンドを使用して MTU
値を確認し、設定できます。
1.
現在の MTU 値を調べるには、次のコマンドを実行します。
$ ip link show eth0
2.
3.
出力で次の mtu の値を確認します。
値が 1500 ではない場合、次のコマンドを実行して設定します。
$ sudo ip link set dev eth0 mtu 1500
Mac オペレーティング システムで MTU を設定する
•
Mac オペレーティング システムで MTU を設定するには、「Mac OS X 10.4 or later: How to
change the MTU for troubleshooting purposes」の手順に従います。
API Version 2012-12-01
199
Amazon Redshift 管理ガイド
概要
Amazon Redshift クラスターのパ
フォーマンスをモニタリングする
トピック
• 概要 (p. 200)
• Amazon Redshift パフォーマンスデータの概要 (p. 201)
• Amazon Redshift コンソールでパフォーマンスデータを使用する (p. 204)
概要
Amazon Redshift では、クラスターとデータベースの状態やパフォーマンスを追跡できるようにする
ため、パフォーマンスメトリクスとデータが提供されます。このセクションでは、Amazon Redshift
(特に Amazon Redshift コンソール) で使用できるデータのタイプについて説明します。Amazon
Redshift コンソールで使用できるパフォーマンスデータは、次の 2 つのカテゴリに分類されます。
• Amazon CloudWatch メトリクス — Amazon CloudWatch メトリクス – Amazon CloudWatch メトリ
クスは、CPU 使用率、レイテンシー、スループットなど、クラスターの物理的な側面をモニタリン
グするのに役立ちます。メトリクスデータは Amazon Redshift コンソールに直接表示されます。こ
のデータは Amazon CloudWatch コンソールでも表示できるほか、Amazon CloudWatch コマンドラ
インインターフェイス (CLI) や AWS Software Development Kit (SDK) など、メトリクスを操作する
その他の任意の方法でも使用できます。
• クエリ/ロードパフォーマンスデータ – パフォーマンスデータは、データベースのアクティビティと
パフォーマンスをモニタリングするのに役立ちます。このデータは Amazon Redshift コンソールに
集計され、Amazon CloudWatch メトリクスで表示される情報を、特定のデータベースクエリ/ロー
ドイベントに簡単に関連付けることができます。また、ユーザー独自のカスタムパフォーマンスク
エリを作成し、データベースで直接実行することもできます。クエリ/ロードパフォーマンスデータ
は、Amazon Redshift コンソールのみで表示されます。これは、Amazon CloudWatch メトリクスと
して公開されていません。
パフォーマンスデータは Amazon Redshift コンソールに統合され、次の方法でより高いエクスペリエ
ンスが提供されます。
• クラスターに関連付けられたパフォーマンスデータは、クラスターを表示し、サイズ変更などクラ
スターに関する決定を行うためにパフォーマンスデータが必要になる可能性があるときに、コンテ
キストに応じて表示されます。
• 一部のパフォーマンスメトリクスは、Amazon CloudWatch と比較して、より適切にスケーリング
された単位で Amazon Redshift コンソールに表示されます。たとえば、WriteThroughput は GB/
API Version 2012-12-01
200
Amazon Redshift 管理ガイド
パフォーマンスデータの概要
秒で表示されますが (Amazon CloudWatch ではバイト/秒)、これはノードのストレージ容量として
より一般的な単位です。
• クラスターのノードのパフォーマンスデータは、簡単に同じグラフに一緒に表示できるので、クラ
スターのすべてのノードのパフォーマンスを簡単にモニタリングできます。ただし、ノードごとの
パフォーマンスデータを表示することも可能です。
Amazon Redshift では、パフォーマンスデータ (Amazon CloudWatch メトリクスおよびクエリ/ロー
ドデータの両方) が追加料金なしで提供されます。パフォーマンスデータは毎分記録されます。パ
フォーマンスデータの過去の値は、Amazon Redshift コンソール内でアクセスできます。Amazon
CloudWatch を使用して、Amazon CloudWatch メトリクスして公開された Amazon Redshift パフォー
マンスデータにアクセスする方法については、Amazon CloudWatch ユーザーガイドの「Amazon
CloudWatch の概要」を参照してください。
Amazon Redshift パフォーマンスデータの概要
Amazon Redshift CloudWatch メトリクス
Amazon Redshift CloudWatch メトリクスでは、クラスターの状態とパフォーマンスに関する情報を取
得し、ドリルダウンしてノードレベルでその情報を表示できます。これらのメトリクスを使用すると
きは、各メトリクスには 1 つ以上のディメンションが関連付けられていて、それによりメトリクスの
適用先つまりメトリクスのスコープがわかることに留意してください。Amazon Redshift には次の 2
つのディメンションがあります。
• NodeID ディメンションを持つメトリクスは、クラスターのノードのパフォーマンスデータを提供
するメトリクスです。これには、リーダーノードおよびコンピューティングノードが含まれます。
これらのメトリクスの例には、CPUUtilization、ReadIOPS、WriteIOPS があります。
• ClusterIdentifier ディメンションのみを持つメトリクスは、クラスターのパフォーマ
ンスデータを提供するメトリクスです。これらのメトリクスの例には、HealthStatus や
MaintenanceMode があります。
Note
一部のメトリクスでは、クラスター固有のメトリクスがノード動作の集計を表し、そのメ
トリクス値の解釈には注意が必要です。これは、リーダーノードの動作はコンピューティ
ングノードとともに集計されるためです。
Amazon CloudWatch メトリクスおよびディメンションの詳細については、Amazon CloudWatch ユー
ザーガイドの「Amazon CloudWatch の概要」を参照してください。
次の表に、使用可能なすべてのメトリクスを示します。
Amazon Redshift Metrics
The AWS/Redshift namespace includes the following metrics.
Metric
Description
CPUUtilization
The percentage of CPU utilization. For clusters, this metric represents an
aggregation of all nodes (leader and compute) CPU utilization values.
Units: Percent
Dimensions: NodeID, ClusterIdentifier
DatabaseConnections The number of database connections to a cluster.
API Version 2012-12-01
201
Amazon Redshift 管理ガイド
Amazon Redshift CloudWatch メトリクス
Metric
Description
Units: Count
Dimensions: ClusterIdentifier
HealthStatus
Indicates the health of the cluster. Every minute the cluster connects to its
database and performs a simple query. If it is able to perform this operation
successfully, the cluster is considered healthy. Otherwise, the cluster is
unhealthy. An unhealthy status can occur when the cluster database is
under extremely heavy load or if there is a configuration problem with
a database on the cluster. The exception to this is when the cluster is
undergoing maintenance. Even though your cluster might be unavailable
due to maintenance tasks, the cluster remains in HEALTHY state. For
more information, see Maintenance Windows in the Amazon Redshift
Cluster Management Guide.
Note
In Amazon CloudWatch this metric is reported as 1 or 0 whereas
in the Amazon Redshift console, this metric is displayed with the
words HEALTHY or UNHEALTHY for convenience. When this metric
is displayed in the Amazon Redshift console, sampling averages
are ignored and only HEALTHY or UNHEALTHY are displayed. In
Amazon CloudWatch, values different than 1 and 0 may occur
because of sampling issue. Any value below 1 for HealthStatus
is reported as 0 (UNHEALTHY).
Units: 1/0 (HEALTHY/UNHEALTHY in the Amazon Redshift console)
Dimensions: ClusterIdentifier
MaintenanceMode
Indicates whether the cluster is in maintenance mode.
Note
In Amazon CloudWatch this metric is reported as 1 or 0 whereas
in the Amazon Redshift console, this metric is displayed with the
words ON or OFF for convenience. When this metric is displayed
in the Amazon Redshift console, sampling averages are ignored
and only ON or OFF are displayed. In Amazon CloudWatch, values
different than 1 and 0 may occur because of sampling issues. Any
value greater than 0 for MaintenanceMode is reported as 1 (ON).
Units: 1/0 (ON/OFF in the Amazon Redshift console).
Dimensions: ClusterIdentifier
NetworkReceiveThroughput
The rate at which the node or cluster receives data.
Units: Bytes/seconds (MB/s in the Amazon Redshift console)
Dimensions: NodeID, ClusterIdentifier
API Version 2012-12-01
202
Amazon Redshift 管理ガイド
Amazon Redshift のクエリ/ロードパフォーマンスデータ
Metric
Description
NetworkTransmitThroughput
The rate at which the node or cluster writes data.
Units: Bytes/second (MB/s in the Amazon Redshift console)
Dimensions: NodeID, ClusterIdentifier
PercentageDiskSpaceUsed
The percent of disk space used.
Units: Percent
Dimensions: NodeID, ClusterIdentifier
ReadIOPS
The average number of disk read operations per second.
Units: Count/second
Dimensions: NodeID
ReadLatency
The average amount of time taken for disk read I/O operations.
Units: Seconds
Dimensions: NodeID
ReadThroughput
The average number of bytes read from disk per second.
Units: Bytes (GB/s in the Amazon Redshift console)
Dimensions: NodeID
WriteIOPS
The average number of write operations per second.
Units: Count/seconds
Dimensions: NodeID
WriteLatency
The average amount of time taken for disk write I/O operations.
Units: Seconds
Dimensions: NodeID
WriteThroughput
The average number of bytes written to disk per second.
Units: Bytes (GB/s in the Amazon Redshift console)
Dimensions: NodeID
Amazon Redshift のクエリ/ロードパフォーマンス
データ
Amazon CloudWatch メトリクスに加えて、Amazon Redshift はクエリ/ロードパフォーマンスデータ
を提供します。クエリ/ロードパフォーマンスデータを使用すると、データベースのパフォーマンス
とクラスターメトリクス間の関係を理解するのに役立ちます。例えば、クラスターの CPU 使用率が
急上昇したことに気付いた場合、クラスターの CPU グラフでその上昇を見つけ、そのときに実行さ
れていたクエリを表示できます。逆に、特定のクエリについて確認している場合、メトリクスデータ
API Version 2012-12-01
203
Amazon Redshift 管理ガイド
パフォーマンスデータを使用する
(CPU など) がコンテキストに表示されるので、クラスターメトリクスに対するクエリの影響について
理解できます。
クエリ/ロードパフォーマンスデータは Amazon CloudWatch メトリクスとして公開されず、Amazon
Redshift コンソールのみで表示できます。クエリ/ロードパフォーマンスデータはデータベースのシス
テムテーブルへのクエリから生成されます (Amazon Redshift 開発者ガイド の「システムテーブルの
リファレンス」を参照してください)。ユーザー独自のカスタムデータベースパフォーマンスクエリを
生成することもできますが、コンソールに表示されているクエリ/ロードパフォーマンスデータで開始
することをお勧めします。データベースパフォーマンスの測定とモニタリングを自分で行う場合、詳
細についてはAmazon Redshift 開発者ガイド の「パフォーマンスの管理」を参照してください。
次の表に、Amazon Redshift コンソールでアクセスできるクエリ/ロードデータのさまざまな側面を示
します。
クエリ/ロードデータ
説明
クエリの概要
指定された期間のクエリのリストです。このリストは、クエリ ID、クエリ
実行時間、ステータスなどの値に基づいて並べ替えることができます。この
データは、クラスター詳細ページの [Queries] タブからアクセスします。
クエリの詳細
次のものを含む、特定のクエリの詳細を提供します。
• クエリ ID、タイプ、クエリが実行されたクラスター、実行時間などのク
エリのプロパティ。
• クエリのステータス、エラー数などの詳細。
• 実行された SQL ステートメント。
• 利用可能な場合は説明プラン。
• クエリ実行中のクラスターのパフォーマンスデータ (「Amazon Redshift
CloudWatch メトリクス (p. 201)」を参照)。
ロードの概要
指定された期間のすべてのロードをリストします。このリストは、クエリ
ID、クエリ実行時間、ステータスなどの値に基づいて並べ替えることができ
ます。このデータは、クラスター詳細ページの [Loads] タブでアクセスしま
す。このデータは、クラスター詳細ページの [Queries] タブからアクセスし
ます。
ロードの詳細
次のものを含む、特定のロード操作の詳細を提供します。
• クエリ ID、タイプ、クエリが実行されたクラスター、実行時間などの
ロードのプロパティ。
• ロードのステータス、エラー数などの詳細。
• 実行された SQL ステートメント。
• ロードされたファイルのリスト。
• ロード操作中のクラスターのパフォーマンスデータ (「Amazon Redshift
CloudWatch メトリクス (p. 201)」を参照)。
Amazon Redshift コンソールでパフォーマンス
データを使用する
このセクションでは、クラスターおよびクエリのパフォーマンスに関する情報を含むパフォーマ
ンスデータを Amazon Redshift コンソールで表示する方法について説明します。さらに、Amazon
Redshift コンソールから直接クラスターメトリクスでアラームを作成できます。
Amazon Redshift コンソールでパフォーマンスデータを表示するときは、クラスター別に表示できま
す。クラスターのパフォーマンスデータグラフは、パフォーマンスに関するほとんどの一般的な疑問
API Version 2012-12-01
204
Amazon Redshift 管理ガイド
クラスターのパフォーマンスデータを表示する
に答えるデータにアクセスできるように設計されています。一部のパフォーマンスデータ (「Amazon
Redshift CloudWatch メトリクス (p. 201)」を参照) については、Amazon CloudWatch を使用してメ
トリクスグラフをさらにカスタマイズすることもできます。たとえば、長い時間を選択したり、クラ
スター間でメトリクスを組み合わせたりできます。Amazon CloudWatch コンソールの使用の詳細に
ついては、「Amazon CloudWatch コンソールでパフォーマンスメトリクスを使用する (p. 218)」を
参照してください。
パフォーマンスデータの使用を開始するには、クラスターパフォーマンスダッシュボードでクラス
ターを見つけます。ダッシュボードは、クラスターが保守中かどうか、最近のイベント数など、ク
ラスターの状態 ([available] など)、およびクラスターの [DB Health] ([healthy] など) を一目でわか
るように表示するクラスターのリストです。ダッシュボードから対象のクラスターを選択し、クラ
スターの詳細に移動します。このページからは、パフォーマンスデータを含む [Events+Alarms]、
[Performance]、[Queries]、[Loads] の各タブにアクセスできます。次の例に、これらのタブを示しま
す。
クラスターのパフォーマンスデータを表示する
Amazon Redshift のクラスターメトリクスを使用すると、次の一般的なパフォーマンス事例が可能に
なります。
• 指定された時間範囲でクラスターメトリクスが異常かどうかを判断し、異常な場合は、パフォーマ
ンスに影響しているクエリを識別します。
• 過去または現在のクエリがクラスターのパフォーマンスに影響しているかどうかを確認します。問
題のクエリを特定した場合は、クエリ実行中のクラスターのパフォーマンス、クエリが低速だった
理由を診断するのに役立つ情報、パフォーマンスを向上させるためにできる操作、を含めた詳細を
表示できます。
デフォルトのクラスター表示では、一緒にグラフ化されたすべてのノード、Average 統計、過去 1 時
間のデータが表示されます。このビューは必要に応じて変更できます。HealthStatus など一部の
メトリクスはリーダーノードにのみ該当し、WriteOps などその他のメトリクスはコンピューティン
グノードにのみ該当します。ノード表示モードを切り替えると、すべてのフィルタがリセットされま
す。
クラスターのパフォーマンスデータを表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左ナビゲーションで [Clusters] をクリックします。
3.
[Cluster] リストで、パフォーマンスデータを表示するクラスターの横にある拡大鏡のアイコンを
クリックします。
API Version 2012-12-01
205
Amazon Redshift 管理ガイド
クラスターのパフォーマンスデータを表示する
4.
[Performance] タブを選択します。
デフォルトでは、パフォーマンスビューには過去 1 時間のクラスターのパフォーマンスが表示さ
れます。ビューを微調整する必要がある場合は、次の表に示すように、使用できるフィルタがあ
ります。
目的
使用するフィルタ
データを表示する時間範囲を変更する
[Time Range] ドロップダウンから時間範囲を選
択します。デフォルトでは、過去 1 時間が表示さ
れます。
データが表示される期間を変更する
[Period] ドロップダウンから期間を選択します。
デフォルトでは、5 分の期間が表示されます。メ
トリクスを調査するときにさらに詳細が必要な場
合 (ドリルイン) や、短時間のメトリクス (例: 10
分) を表示する場合は、5 分よりも短い期間を使
用します。同様に、長時間のメトリクス (例: 数
日) のメトリクスを表示する場合は、5 分よりも
長い期間を使用します。
メトリクスに表示される統計を変更する
[Statistic] ドロップダウンから統計を選択しま
す。デフォルトでは、Average 統計が使用され
ます。
表示するメトリクスを変更する (すべて、
または特定のメトリクス)
[Metrics] ドロップダウンからメトリクスを選択し
ます。デフォルトでは、すべてのメトリクスが表
示されます。
同じグラフでノードメトリクスが個別に表
示されるのか、一緒に表示されるのかを変
更する
[Nodes] ボタンをクリックします。デフォルトで
は、特定のメトリクスのノードデータは組み合わ
されたグラフに表示されます。別のグラフにノー
ドデータを表示するように選択した場合は、さら
に個別のノードを表示または非表示にできます。
API Version 2012-12-01
206
Amazon Redshift 管理ガイド
クラスターのパフォーマンスデータを表示する
クラスターメトリクス: 例
次の例は、1 つのノードクラスターの CPUUtilization および NetworkReceiveThroughput メト
リクスを示しています。この場合、クラスターメトリクスのグラフでは、1 つの線が [Shared] とマー
クされて表示されます。これは、リーダーノードおよびコンピューティングノードが組み合わされ
ているためです。この例は、表示されている時間範囲で複数のクエリが実行されたことを示していま
す。[Queries] グラフで、2 つのメトリクスのピーク値で実行されているクエリにカーソルが置かれ、
[Query ID] が右側に表示されています。次に、[Query ID] をクリックすると、実行中のクエリに関す
る詳細を表示できます。
次の例は、2 つのノードがあるクラスターの NetworkReceiveThroughput を示しています。リー
ダーノードおよび 2 つのコンピューティングノードの線を示しています。リーダーノードのメトリ
クスは平らであり、注目する必要はありません。これは、データはコンピューティングノードのみで
ロードされるためです。この例では、表示されている期間に 1 つの長いクエリが実行されたことを示
しています。[Queries] グラフで、長時間実行されているクエリにカーソルが置かれ、[Query ID] が右
側に表示されています。次に、[Query ID] をクリックすると、実行中のクエリに関する詳細を表示で
きます。クエリの実行中に NetworkReceiveThroughput 値が表示されます。
API Version 2012-12-01
207
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
クエリパフォーマンスデータの表示
Amazon Redshift コンソールには、データベースで実行するクエリのパフォーマンスに関する情報が
表示されます。この情報を使用して、処理に長い時間がかかるクエリや、他のクエリの効率的な処理
を妨げるようなボトルネックを作成するクエリを識別し、トラブルシューティングすることができま
す。この情報は、クラスター詳細ページの [Queries] タブを使用して表示できます。[Queries] タブに
は、クラスターで現在実行中か、または最近実行したクエリがリスト表示されます。
以下に示すボタンバーを使用すると、テーブルのデータを更新したり、テーブルに表示される列を設
定したり、Amazon Redshift ドキュメントを開いたりできます。
クエリパフォーマンスデータを表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左ナビゲーションで [Clusters] をクリックします。
3.
[Cluster] リストで、パフォーマンスデータを表示するクラスターの横にある拡大鏡のアイコンを
クリックします。
4.
[Queries] タブを選択します。
デフォルトでは、[Queries] タブには、過去 24 時間のクエリパフォーマンスが表示されます。表
示されるデータを変更するには、[Filter] リストを使用して、クエリを表示する期間を選択する
か、[Search] ボックスにキーワードを入力して検索条件に一致するクエリを検索します。
クエリの実行の終了
[Queries] ページを使用して、現在進行中のクエリを終了することもできます。
Note
Amazon Redshift console でクエリとロードを終了するには、特定のアクセス権限が必要で
す。IAM で [Amazon Redshift Read Only] AWS 管理ポリシーを選択したか、カスタムポリ
API Version 2012-12-01
208
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
シーを作成した場合で、ユーザーがクエリとロードを終了できるようにするときは、必ず
redshift:CancelQuerySession アクションをポリシーに追加してください。[Amazon
Redshift Full Access] ポリシーが適用されているユーザーには、クエリとロードを終了するた
めのアクセス権限がすでにあります。Amazon Redshift の IAM ポリシーにおけるアクション
の詳細については、「アクセスコントロール (p. 112)」を参照してください。
クエリの実行を終了するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインの [Clusters] をクリックします。
3.
[Cluster] リストで、開くクラスターをクリックします。
4.
[Queries] タブをクリックします。
5.
次のいずれかを行ってください。
• リストで、終了するクエリを選択し、[Terminate Query] をクリックします。
• リストで、クエリ情報リストを確認する場合はクエリを開き、[Terminate Query] をクリックし
ます。
6.
[Terminate Queries] ダイアログボックスで、[Confirm] をクリックします。
クエリの詳細の表示
特定のクエリの詳細を表示するには、[Queries] ページのテーブルで個別のクエリをクリックして
[Query ID] ビューを開きます。次のリストで、個別のクエリで利用可能な情報を示します。
• [Query Properties]。クエリ ID、クエリを実行したデータベースユーザー、期間など、クエリに関す
る情報の概要を表示します。
• [Details]。クエリのステータスを表示します。
• SQL. わかりやすく人間が読み取れる形式でクエリテキストを表示します。
• [Query Execution Details]。クエリの処理に関する情報を表示します。このセクションには、クエリ
の計画された実行データおよび実際の実行データの両方が含まれます。[Query Execution Details] セ
クションの使用の詳細については、「クエリ実行の分析 (p. 210)」を参照してください。
• [Cluster Performance During Query Execution]。Amazon CloudWatch のパフォーマンスメトリク
スを表示します。[Cluster Performance During Query Execution] セクションの使用の詳細について
は、「クエリ実行中のクラスターパフォーマンスの表示 (p. 213)」を参照してください。
[Query] ビューを開くと、次のような外観になります。
API Version 2012-12-01
209
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
クエリ実行の分析
[Query] ビューの [Query Execution Details] セクションには、クエリの処理方法の詳細が表示されま
す。このセクションでは、SVL_QUERY_REPORT、STL_EXPLAIN、および他のシステムビューやシ
ステムテーブルからのデータが組み合わされます。
[Query Execution Details] セクションには 2 つのタブがあります。
• [Plan]。このタブには、表示されているクエリの説明プランが表示されます。
• [Actual]。このタブには、実行されたクエリの実際のステップと統計が表示されます。この情報は、
テキストの階層と視覚的なグラフで表示されます。グラフの棒の上にカーソルを移動すると、次に
示すように、関連ステップの [Avg] や [Max] 統計が表示されます。
API Version 2012-12-01
210
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
[Avg] 統計には、データスライス間のステップの平均値実行時間、およびその時間が表す合計クエリ
実行時間の割合が表示されます。[Max] 統計は、任意のデータスライスのステップの最長実行時間
とスキューを示します。スキューとは、ステップの平均実行時間と最大実行時間の差のことです。
クエリの複数の実行で、最大実行時間が常に平均実行時間の 2 倍以上になる場合や、ステップに長
い時間がかかる (たとえば、大規模なクエリの実行時間のトップ 3 のステップに入る) 場合は、ス
テップについて調査することをお勧めします。
Note
可能であれば、クエリを 2 回実行して、典型的な実行の詳細を確認します。コンパイルを
行うと、それ以降の実行には存在しないオーバーヘッドが、クエリの最初の実行に追加さ
れます。
ステップの高いスキューを調査するには、クエリプランの分散ステップについて、クエリで実行さ
れる分散の種類を確認し、その分散を変更する必要があるかどうか、データ分散戦略を見直しま
す。Amazon Redshift データ分散の詳細については、Amazon Redshift Database Developer Guide
の「データ分散スタイルの選択」を参照してください。
次に示すように、グラフの任意の棒をクリックして、説明プランから予測されるデータを、クエリ
の実際のパフォーマンスと比較することができます。
クエリオプティマイザが STL_ALERT_EVENT_LOG システムテーブルでアラートを生成した場合、
アラートに関連付けられた計画ノードにはアラートアイコンが付きます。
API Version 2012-12-01
211
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
[Plan] タブの情報は、データベースでの EXPLAIN コマンドの実行と似ています。EXPLAIN コマンド
では、クエリテキストを調べ、クエリプランを返します。この情報を使用してクエリを評価し、必要
に応じて効率とパフォーマンスを高めるために変更します。EXPLAIN コマンドは実際にクエリを実行
しません。
次の例は、2008 年に販売されたチケット数と、そのクエリのクエリプランに基づき、サンディエゴで
最も販売数の多かった販売会社 5 社を返します。
explain
select sellerid, username, (firstname ||' '|| lastname) as name,
city, sum(qtysold)
from sales, date, users
where sales.sellerid = users.userid
and sales.dateid = date.dateid
and year = 2008
and city = 'San Diego'
group by sellerid, username, name, city
order by 5 desc
limit 5;
説明プランの詳細については、Amazon Redshift データベース開発者ガイド の「説明プランの分析」
を参照してください。
実際にクエリを実行する (EXPLAIN コマンドを省略) すると、エンジンはクエリパフォーマンスを最
適化し、クエリの処理を変更する方法を発見できる可能性があります。クエリの実際のパフォーマン
スデータは、SVL_QUERY_REPORT や SVL_QUERY_SUMMARY などのシステムビューに保存され
ます。
Amazon Redshift コンソールは、STL_EXPLAIN、SVL_QUERY_REPORT、およびその他のシステム
ビューやシステムテーブルを組み合わせて使用して実際のクエリパフォーマンスを表し、それをクエ
リの説明プランと比較します。この情報は [Actual] タブに表示されます。説明プランと実際のクエリ
実行ステップが異なる場合は、ANALYZE などのデータベースでオペレーションを実行して統計を更
新し、説明プランをより効果的にします。
さらに、クエリオプティマイザは場合によっては複雑な SQL クエリをパートに分割し、volt_tt_guid
という命名規則で一時テーブルを作成して、クエリをより効率的に処理します。この場合、説明プラ
ンと実際のクエリ実行の要約の両方は、最後に実行されたステートメントに適用されます。前のクエ
リ ID を確認して、クエリに対応する各パートの説明プランと実際のクエリの要約を表示できます。
API Version 2012-12-01
212
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
説明プランとシステムビューおよびログとの違いの詳細については、Amazon Redshift データベース
開発者ガイド の「クエリプランのシステムビューへのマップ」を参照してください。
コンソールを使用した [Query Execution Details] の表示
クエリ実行の詳細を表示するには、次の手順を使用します。
クエリ実行の詳細を表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインの [Clusters] をクリックします。
3.
[Cluster] リストで、クエリ実行の詳細を表示するクラスターを選択します。
4.
[Queries] タブをクリックし、パフォーマンスデータを表示するクエリを開きます。
5.
[Query Execution Details] セクションを展開し、以下の操作を行います。
a. [Plan] タブで、クエリの説明プランを確認します。説明プランが [Actual] タブの実際のクエリ
実行と異なる場合は、ANALYZE を実行して統計を更新するか、データベースでその他のメン
テナンスを実行して、実行するクエリの最適化が必要になる可能性があります。クエリの最適
化の詳細については、Amazon Redshift Database Developer Guide の「クエリパフォーマンス
のチューニング」を参照してください。
b. [Actual] タブで、クエリ実行の各計画ノードに関連付けられたパフォーマンスデータを確認
します。階層の個別の計画ノードをクリックすると、特定の計画ノードに関連付けられたパ
フォーマンスデータを表示できます。このデータには、予測データと実際のパフォーマンス
データの両方が含まれます。
クエリ実行中のクラスターパフォーマンスの表示
[Query] ビューの [Cluster Performance During Query Execution] セクションを使用してクエリ実行中
のクラスターメトリクスを表示し、パフォーマンスが低いクエリを識別したり、ボトルネックのクエ
リを探したり、ワークロードに対してクラスターのサイズを変更する必要があるかどうかを判断した
りできます。
クエリの実行中にクラスターメトリクスを表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインの [Clusters] をクリックします。
3.
[Cluster] リストで、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択
します。
4.
[Queries] タブをクリックします。
API Version 2012-12-01
213
Amazon Redshift 管理ガイド
クエリパフォーマンスデータの表示
5.
クエリリストで、対象のクエリを見つけ、[Query] 列でクエリ ID をクリックします。
次の例では、実行時間が最大のクエリを見つけることができるように、クエリは [Run time] を基
準に並べ替えられています。
6.
開かれた [Query] ページで、[Cluster Performance During Query Execution] セクションまでスク
ロールしてクラスターメトリクスを表示します。
次の例では、このクエリが実行中の時間の [CPUUtilization] および
[NetworkReceiveThroughput] メトリクスが表示されます。
Tip
[Query Execution Details] または [SQL] セクションの詳細を閉じて、ペインに表示される
情報の量を管理できます。
API Version 2012-12-01
214
Amazon Redshift 管理ガイド
ロード操作中にクラスターメトリクスを表示する
ロード操作中にクラスターメトリクスを表示する
ロード操作中にクラスターのパフォーマンスを表示すると、リソースを消費しているクエリを識別
し、その影響を軽減するためのアクションを実行できます。ロードを最後まで実行しない場合はロー
ドを終了できます。
Note
Amazon Redshift console でクエリとロードを終了するには、特定のアクセス権限が必要で
す。IAM で [Amazon Redshift Read Only] AWS 管理ポリシーを選択したか、カスタムポリ
シーを作成した場合で、ユーザーがクエリとロードを終了できるようにするときは、必ず
redshift:CancelQuerySession アクションをポリシーに追加してください。[Amazon
Redshift Full Access] ポリシーが適用されているユーザーには、クエリとロードを終了するた
めのアクセス権限がすでにあります。Amazon Redshift の IAM ポリシーにおけるアクション
の詳細については、「アクセスコントロール (p. 112)」を参照してください。
ロード操作中にクラスターメトリクスを表示するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインの [Clusters] をクリックします。
3.
[Cluster] リストで、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択
します。
4.
[Loads] タブをクリックします。
5.
ロードリストで、対象のロード操作を見つけ、[Load] 列でロード ID をクリックします。
API Version 2012-12-01
215
Amazon Redshift 管理ガイド
アラームを作成する
6.
表示される新しい [Query] タブで、ロード操作の詳細を表示できます。
この時点で、「クエリパフォーマンスデータの表示 (p. 208)」に示すように [Query] タブを使用
できます。クエリの詳細を確認し、ロード操作中にクラスターメトリクスの値を表示することが
できます。
実行中のロードを終了するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
左のナビゲーションペインの [Clusters] をクリックします。
3.
[Cluster] リストで、開くクラスターをクリックします。
4.
[Loads] タブをクリックします。
5.
次のいずれかを行ってください。
• リストで、終了するロードを選択し、[Terminate Load] をクリックします。
• リストで、ロード情報リストを確認する場合はロードを開き、[Terminate Load] をクリックし
ます。
6.
[Terminate Loads] ダイアログボックスで、[Confirm] をクリックします。
アラームを作成する
Amazon Redshift コンソールで作成するアラームは、Amazon CloudWatch アラームです。これら
のアラームは、クラスターとそのデータベースに関する予防的な決定を行うために役立ちます。
「Amazon Redshift CloudWatch メトリクス (p. 201)」にリストされているいずれのメトリクスに
も、1 つ以上のアラームを設定できます。例えば、クラスターノードの高い CPUUtilization に対し
てアラームを設定すると、ノードの使用率が高すぎるときに、そのことが示されます。同様に、クラ
スターノードの低い CPUUtilization に対してアラームを設定すると、ノードの使用率が低すぎる
ときに、そのことが示されます。
ここでは、Amazon Redshift コンソールを使用してアラームを作成する方法について説明します。ア
ラームを作成するには、Amazon CloudWatch コンソールを使用するか、Amazon CloudWatch コマン
ドラインインターフェイス (CLI) や Amazon Software Development Kit (SDK) など、メトリクスの操
作に通常使用するその他の方法を使用できます。アラームを削除するには、Amazon CloudWatch コ
ンソールを使用する必要があります。
Amazon Redshift コンソールでクラスターメトリクスにアラームを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
API Version 2012-12-01
216
Amazon Redshift 管理ガイド
アラームを作成する
2.
左ナビゲーションで [Clusters] をクリックします。
3.
[Cluster] リストで、クエリの実行中にクラスターのパフォーマンスを表示するクラスターを選択
します。
4.
[Events+Alarms] タブを選択します。
5.
[Create Alarm] をクリックします。
6.
[Create Alarm] ダイアログボックスで、アラームを設定し、[Create] をクリックします。
Note
[Send a notification to] ボックスに表示される通知は、Amazon Simple Notification
Service (Amazon SNS) のトピックです。Amazon SNS、およびトピックの作成の詳細に
ついては、Amazon Simple Notification Service 入門ガイド の「トピックの作成」を参照
してください。Amazon SNS にトピックがない場合は、[create topic] リンクをクリック
して [Create Alarm] ダイアログボックスでトピックを作成できます。
アラームの詳細は、状況に応じて変わります。次の例では、ノード (Compute-0) の平均的な CPU
使用率にアラームが設定されていて、CPU 使用率が 5 分間で連続して 4 回にわたり 80 パーセン
トを超えた場合に、[redshift-example-cluster-alarms] トピックに通知が送信されます。
API Version 2012-12-01
217
Amazon Redshift 管理ガイド
Amazon CloudWatch コンソールでパ
フォーマンスメトリクスを使用する
7.
アラームのリストで、新しいアラームを見つけます。
次の例に示すように、アラームの状態を判断するために十分なデータが収集されるまでに、少し
待たなければならない場合があります。
しばらくすると、状態が [OK] に変わります。
8.
(オプション) アラームの [Name] をクリックしてアラームの設定を変更するか、[More Options] の
表示リンクをクリックして、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 つの概念に留意してください。
API Version 2012-12-01
218
Amazon Redshift 管理ガイド
Amazon CloudWatch コンソールでパ
フォーマンスメトリクスを使用する
• 最初に、対象のメトリクスディメンションを指定します。ディメンションは、メトリクス
を一意に識別できるようにする名前と値のペアです。Amazon Redshift のディメンションは
ClusterIdentifier および NodeID です。Amazon CloudWatch コンソールには、クラスター
およびノード固有のディメンションを簡単に選択できるようにするために、Redshift Cluster
および Redshift Node ビューが用意されています。ディメンションの詳細については、Amazon
CloudWatch Developer Guide の「Dimensions」を参照してください。
• 2 番目に、ReadIOPS などのメトリクス名を指定します。
次の表は、使用できる Amazon Redshift メトリックディメンションのタイプをまとめたものです。す
べてのデータは 1 分間隔で取得できます。無料です。
Amazon
CloudWatch 名前
空間
ディメンション
説明
AWS/Redshift
NodeID
フィルタにより、クラスターのノードに固有のデータが要
求されました。NodeID は、"Leader"、"Shared"、または
"Compute-N" のいずれかになります。ここで、N はクラス
ターのノード数を表す 0、1、... です。"Shared" は、クラ
スターには 1 つのノードのみがあることを意味します。つ
まり、リーダーノードとコンピューティングノードが組み
合わされています。
ClusterIdentifier
フィルタにより、クラスターに固有のデータが要
求されました。クラスターに固有のメトリクスに
は、HealthStatus、MaintenanceMode、DatabaseConnections
があります。ノードのメトリクスでもある、このディメン
ションの全般的なメトリクス (ReadIOPS など) は、ノード
メトリクスデータの集計を表します。これらのメトリクス
は、リーダーノードおよびコンピューティングノードの動
作を集計するため、その解釈には注意が必要です。
ゲートウェイおよびボリュームメトリクスの使用は、その他のサービスメトリクスの使用と似ていま
す。参考のため、Amazon CloudWatch ドキュメントに説明されている一般的な多くのタスクを以下
に示します。
• 利用可能なメトリクスのリスト化
• メトリクスの統計の取得
• CloudWatch アラームの作成
API Version 2012-12-01
219
Amazon Redshift 管理ガイド
概要
Amazon Redshift イベント
トピック
• 概要 (p. 220)
• コンソールを使ったイベントの表示 (p. 220)
• AWS SDK for Java を使ったイベントの表示 (p. 222)
• Amazon Redshift CLI と API を使ったイベントの表示 (p. 223)
• Amazon Redshift イベント通知 (p. 223)
概要
Amazon Redshift はイベントを追跡し、AWS アカウントで数週間、そのイベントに関する情報を保持
します。Amazon Redshift はイベントごとに、イベントが発生した日付、説明、イベントのソース (ク
ラスター、パラメーターグループ、またはスナップショット)、ソース ID などの情報を報告します。
Amazon Redshift コンソール、Amazon Redshift API、または AWS SDK を使って、イベント情報を取
得できます。すべてのイベントのリストを取得することも、フィルタ (イベント期間、開始日と終了日
など) を適用して、特定期間のイベント情報を取得することもできます。また、特定のソースタイプに
よって生成されたイベント (クラスターイベントやパラメーターグループイベントなど) を取得するこ
ともできます。
一連のイベント フィルタを指定する、Amazon Redshift イベント通知サブスクリプションを作成
できます。フィルタ条件に一致するイベントが発生すると、Amazon Redshift は Amazon Simple
Notification Service を使用してイベントが発生したことをアクティブに通知します。
ソースタイプおよびカテゴリ別の Amazon Redshift イベントのリストについては、「the section
called “Amazon Redshift イベントのカテゴリおよびイベントメッセージ” (p. 225)」を参照してくだ
さい。
コンソールを使ったイベントの表示
左側のナビゲーションの [Events] をクリックして、Amazon Redshift コンソールでイベントを表示で
きます。イベントのリストでは、[Source Type] フィルタ、またはリストのすべてのフィールド内の
テキストをフィルタするカスタムの [Filter] を使って、結果をフィルタすることができます。例えば、
「12 Dec 2012」を検索する場合、この値を含む [Date] フィールドと一致します。
API Version 2012-12-01
220
Amazon Redshift 管理ガイド
イベントのフィルタ
イベントソースタイプは、イベントの種類を示します。次のソースタイプが使用できます。
[Cluster]、[Cluster Parameter Group]、[Cluster Security Group]、[Snapshot]
イベントのフィルタ
場合によって、特定のカテゴリのイベント、または特定のクラスターのイベントを検索する場合があ
ります。このような場合、表示されたイベントをフィルタできます。
イベントをフィルタするには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインの [Events] をクリックします。
3.
イベントをフィルタするには、以下のいずれかを実行します。
a.
イベントタイプでフィルタするには、[Filter Cluster] をクリックして、ソースタイプを選択し
ます。
b.
イベントの説明に表示されたテキストでフィルタするには、検索ボックスにテキストを入力
すると、入力内容に応じて、リストが絞り込まれます。
API Version 2012-12-01
221
Amazon Redshift 管理ガイド
AWS SDK for Java を使ったイベントの表示
AWS SDK for Java を使ったイベントの表示
次の例では、指定したクラスターのイベントと指定したイベントソースタイプを一覧表示します。こ
の例では、ページネーションの使用方法を示します。
以下の例を実行するための詳しい手順については、「Eclipse を使用した Amazon Redshift の Java
実行例 (p. 148)」を参照してください。コードをアップデートして、クラスターの識別子とイベント
ソースタイプを指定する必要があります。
import java.io.IOException;
import java.util.Date;
import
import
import
import
com.amazonaws.auth.AWSCredentials;
com.amazonaws.auth.PropertiesCredentials;
com.amazonaws.services.redshift.AmazonRedshiftClient;
com.amazonaws.services.redshift.model.*;
public class ListEvents {
public static AmazonRedshiftClient client;
public static String clusterIdentifier = "***provide cluster
identifier***";
public static String eventSourceType = "***provide source type***"; //
e.g. cluster-snapshot
public static void main(String[] args) throws IOException {
AWSCredentials credentials = new PropertiesCredentials(
ListEvents.class
.getResourceAsStream("AwsCredentials.properties"));
client = new AmazonRedshiftClient(credentials);
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);
API Version 2012-12-01
222
Amazon Redshift 管理ガイド
Amazon Redshift CLI と API を使ったイベントの表示
}
} while (marker != null);
}
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());
}
}
Amazon Redshift CLI と API を使ったイベントの
表示
次の Amazon Redshift CLI 操作を使って、イベントを管理できます。
• イベントの説明
Amazon Redshift は次の API を使って、イベントを表示します。
• DescribeEvents
Amazon Redshift イベント通知
トピック
• 概要 (p. 223)
• Amazon Redshift イベントのカテゴリおよびイベントメッセージ (p. 225)
• Amazon Redshift コンソールを使用してイベント通知を管理する (p. 231)
• Amazon Redshift CLI および API を使用してイベント通知を管理する (p. 236)
概要
Amazon Redshift は、Amazon Simple Notification Service (Amazon SNS) を使用して、Amazon
Redshift イベント通知を送信します。通知は、Amazon Redshift イベントサブスクリプションを
作成して有効にします。Amazon Redshift サブスクリプションでは、Amazon Redshift イベントと
Amazon SNS トピックの一連のフィルタを指定します。フィルタ条件に一致するイベントが発生する
たびに、Amazon Redshift は Amazon SNS トピックに通知メッセージを発行します。次に、Amazon
SNS はそのトピックへの Amazon SNS サブスクリプションを持つすべての Amazon SNS ユーザー
にメッセージを送信します。Amazon SNS ユーザーに送信されたメッセージは、AWS リージョン
API Version 2012-12-01
223
Amazon Redshift 管理ガイド
概要
の Amazon SNS によりサポートされるどの形式の可能性もあります (メール、テキストメッセー
ジ、HTTP エンドポイントへの呼び出し)。たとえば、すべてのリージョンでメール通知がサポートさ
れますが、SMS 通知は 米国東部 (バージニア北部) リージョン でのみ作成できます。
イベント通知サブスクリプションを作成するときは、1 つ以上のイベントフィルタを指定しま
す。Amazon Redshift は、すべてのフィルタ条件に一致するイベントが発生するたびに、サブスク
リプションを介して通知を送信します。フィルタ条件には、ソースのタイプ (クラスターやスナップ
ショットなど)、ソース ID (クラスターまたはスナップショットの名前など)、イベントカテゴリ (モニ
タリングやセキュリティなど)、イベントの重大度 (INFO や ERROR など) が含まれます。
AWS マネジメントコンソール で [Enabled] ラジオボタンを No に設定するか、Amazon Redshift CLI
または API を使用して Enabled パラメーターを false に設定することで、サブスクリプションを削
除しなくても通知を無効にできます。
Amazon Redshift イベント通知の請求は、Amazon Simple Notification Service (Amazon SNS) を通じ
て行われます。Amazon SNS 料金は、イベント通知を使用するときに適用されます。Amazon SNS の
請求の詳細については、「Amazon Simple Notification Service Pricing」を参照してください。
管理コンソールを使用して、発生した Amazon Redshift イベントを表示することもできます。詳細に
ついては、「Amazon Redshift イベント (p. 220)」を参照してください。
Amazon Redshift イベント通知にサブスクライブする
Amazon Redshift イベント通知サブスクリプションを作成して、特定のクラスター、スナップショッ
ト、セキュリティグループ、パラメーターグループでイベントが発生したときに通知を受け取ること
ができます。サブスクリプションを作成する最も簡単な方法は、Amazon SNS コンソールを使用する
方法です。Amazon SNS トピックを作成してサブスクライブする方法については、「Getting Started
with Amazon SNS」を参照してください。
Amazon Redshift イベント通知サブスクリプションを作成して、特定のクラスター、スナップショッ
ト、セキュリティグループ、パラメーターグループでイベントが発生したときに通知を受け取る
ことができます。サブスクリプションを作成する最も簡単な方法は、AWS マネジメントコンソー
ル を使用する方法です。CLI または API を使用してイベント通知サブスクリプションを作成する場
合、Amazon Simple Notification Service トピックを作成し、Amazon SNS コンソールまたは Amazon
SNS API を使用してそのトピックにサブスクライブする必要があります。トピックの Amazon
Resource Name (ARN) は、CLI コマンドや API アクションを送信するときに使用されるため維持す
る必要があります。Amazon SNS トピックを作成してサブスクライブする方法については、「Getting
Started with 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 は、サブスクリプションで指定されているすべての条件に一致するすべてのイベン
トに通知を送信します。返されるイベントセットの例
API Version 2012-12-01
224
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
• サブスクリプションは、クラスターのソースタイプ、ソース ID my-cluster-1、カテゴリ
Monitoring、重大度 ERROR を指定します。サブスクリプションは、my-cluster-1 から生じた、重大
度が ERROR のモニタリングイベントにのみ通知を送信します。
• サブスクリプションは、クラスターのソースタイプ、カテゴリ Configuration、INFO の重大度を指
定します。サブスクリプションは、AWS アカウント内のすべての Amazon Redshift クラスターか
ら生じた、重大度が INFO の設定イベントに通知を送信します。
• サブスクリプションは、カテゴリ Configuration と重大度 INFO を指定します。サブスクリプション
は、AWS アカウント内のすべての Amazon Redshift リソースから生じた、重大度が INFO の設定
イベントに通知を送信します。
• サブスクリプションは、重大度 ERROR を指定します。サブスクリプションは、AWS アカウント
内のすべての Amazon Redshift リソースから生じた、重大度が ERROR のすべてのイベントに通知
を送信します。
既存のサブスクリプションで名前がソース ID として参照されているオブジェクトを削除または名前変
更する場合、サブスクリプションはアクティブのままになりますが、そのオブジェクトから転送され
るイベントはありません。サブスクリプションソース ID で参照されるのと同じ名前の新しいオブジェ
クトを後で作成する場合、サブスクリプションは新しいオブジェクトから生じたイベントの通知の送
信を開始します。
Amazon Redshift は、Amazon Resource Name (ARN) によって識別される Amazon SNS トピックに
イベントの通知を発行します。Amazon Redshift コンソールを使用してイベントサブスクリプション
を作成するときは、既存の Amazon SNS トピックを指定するか、サブスクリプションの作成時にコ
ンソールがトピックを作成することリクエストすることができます。Amazon SNS トピックに送信
されたすべての Amazon Redshift イベント通知は、そのトピックにサブスクライブしているすべて
の Amazon SNS ユーザーに順番に送信されます。Amazon SNS コンソールを使用して Amazon SNS
トピックに変更を加えます (トピックへのユーザーサブスクリプションの追加や削除など)。Amazon
SNS トピックの作成とサブスクライブの詳細については、「Getting Started with Amazon Simple
Notification Service」を参照してください。
Amazon Redshift は、Amazon Resource Name (ARN) によって識別される Amazon SNS トピックに
イベントの通知を発行します。Amazon Redshift コンソールを使用してイベントサブスクリプション
を作成するときは、既存の Amazon SNS トピックを指定するか、サブスクリプションの作成時にコン
ソールがトピックを作成することリクエストすることができます。CLI または API を使用する場合、
既存のトピックの Amazon Resource Name (ARN) を指定する必要があります。Amazon SNS トピッ
クが存在しない場合、Amazon Redshift サブスクリプションを作成する前に、まず Amazon SNS コ
ンソールまたは Amazon SNS API を使用して作成できます。Amazon SNS トピックに送信されたす
べての Amazon Redshift イベント通知は、そのトピックにサブスクライブしているすべての Amazon
SNS ユーザーに順番に送信されます。Amazon SNS トピックの作成とサブスクライブの詳細について
は、「Getting Started with Amazon Simple Notification Service」を参照してください。
次のセクションに、通知を受け取ることができるすべてのカテゴリとイベントを示します。さら
に、Amazon Redshift イベントサブスクリプションにサブスクライブして操作する方法に関する情報
も示します。
Amazon Redshift イベントのカテゴリおよびイベン
トメッセージ
このセクションには、各 Amazon Redshift ソースタイプのイベント ID とカテゴリを示します。
次の表は、クラスターがソースタイプである場合のイベントカテゴリとイベントのリストを示しま
す。
クラスターソースタイプのカテゴリとイベント
API Version 2012-12-01
225
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
Amazon
Redshift カ
テゴリ
イベント ID
イベント
の重大度
説明
設定
REDSHIFTEVENT-1000
INFO
パラメーターグループ [パラメーターグループ
名] が [時間] に更新されました。変更は、再起
動時に関連するクラスターに適用されます。
設定
REDSHIFTEVENT-1001
INFO
Amazon Redshift クラスター [クラスター名]
が、[時間] にパラメーターグループ [パラメー
ターグループ名] を使用するように変更されま
した。
設定
REDSHIFTEVENT-1500
ERROR
Amazon VPC [VPC 名] が存在しません。クラス
ター [クラスター名] の設定の変更が適用されま
せんでした。AWS マネジメントコンソール に
アクセスして問題を修正してください。
設定
REDSHIFTEVENT-1501
ERROR
Amazon VPC [VPC 名] に指定した顧客サブネッ
ト [サブネット名] が存在しないか、無効です。
クラスター [クラスター名] の設定の変更が適
用されませんでした。AWS マネジメントコン
ソール にアクセスして問題を修正してくださ
い。
設定
REDSHIFTEVENT-1502
ERROR
Amazon VPC [VPC 名] には使用可能な IP アド
レスがありません。クラスター [クラスター名]
の設定の変更が適用されませんでした。AWS
マネジメントコンソール にアクセスして問題を
修正してください。
設定
REDSHIFTEVENT-1503
ERROR
Amazon VPC [VPC 名] にインターネットゲート
ウェイが接続されていません。クラスター [ク
ラスター名] の設定の変更が適用されませんで
した。AWS マネジメントコンソール にアクセ
スして問題を修正してください。
設定
REDSHIFTEVENT-1504
ERROR
クラスター [クラスター名] の HSM に到達でき
ません。
設定
REDSHIFTEVENT-1505
ERROR
クラスター [クラスター名] の HSM を登録でき
ません。別の設定を試してください。
管理
REDSHIFTEVENT-2000
INFO
Amazon Redshift クラスター: [クラスター名] が
作成され、使用可能です。
管理
REDSHIFTEVENT-2001
INFO
Amazon Redshift クラスター [クラスター名] の
名前が [時刻] に削除されました。最終スナッ
プショットが保存 [されました/されませんでし
た]。
管理
REDSHIFTEVENT-2002
INFO
VPC セキュリティグループ [セキュリティグ
ループ名] が [時間] に更新されました。
管理
REDSHIFTEVENT-2003
INFO
メンテナンスは Amazon Redshift クラスター
[クラスター名] で [時間] に開始されました。メ
ンテナンス中、クラスターを使用できない場合
があります。
API Version 2012-12-01
226
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
Amazon
Redshift カ
テゴリ
イベント ID
イベント
の重大度
説明
管理
REDSHIFTEVENT-2004
INFO
メンテナンスは Amazon Redshift クラスター
[クラスター名] で [時間] に完了しました。
管理
REDSHIFTEVENT-2006
INFO
Amazon Redshift クラスター [クラスター名] の
サイズ変更が [時間] に開始されました。サイズ
変更操作中、クラスターは読み取り専用モード
になります。
管理
REDSHIFTEVENT-2007
INFO
Amazon Redshift クラスター [クラスター名] の
サイズ変更は、進行中です。クラスターは読み
取り専用モードです。
管理
REDSHIFTEVENT-2008
INFO
新しい Amazon Redshift クラスター [クラス
ター名] スナップショット [スナップショット名]
を作成する復元操作が [時間] に開始しました。
復元の進行状況をモニタリングするには、AWS
マネジメントコンソール にアクセスしてくださ
い。
管理
REDSHIFTEVENT-2013
INFO
Amazon Redshift クラスター [クラスター名] の
名前が [時刻] に変更されました。
管理
REDSHIFTEVENT-2016
INFO
Amazon Redshift クラスター [クラスター名] の
置換が [時間] に開始されました。
モニタリン
グ
REDSHIFTEVENT-2050
INFO
Amazon Redshift クラスター [cluster name] で
ハードウェア問題が検出されました。置換リク
エストが [time] に開始されました。
モニタリン
グ
REDSHIFTEVENT-3000
INFO
Amazon Redshift クラスター [クラスター名] の
名前が [時刻] に再起動されました。
モニタリン
グ
REDSHIFTEVENT-3001
INFO
Amazon Redshift クラスター: [クラスター名] の
ノードが [時間] に自動的に置き換えられ、クラ
スターは通常動作中です。
モニタリン
グ
REDSHIFTEVENT-3002
INFO
Amazon Redshift クラスター [クラスター名] の
サイズ変更が完了したため、クラスターを読み
取りおよび書き込みできます。サイズ変更は
[時間] に開始され、完了までに [時間数] かかり
ました。
モニタリン
グ
REDSHIFTEVENT-3003
INFO
Amazon Redshift クラスター [クラスター名]
は、スナップショット [スナップショット名] か
ら正常に作成されたため、使用できます。
モニタリン
グ
REDSHIFTEVENT-3007
INFO
Amazon Redshift スナップショット [スナップ
ショット名] が [コピー元リージョン] から [コ
ピー先リージョン] に [時刻] に正常にコピーさ
れました。
モニタリン
グ
REDSHIFTEVENT-3500
ERROR
Amazon Redshift クラスター [クラスター名] の
サイズ変更に失敗しました。サイズ変更は数分
後に自動的に再試行されます。
API Version 2012-12-01
227
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
Amazon
Redshift カ
テゴリ
イベント ID
イベント
の重大度
説明
モニタリン
グ
REDSHIFTEVENT-3501
ERROR
スナップショット [スナップショット名] から
Amazon Redshift クラスター [クラスター名] を
作成する復元操作が [時間] に失敗しました。操
作を再実行してください。
モニタリン
グ
REDSHIFTEVENT-3504
ERROR
Amazon S3 バケット [バケット名] はクラス
ター [クラスター名] のログ作成には無効です。
モニタリン
グ
REDSHIFTEVENT-3505
ERROR
Amazon S3 バケット [バケット名] にはクラス
ター [クラスター名] に関する正しい IAM ポリ
シーがありません。
モニタリン
グ
REDSHIFTEVENT-3506
ERROR
Amazon S3 バケット [バケット名] が存在しま
せん。クラスター [クラスター名] のログ作成を
続行できません。
モニタリン
グ
REDSHIFTEVENT-3507
ERROR
Amazon Redshift クラスター [クラスター名] が
EIP [IP アドレス] を使用して作成できません。
この EIP は既に使われています。
モニタリン
グ
REDSHIFTEVENT-3508
ERROR
Amazon Redshift クラスター [クラスター名]
が EIP [IP アドレス] を使用して作成できませ
ん。EIP が見つかりません。
モニタリン
グ
REDSHIFTEVENT-3509
ERROR
クラスター [クラスター名] のクロスリージョン
スナップショットのコピーが有効になっていま
せん。
モニタリン
グ
REDSHIFTEVENT-3512
ERROR
クラスター [クラスター名] は失敗しましたが、
データは失われませんでした。 クラスターは、
[時間] に作成された最新スナップショット [ス
ナップショット名] から自動的に復元されてい
ます。
モニタリン
グ
REDSHIFTEVENT-3513
ERROR
クラスター [クラスター名] は失敗し、一部の
データが失われました。 クラスターは、[時間]
に作成された最新スナップショット [スナップ
ショット名] から自動的に復元されています。
モニタリン
グ
REDSHIFTEVENT-3514
ERROR
クラスター [クラスター名] は失敗しましたが、
データは失われませんでした。 クラスターは、
ハードウェア障害の状態に配置されます。 ク
ラスターを削除して、[時間] に作成した最新ス
ナップショット [スナップショット名] から復元
します。
モニタリン
グ
REDSHIFTEVENT-3515
ERROR
クラスター [クラスター名] は失敗し、一部の
データが失われました。 クラスターは、ハー
ドウェア障害の状態に配置されます。 クラス
ターを削除して、[時間] に作成した最新スナッ
プショット [スナップショット名] から復元しま
す。
API Version 2012-12-01
228
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
Amazon
Redshift カ
テゴリ
イベント ID
イベント
の重大度
説明
モニタリン
グ
REDSHIFTEVENT-3516
ERROR
クラスター [クラスター名] は失敗しました。
バックアップスナップショットはありません。
クラスターは、ハードウェア障害の状態に配置
されます。 クラスターを削除します。
モニタリン
グ
REDSHIFTEVENT-3517
ERROR
クラスター [クラスター名] は失敗しました。一
部のデータが失われた可能性があります。 ク
ラスターは、[時間] に作成された最新スナップ
ショット [スナップショット名] から自動的に復
元されています。
モニタリン
グ
REDSHIFTEVENT-3518
ERROR
クラスター [クラスター名] は失敗しました。一
部のデータが失われた可能性があります。 クラ
スターは、ハードウェア障害の状態に配置され
ます。 クラスターを削除して、[時間] に作成し
た最新スナップショット [スナップショット名]
から復元します。
セキュリ
ティ
REDSHIFTEVENT-4000
INFO
Amazon Redshift クラスター: [クラスター名] の
マスター認証情報が [時間] に更新されました。
セキュリ
ティ
REDSHIFTEVENT-4001
INFO
セキュリティグループ [セキュリティグループ
名] が [時間] に変更されました。変更は、関連
付けられたすべてのクラスターに対して自動的
に行われます。
セキュリ
ティ
REDSHIFTEVENT-4500
ERROR
指定されたセキュリティグループ [セキュリ
ティグループ名] は無効です。クラスター [クラ
スター名] の設定の変更が適用されませんでし
た。AWS マネジメントコンソール にアクセス
して問題を修正してください。
セキュリ
ティ
REDSHIFTEVENT-4501
ERROR
クラスターセキュリティグループ [クラスター
セキュリティグループ名] で指定されたセキュ
リティグループ [セキュリティグループ名] が見
つかりませんでした。認可を完了できません。
次の表は、パラメーターグループがソースタイプである場合のイベントカテゴリとイベントのリスト
を示します。
パラメーターグループソースタイプのカテゴリとイベント
Amazon
Redshift カテ
ゴリ
イベント ID
イベントの重
大度
説明
設定
REDSHIFTEVENT-1002
INFO
パラメーター [パラメーター名] が [時間] に
[value] から [value ] に更新されました。
設定
REDSHIFTEVENT-1003
INFO
クラスターパラメーターグループ [グループ
名] が作成されました。
設定
REDSHIFTEVENT-1004
INFO
クラスターパラメーターグループ [グループ
名] が削除されました。
API Version 2012-12-01
229
Amazon Redshift 管理ガイド
Amazon Redshift イベントのカ
テゴリおよびイベントメッセージ
Amazon
Redshift カテ
ゴリ
イベント ID
イベントの重
大度
説明
設定
REDSHIFTEVENT-1005
INFO
クラスターパラメーターグループ [名前] が
[時間] に更新されました。変更は、再起動
時に関連するクラスターに適用されます。
次の表は、セキュリティグループがソースタイプである場合のイベントカテゴリとイベントのリスト
を示します。
セキュリティグループソースタイプのカテゴリとイベント
Amazon
Redshift カテ
ゴリ
イベント ID
イベントの重
大度
説明
セキュリティ
REDSHIFTEVENT-4002
INFO
クラスターセキュリティグループ [グループ
名] が作成されました。
セキュリティ
REDSHIFTEVENT-4003
INFO
クラスターセキュリティグループ [グループ
名] が削除されました。
セキュリティ
REDSHIFTEVENT-4004
INFO
クラスターセキュリティグループ [グループ
名] が [時間] に変更されました。変更は、
関連するすべてのクラスターに自動的に適
用されます。
次の表は、スナップショットがソースタイプである場合のイベントカテゴリとイベントのリストを示
します。
スナップショットソースタイプのカテゴリとイベント
Amazon
Redshift カテ
ゴリ
イベント ID
イベントの重
大度
説明
管理
REDSHIFTEVENT-2009
INFO
Amazon Redshift クラスター [クラスター
名] のユーザースナップショット [スナップ
ショット名] が [時間] に開始されました。
スナップショットの進行状況をモニタリン
グするには、AWS マネジメントコンソール
にアクセスしてください。
管理
REDSHIFTEVENT-2010
INFO
Amazon Redshift クラスター [クラスター
名] のユーザースナップショット [スナップ
ショット名] が [時間] にキャンセルされま
した。
管理
REDSHIFTEVENT-2011
INFO
Amazon Redshift クラスター [クラスター
名] のユーザースナップショット [スナップ
ショット名] が [時間] に削除されました。
管理
REDSHIFTEVENT-2012
INFO
Amazon Redshift クラスター [クラスター
名] の最終スナップショット [スナップ
ショット名] が [時間] に開始されました。
API Version 2012-12-01
230
Amazon Redshift 管理ガイド
Amazon Redshift コンソールを
使用してイベント通知を管理する
Amazon
Redshift カテ
ゴリ
イベント ID
イベントの重
大度
説明
モニタリング
REDSHIFTEVENT-3004
INFO
Amazon Redshift クラスター [クラスター
名] のユーザースナップショット [スナップ
ショット名] が [時間] に正常に完了しまし
た。
モニタリング
REDSHIFTEVENT-3005
INFO
Amazon Redshift クラスター [名前] の最終
スナップショット [名前] が [時間] に正常に
完了しました。
モニタリング
REDSHIFTEVENT-3006
INFO
Amazon Redshift クラスター [クラスター
名] の最終スナップショット [スナップ
ショット名] が [時間] にキャンセルされま
した。
モニタリング
REDSHIFTEVENT-3502
ERROR
Amazon Redshift クラスター [クラスター
名] の最終スナップショット [スナップ
ショット名] が [時間] に失敗しました。
チームは問題を調査しています。AWS マネ
ジメントコンソール にアクセスして操作を
再試行してください。
モニタリング
REDSHIFTEVENT-3503
ERROR
Amazon Redshift クラスター [クラスター
名] のユーザースナップショット [スナッ
プショット名] が [時間] に失敗しました。
チームは問題を調査しています。AWS マネ
ジメントコンソール にアクセスして操作を
再試行してください。
Amazon Redshift コンソールを使用してイベント通
知を管理する
トピック
• イベント通知サブスクリプションを作成する (p. 232)
• Amazon Redshift イベント通知サブスクリプションをリストする (p. 234)
• Amazon Redshift イベント通知サブスクリプションを変更する (p. 234)
• Amazon Redshift イベント通知サブスクリプションにソース識別子を追加する (p. 235)
• Amazon Redshift イベント通知サブスクリプションからソース識別子を削除する (p. 235)
• Amazon Redshift イベント通知サブスクリプションを削除する (p. 236)
Amazon Simple Notification Service (Amazon SNS) イベント通知サブスクリプションを作成すると、
特定の Amazon Redshift クラスター、スナップショット、セキュリティグループ、またはパラメー
ターグループにイベントが発生したときに通知を送信できます。これらの通知は SNS トピックに送
信され、トピックにサブスクライブした SNS ユーザーに順番にメッセージが送信されます。ユーザー
に送信される SNS メッセージは、AWS リージョンの Amazon SNS によりサポートされるどの形式
の可能性もあります (メール、テキストメッセージ、HTTP エンドポイントへの呼び出し)。たとえ
ば、すべてのリージョンでメール通知がサポートされますが、SMS 通知は 米国東部 (バージニア北
部) リージョン でのみ作成できます。詳細については、「Amazon Redshift イベント通知 (p. 223)」
を参照してください。
API Version 2012-12-01
231
Amazon Redshift 管理ガイド
Amazon Redshift コンソールを
使用してイベント通知を管理する
このセクションでは、AWS マネジメントコンソール から Amazon Redshift イベント通知サブスクリ
プションを管理する方法について説明します。
イベント通知サブスクリプションを作成する
Amazon Redshift イベント通知サブスクリプションを作成するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
Amazon Redshift コンソールのナビゲーションペインで、[Events] をクリックし、[Subscriptions]
をクリックします。
3.
[Subscriptions] ペインで、[Create Event Subscription] をクリックします。
4.
[Create Event Subscription] ダイアログボックスで、次の操作を行います。
a.
[Subscription Settings] ペインを使用して、イベントフィルタ条件を指定します。条件を選択
すると、[Subscribed Events] リストに条件と一致する Amazon Redshift イベントが表示され
ます。次の作業を行います。
i.
[Categories] ボックスから 1 つ以上のカテゴリを選択します。すべてのカテゴリを指定
するには、[Category] ボタンをクリックします。カテゴリのサブセットを選択するに
は、含めるカテゴリのボタンをクリックします。
ii.
[Severity] ドロップダウンメニューからイベント重大度を選択します。[Any] を選択した
場合、重大度が INFO または ERROR のイベントが発行されます。[Error] を選択した場
合、重大度が ERROR のイベントだけが発行されます。
iii.
[Source Type] ドロップダウンメニューからソースタイプを選択します。そのタイプのリ
ソースによって生じたイベントだけが (クラスターやクラスターパラメーターグループな
ど) が、イベントサブスクリプションにより発行されます。
iv.
[Resources] ドロップダウンメニューでは、[Source Type] が指定されているすべてのリ
ソースからイベントを発行するか、サブセットのみから発行するかを指定します。指定
されたタイプのすべてのリソースからイベントを発行するには、[Any] を選択します。特
定のリソースを選択する場合は、[Choose Specific] を選択します。
Note
[Resource] ボックスの名前が、[Source Type] で指定された値に合わせて変更
されます。たとえば、[Source Type] で [Cluster] を選択した場合、[Resources]
ボックスの名前が [Clusters] に変わります。
[Choose Specific] を選択した場合、イベントサブスクリプションによってイベントが発
行される特定リソースの ID を指定できます。リソースを 1 つずつ指定し、イベントサ
ブスクリプションに追加します。イベントサブスクリプションと同じリージョンにある
リソースのみ指定できます。指定したイベントは、[Specify IDs:] ボックスの下に表示さ
れます。
b.
A.
既存のリソースを指定するには、[Specify IDs:] ボックスでリソースを見つけ、[Add]
列で [+] ボタンをクリックします。
B.
作成前にリソースの ID を指定するには、[Specify IDs:] ボックスの下にあるボック
スに ID を入力し、[Add] ボタンをクリックします。後で作成する場合は、この作業
を行ってリソースを追加できます。
C.
イベントサブスクリプションから選択されたリソースを削除するには、リソースの
右側にある [X] ボックスをクリックします。
ペインの下部で、[Name] テキストボックスにイベント通知サブスクリプションの名前を入力
します。
API Version 2012-12-01
232
Amazon Redshift 管理ガイド
Amazon Redshift コンソールを
使用してイベント通知を管理する
c.
サブスクリプションを有効にするには、[Yes] を選択します。サブスクリプションを作成す
るが、通知はまだ送信しない場合は、[No] を選択します。サブスクリプションが作成される
と、この設定に関係なく確認メッセージが送信されます。
d.
[Next] を選択して Amazon SNS トピックの指定を続行します。
e.
サブスクリプションがイベントの発行を使用する Amazon SNS トピックを指定するには、3
つのタブのいずれかを使用します。
i.
リストから既存の Amazon SNS トピックを選択するには、[Use Existing Topic] タブを
選択し、リストからトピックを選択します。
ii.
既存の Amazon SNS トピックを Amazon Resource Name (ARN) により指定するには、
[Provide Topic ARN] タブを選択し、[ARN:] ボックスで ARN を指定します。Amazon
SNS コンソールを使用して、Amazon SNS トピックの ARN を見つけることができま
す。
iii.
A.
通知のステータスを確認するか、通知の確認メールを再送信するには
B.
[Navigation] ペインで、[Topics] を展開します。
C.
Amazon Redshift イベント サブスクリプションに含めるトピックをクリックしま
す。
D.
[Topic Details] ペインで、[Topic ARN:] フィールドの値をコピーします。
サブスクリプション作成操作により新しい Amazon SNS トピックも作成されるようにす
るには、[Create New Topic] タブを選択し、以下を実行します。
A.
[Name] テキストボックスにトピックの名前を入力します。
B.
通知受信者ごとに、[Send] リストボックスで通知方法を選択して、[to] ボックスで
有効なアドレスを指定し、[Add Recipient] をクリックします。[SMS] エントリは、
米国東部 (バージニア北部) リージョン でのみ作成できます。
C.
受信者を削除するには、[Remove] 列の赤色の X をクリックします。
API Version 2012-12-01
233
Amazon Redshift 管理ガイド
Amazon Redshift コンソールを
使用してイベント通知を管理する
5.
サブスクリプションを作成するには、[Create] をクリックします。サブスクリプションを作成し
ないで定義を削除するには、[Cancel] をクリックします。サブスクリプションの設定に戻るに
は、[前へ] をクリックします。
Amazon Redshift イベント通知サブスクリプションをリストす
る
現在の Amazon Redshift イベント通知サブスクリプションをリストできます。
現在の Amazon Redshift イベント通知サブスクリプションをリストするには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
Amazon Redshift ナビゲーションペインで、[Events] をクリックします。[Subscriptions] タブに
は、イベント通知サブスクリプションがすべて表示されます。
Amazon Redshift イベント通知サブスクリプションを変更する
サブスクリプションを作成すると、サブスクリプション名、ソース識別子、カテゴリ、トピック ARN
を変更できます。
Amazon Redshift イベント通知サブスクリプションを変更するには
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
Amazon Redshift コンソールのナビゲーションペインで、[Events] をクリックし、[Subscriptions]
をクリックします。
3.
[Subscriptions] ペインで、変更するサブスクリプションを選択し、[Modify] をクリックします。
4.
[Modify Event Subscription] ダイアログボックスで、次の操作を行います。
a.
[Subscription Settings] ペインを使用して、イベントフィルタ条件を変更します。条件を選択
すると、[Subscribed Events] リストに条件と一致する Amazon Redshift イベントが表示され
ます。次の作業を行います。
i.
[Categories] ボックスから 1 つ以上のカテゴリを選択します。すべてのカテゴリを指定
するには、[Category] ボタンをクリックします。カテゴリのサブセットを選択するに
は、含めるカテゴリのボタンをクリックします。
API Version 2012-12-01
234
Amazon Redshift 管理ガイド
Amazon Redshift コンソールを
使用してイベント通知を管理する
5.
ii.
[Severity] ドロップダウンメニューからイベント重大度を選択します。
iii.
[Source Type] ドロップダウンメニューからソースタイプを選択します。
iv.
[Source Type] ドロップダウンメニューからリソースの ID を選択します。指定されたリ
ソースにより生じたイベントだけが、サブスクリプションにより発行されます。
b.
サブスクリプションを有効にするには、[Enabled] で [Yes] を選択します。サブスクリプショ
ンを無効にするには、[No] を選択します。
c.
[Next] を選択して Amazon SNS トピックの変更を続行します。
d.
サブスクリプションがイベントの発行を使用する Amazon SNS トピックを変更するには、3
つのタブのいずれかを使用します。
i.
リストから既存の Amazon SNS トピックを選択するには、[Use Existing Topic] タブを
選択し、リストからトピックを選択します。
ii.
既存の Amazon SNS トピックを Amazon Resource Name (ARN) により指定するには、
[Provide ARN] タブを選択し、[ARN:] ボックスで ARN を指定します。
iii.
サブスクリプション作成操作により新しい Amazon SNS トピックも変更されるようにす
るには、[Create New Topic] タブを選択し、以下を実行します。
A.
[Name] テキストボックスにトピックの名前を入力します。
B.
通知受信者ごとに、[Send] リストボックスで通知方法を選択して、[to] ボックスで
有効なアドレスを指定し、[Add Recipient] をクリックします。[SMS] エントリは、
米国東部 (バージニア北部) リージョン でのみ作成できます。
C.
受信者を削除するには、[Remove] 列の赤色の X をクリックします。
変更を保存するには、[Modify] をクリックします。サブスクリプションを変更しないで変更を
削除するには、[Cancel] をクリックします。サブスクリプションの設定に戻るには、[前へ] をク
リックします。
Amazon Redshift イベント通知サブスクリプションにソース識
別子を追加する
既存のサブスクリプションにソース識別子 (イベントを生成する Amazon Redshift ソース) を追加でき
ます。
Amazon Redshift イベント通知サブスクリプションにソース識別子を追加するには
1.
サブスクリプションを変更するときに選択または選択解除することで、Amazon Redshift コン
ソールを使用してソース識別子を簡単に追加または削除できます。詳細については、「Amazon
Redshift イベント通知サブスクリプションを変更する (p. 234)」を参照してください。
2.
変更を保存するには、[Modify] をクリックします。サブスクリプションを変更しないで変更を
削除するには、[Cancel] をクリックします。サブスクリプションの設定に戻るには、[前へ] をク
リックします。
Amazon Redshift イベント通知サブスクリプションからソース
識別子を削除する
そのソースのイベントの通知を今後は受け取らない場合、サブスクリプションからソース識別子 (イベ
ントを生成する Amazon Redshift ソース) を削除できます。
Amazon Redshift イベント通知サブスクリプションからソース識別子を削除するには
•
サブスクリプションを変更するときに選択または選択解除することで、Amazon Redshift コン
ソールを使用してソース識別子を簡単に追加または削除できます。詳細については、「Amazon
Redshift イベント通知サブスクリプションを変更する (p. 234)」を参照してください。
API Version 2012-12-01
235
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API を
使用してイベント通知を管理する
Amazon Redshift イベント通知サブスクリプションを削除する
不要になったサブスクリプションは削除できます。トピックへのすべてのサブスクライバは、サブス
クリプションにより指定されたイベント通知を受け取らなくなります。
Amazon Redshift イベント通知サブスクリプションを削除するには
1.
2.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
Amazon Redshift コンソールのナビゲーションペインで、[Events] をクリックし、[Subscriptions]
をクリックします。
3.
[Subscriptions] ペインで、削除するサブスクリプションをクリックします。
4.
[Delete] をクリックします。
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. 223)」
を参照してください。
API Version 2012-12-01
236
Amazon Redshift 管理ガイド
概要
データベース監査ログ作成
トピック
• 概要 (p. 237)
• Amazon Redshift ログ (p. 237)
• ログ作成の有効化 (p. 239)
• ログファイルの管理 (p. 240)
• Amazon Redshift 監査ログ作成のトラブルシューティング (p. 242)
• Amazon Redshift 用の AWS CloudTrail の使用 (p. 243)
• AWS CloudTrail ログでの Amazon Redshift アカウント ID (p. 243)
• コンソールを使用して監査を設定する (p. 244)
• Amazon Redshift CLI および API を使用してログ作成を設定する (p. 246)
概要
Amazon Redshift は、データベースの接続とユーザーアクティビティに関する情報を記録します。こ
れらのログは、セキュリティとトラブルシューティングの目的でデータベースを監視するのに役立ち
ます。このプロセスは、多くの場合データベース監査と呼ばれます。ログは、データベースのモニタ
リングアクティビティを担当するユーザーがデータセキュリティ機能を使用してアクセスしやすいよ
うに、Amazon Simple Storage Service (Amazon S3) バケットに格納されます。
Amazon Redshift ログ
Amazon Redshift は、次のログファイルに情報を記録します。
• 接続ログ — 認証の試みと、接続および切断を記録します。
• ユーザーログ — データベースのユーザー定義への変更に関する情報を記録します。
• ユーザーアクティビティログ — データベースで実行される前に各クエリを記録します。
接続ログとユーザーログは、主にセキュリティに役立ちます。接続ログを使用して、データベースに
接続するユーザーに関する情報と、IP アドレスやリクエストした日時、使用した認証の種類など、関
連する接続情報を監視できます。ユーザーログを使用して、データベースユーザーの定義への変更を
監視できます。
API Version 2012-12-01
237
Amazon Redshift 管理ガイド
接続ログ
ユーザーアクティビティログは、主にトラブルシューティングに役立ちます。ユーザーおよびシステ
ムによってデータベースで実行されるクエリの種類についての情報を追跡します。
接続ログとユーザーログは、データベースのシステムテーブルに保存されている情報と一致します。
システムテーブルを使用して同じ情報を取得できますが、ログファイルのほうがより簡単な方法で検
索および参照できます。ログファイルは、テーブルに対してクエリを実行するのに、データベースの
アクセス許可ではなく Amazon S3 のアクセス許可に依存しています。また、システムテーブルに対
してクエリを実行するのではなくログファイルの情報を参照するので、データベースとのやりとりに
よる影響が軽減されます。
接続ログ
認証の試みと、接続および切断を記録します。次の表に、接続ログの情報を示します。
列名
説明
event
接続または認証イベント。
recordtime
イベントが発生した時刻。
remotehost
リモートホストの名前または IP アドレス。
remoteport
リモートホストのポート番号。
pid
ステートメントに関連付けられるプロセス ID。
dbname
データベース名。
username
ユーザー名。
authmethod
認証方法。
duration
接続時間 (マイクロ秒)。
sslversion
Secure Sockets Layer (SSL) バージョン。
sslcipher
SSL 暗号。
mtu
最大送信単位 (MTU)。
sslcompression
SSL 圧縮タイプ。
sslexpansion
SSL 拡張タイプ。
ユーザーログ
データベースユーザーに対する次の変更の詳細を記録します。
•
•
•
•
ユーザーの作成
ユーザーの削除
ユーザーの変更 (名前の変更)
ユーザーの変更 (プロパティの変更)
列名
説明
userid
変更の影響を受けるユーザーの ID。
ユーザー名
変更の影響を受けるユーザーのユーザー名。
API Version 2012-12-01
238
Amazon Redshift 管理ガイド
ユーザーアクティビティログ
列名
説明
oldusername
名前の変更アクションの場合、以前のユーザー名。その他のアクションの場合、
このフィールドは空です。
action
実行されたアクション。有効な値:
• Alter
• 作成
• Drop
• Rename
usecreatedb
true (1) の場合、ユーザーに create database 権限があることを示します。
usesuper
true (1) の場合、ユーザーがスーパーユーザーであることを示します。
usecatupd
true (1) の場合、ユーザーはシステムカタログを更新できることを示します。
valuntil
パスワードが失効する日付。
pid
プロセス ID。
xid
トランザクション ID。
recordtime
UTC で表されたクエリの開始時間。
ユーザーアクティビティログ
データベースで実行される前に各クエリを記録します。
列名
説明
recordtime
イベントが発生した時刻。
db
データベース名。
ユーザー
ユーザー名。
pid
ステートメントに関連付けられるプロセス ID。
userid
ユーザー ID
xid
トランザクション ID。
query
プレフィックス LOG の後に、改行を含むクエリのテキストが続きます。
ログ作成の有効化
Amazon Redshift の監査ログ作成はデフォルトで有効ではありません。クラスターでログ作成を有効
にすると、Amazon Redshift はログを作成して Amazon S3 にアップロードし、クラスターの作成時か
ら現在までのデータをキャプチャします。ログ作成の更新は、すでに記録された情報の続きになりま
す。
Note
Amazon S3 への監査ログ作成は、任意で、手動のプロセスです。クラスターでログ作成を有
効にすると、Amazon S3 へのログ作成のみ有効になります。システムテーブルへのログ作成
API Version 2012-12-01
239
Amazon Redshift 管理ガイド
ログファイルの管理
は任意ではなく、クラスターに対して自動的に作成されます。システムテーブルへのログ作
成に関する詳細については、Amazon Redshift Database Developer Guide の「システムテー
ブルのリファレンス」を参照してください。
接続ログ、ユーザーログ、およびユーザーアクティビティログは、AWS マネジメント
コンソール、Amazon Redshift API リファレンス、または AWS Command Line Interface
(AWS CLI) を使用すると同時に有効になります。ユーザーアクティビティログについて
は、enable_user_activity_logging データベースパラメーターも有効にする必要があります。
監査ログ作成機能のみを有効にし、関連するパラメーターを有効にしない場合、データベース監
査ログは接続ログとユーザーログの情報のみ記録し、ユーザーアクティビティログの情報は記録し
ません。 デフォルトでは enable_user_activity_logging パラメーターは無効 (false) です
が、true に設定するとユーザーアクティビティログを有効にすることができます。 詳細について
は、「Amazon Redshift パラメーターグループ (p. 50)」を参照してください。
ログファイルの管理
Amazon S3 の Amazon Redshift のログファイルの数とサイズは、クラスターのアクティビティに
よって大きく異なります。大量のログを生成しているアクティブなクラスターがある場合、Amazon
Redshift はより頻繁にログファイルを生成することがあります。同じ時間に複数の接続ログがあるな
ど、同じタイプのアクティビティに対して一連のログファイルが存在する場合があります。
Amazon Redshift は、Amazon S3 を使用してログを格納するため、Amazon S3 で使用するストレー
ジの料金が発生します。ログ作成を設定する前に、ログファイルを保管する期間を計画し、監査の必
要に応じていつ削除またはアーカイブするかを決定します。作成する予定は、コンプライアンス要件
または規制要件に従ったデータなど、保管するデータの種類によって大きく異なります。Amazon S3
の料金の詳細については、Amazon Simple Storage Service (S3) 料金表をご覧ください。
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
米国東部 (バージニア北部) リージョン
193672423079
米国東部(オハイオ)リージョン
391106570357
米国西部 (北カリフォルニア) リージョン
262260360010
API Version 2012-12-01
240
Amazon Redshift 管理ガイド
Amazon Redshift 監査ログ作成
のためのバケットのアクセス許可
リージョン
アカウント ID
米国西部 (オレゴン) リージョン
902366379725
アジアパシフィック (ムンバイ) リージョン
865932855811
アジアパシフィック (ソウル) リージョン
760740231472
アジアパシフィック (シンガポール) リージョン
361669875840
アジアパシフィック (シドニー) リージョン
762762565011
アジアパシフィック (東京) リージョン
404641285394
欧州 (フランクフルト) リージョン
053454850223
欧州 (アイルランド) リージョン
210876761215
南米 (サンパウロ) リージョン
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"
API Version 2012-12-01
241
Amazon Redshift 管理ガイド
Amazon Redshift 監査ログ作成のバケットの構造
},
"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"
}
]
}
Amazon S3 バケットの作成およびバケットポリシーの追加に関する詳細については、Amazon Simple
Storage Service コンソールユーザーガイド の「バケットの作成」および「バケットのアクセス許可
の編集」を参照してください。
Amazon Redshift 監査ログ作成のバケットの構造
デフォルトでは、Amazon Redshift は次のバケットとオブジェクト
構造を使用して Amazon S3 バケットのログファイルを整理します:
AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName
例: AWSLogs/123456789012/redshift/useast-1/2013/10/29/123456789012_redshift_useast-1_mycluster_userlog_2013-10-29T18:01.gz
Amazon S3 のキープレフィックスを指定すると、キーの冒頭にプレフィックスが挿入されます。
たとえば、myprefix というプレフィックスを指定すると、次のようになります: myprefix/
AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_useast-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. 240)」を参照してください。
API Version 2012-12-01
242
Amazon Redshift 管理ガイド
Amazon Redshift 用の AWS CloudTrail の使用
• バケット所有者が変更されました。Amazon Redshift がログをアップロードするとき、バケット
所有者がログが有効になった時と同じであることを確認します。バケット所有者を変更した場
合、Amazon Redshift は、監査ログ作成に使用する別のバケットを設定するまでログをアップロー
ドできません。詳細については、「監査ログ作成のバケットを変更する (p. 245)」を参照してくだ
さい。
• バケットが見つかりません。バケットが Amazon S3 で削除された場合、Amazon Redshift はログを
アップロードできません。バケットを再作成するか、別のバケットにログをアップロードするよう
に Amazon Redshift を設定する必要があります。詳細については、「監査ログ作成のバケットを変
更する (p. 245)」を参照してください。
Amazon Redshift 用の AWS CloudTrail の使用
このサービスは AWS CloudTrail をサポートします。これは、AWS アカウントの AWS 呼び出しを記
録し、ログファイルを Amazon S3 バケットに配信するサービスです。CloudTrail が収集した情報を使
用して、成功した AWS サービスリクエスト、そのリクエストの送信者、そのリクエストの送信時間
などを確認できます。CloudTrail の詳細(有効にする方法、ログファイルを検索する方法を含む)に
ついては、AWS CloudTrail User Guide を参照してください。
CloudTrail は、Amazon Redshift データベース監査ログ作成から独立して、または加えて使用できま
す。
AWS CloudTrail ログでの Amazon Redshift アカ
ウント ID
Amazon Redshift がユーザーに代わって AWS サービスを呼び出す場合、呼び出しは、自分のア
カウント ID ではなく Amazon Redshift サービスに属するアカウント ID で記録されます。たとえ
ば、Amazon Redshift が CreateGrant、Decrypt、Encrypt、RetireGrant などの AWS Key Management
Service (AWS KMS) アクションを呼び出してクラスターの暗号化を管理する場合、呼び出しは
Amazon Redshift アカウント ID を使用して AWS CloudTrail によって記録されます。
Amazon Redshift は他の AWS サービスを呼び出すときに、以下の表のアカウント ID を使用します。
リージョン
アカウント ID
米国東部 (バージニア北部) リージョン
368064434614
米国東部(オハイオ)リージョン
790247189693
米国西部 (北カリフォルニア) リージョン
703715109447
米国西部 (オレゴン) リージョン
473191095985
アジアパシフィック (ムンバイ) リージョン
408097707231
アジアパシフィック (ソウル) リージョン
713597048934
アジアパシフィック (シンガポール) リージョン
960118270566
アジアパシフィック (シドニー) リージョン
485979073181
アジアパシフィック (東京) リージョン
615915377779
欧州 (フランクフルト) リージョン
434091160558
欧州 (アイルランド) リージョン
246478207311
API Version 2012-12-01
243
Amazon Redshift 管理ガイド
コンソールを使用して監査を設定する
リージョン
アカウント ID
南米 (サンパウロ) リージョン
392442076723
コンソールを使用して監査を設定する
監査ログファイルを作成し、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] をク
リックします。
6.
[S3 Bucket] で、次のいずれかを実行します。
• 使用する S3 バケットが既にある場合、[Use Existing] を選択し、[Bucket] リストからバケット
を選択します。
• 新しい S3 バケットが必要な場合は、[Create New] を選択し、[New Bucket Name] ボックスに
名前を入力します。
7.
任意で、[S3 Key Prefix] ボックスに S3 バケットに追加するプレフィックスを入力します。
8.
[Save] をクリックします。
API Version 2012-12-01
244
Amazon Redshift 管理ガイド
監査ログ作成のバケットを変更する
監査ログ作成を設定すると、[Cluster] 詳細ページが更新され、ログ作成の設定に関する情報が表示さ
れます。
[Cluster] 詳細ページの、[Backup, Maintenance, and Logging] の下の [Go to the S3 console] をクリッ
クして、バケットに移動します。
監査ログ作成のバケットを変更する
1.
AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2.
ナビゲーションペインで [Clusters] をクリックします。
3.
リストで、監査ログ作成に使用されており、変更するバケットのクラスターをクリックします。
4.
クラスターの詳細ページで、[Database] をクリックし、[Configure Audit Logging] をクリックし
ます。
5.
[S3 Bucket] で、既存のバケットを選択するか、新しいバケットを作成します。
6.
任意で、[S3 Key Prefix] ボックスに 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] をク
リックします。
API Version 2012-12-01
245
Amazon Redshift 管理ガイド
Amazon Redshift CLI および API
を使用してログ作成を設定する
6.
[Save] をクリックします。
Amazon Redshift CLI および API を使用してログ
作成を設定する
以下の Amazon Redshift CLI 操作を使用して監査ログ作成を設定できます。
• describe-logging-status
• disable-logging
• enable-logging
以下の Amazon Redshift API アクションを使用して、監査ログ作成を設定できます。
• DescribeLoggingStatus
• DisableLogging
• EnableLogging
API Version 2012-12-01
246
Amazon Redshift 管理ガイド
概要
チュートリアル: Amazon Redshift
クラスターのサイズ変更
トピック
• 概要 (p. 247)
• サイズ変更オペレーションの概要 (p. 247)
• スナップショット、復元、およびサイズ変更オペレーションの概要 (p. 248)
• チュートリアル: サイズ変更オペレーションを使用したクラスターのサイズ変更 (p. 249)
• チュートリアル: スナップショット、復元、サイズ変更オペレーションを使用したクラスターのサ
イズ変更 (p. 251)
概要
データウェアハウスの容量やパフォーマンスのニーズを変更または拡大する場合、Amazon Redshift
の提供するコンピューティングおよびストレージオプションを最大限に利用するためにクラスターの
サイズを変更することができます。ノードの数を変更することで、クラスターをスケールインまたは
スケールアウトできます。また、別のノードタイプを指定してクラスターを拡大または縮小すること
もできます。次のいずれかの方法で、クラスターのサイズを変更できます。
• 既存のクラスターにサイズ変更オペレーションを使用します。
• スナップショットおよび復元オペレーションを使用して、既存のクラスターのコピーを作成しま
す。次に、新しいクラスターのサイズを変更します。
サイズを変更する方法でも、スナップショットと復元を使用する方法でも、新しいクラスターには
ユーザーのテーブルとデータをコピーします。システムテーブルおよびデータは使用されません。
ソースクラスターで監査ログを有効にしていた場合、ソースクラスターを削除した後でも Amazon
Simple Storage Service (Amazon S3) のログに引き続きアクセスできます。これらのログは、指定し
たデータポリシーに応じて保持または削除することができます。
サイズ変更オペレーションの概要
サイズ変更オペレーションは、クラスターサイズの変更方法として推奨される最もシンプルな方法で
す。サイズ変更オペレーションでは、データはコンピューティングノードまたはソースクラスター
のノードから、コンピューティングノードまたはターゲットクラスターのノードに並列コピーされ
API Version 2012-12-01
247
Amazon Redshift 管理ガイド
スナップショット、復元、および
サイズ変更オペレーションの概要
ます。これに要する時間は、小さい方のクラスターにあるデータの量とノードの数によって異なりま
す。数時間で終わることもあれば、2~3 日かかる可能性もあります。
サイズ変更オペレーションを開始すると、Amazon Redshift はサイズ変更が完了するまで、既存のク
ラスターを読み取り専用モードにします。この間、実行できるのはデータベースから読み込むクエリ
のみで、データベースへの書き込みおよび読み取り/書き込みクエリは実行できません。詳細について
は、Amazon Redshift Database Developer Guide の「Write and read-write operations」を参照してく
ださい。
Note
本番稼働環境への影響を最小限に抑えてサイズ変更する必要がある場合、次のセクション
「スナップショット、復元、およびサイズ変更オペレーションの概要 (p. 248)」の説明に
従って、クラスターのコピーを作成し、コピーのサイズを変更してサイズ変更を完了してか
ら、接続のエンドポイントをサイズ変更したクラスターに切り替えます。
Amazon Redshift はソースクラスターを読み込み専用モードにした後で、ノードタイプ、クラスター
タイプ、ノード数に指定された情報を使用して、新しいクラスター、すなわちターゲットクラスター
をプロビジョニングします。次に、Amazon Redshift はソースクラスターからターゲットクラスター
にデータをコピーします。これが完了すると、すべての接続がターゲットクラスターを使用するよう
に切り替わります。この切り替え時点で処理中のクエリがある場合、接続が失われるため、ターゲッ
トクラスターでクエリを再起動する必要があります。サイズ変更の進捗は、Amazon Redshift console
のクラスターの [Status] タブで確認することができます。
Amazon Redshift はサイズ変更オペレーション中にテーブルをソートしないため、既存のソート順序
が維持されます。クラスターのサイズを変更すると、Amazon Redshift は分散スタイルに基づいて
データベーステーブルを新しいノードに分散し、ANALYZE コマンドを実行して統計を更新します。
削除対象としてマークされた行は転送されないため、テーブルの再ソートが必要な場合のみ VACUUM
コマンドを実行する必要があります。詳細については、Amazon Redshift Database Developer Guide
の「テーブルのバキューム処理」を参照してください。
サイズ変更オペレーションを使用した Amazon Redshift クラスターのサイズ変更手順の説明は、
「チュートリアル: サイズ変更オペレーションを使用したクラスターのサイズ変更 (p. 249)」を参照
してください。
スナップショット、復元、およびサイズ変更オペ
レーションの概要
前のセクションで説明したとおり、サイズ変更オペレーションを使用したクラスターのサイズ変更に
かかる時間は、クラスターのデータ量に大きく左右されます。サイズ変更中はデータベースの書き込
みまたは読み取り/書き込み操作を実行できないため、サイズ変更オペレーションを使用するか、ク
ラスターが読み取り専用モードになる時間を短縮する別の方法を使用するかを判断する必要がありま
す。
Amazon Redshift クラスターにほぼ恒常的な書き込みアクセスが必要な場合、スナップショットと復
元操作を使用できます。これについては、次のセクションで説明します。この方法では、スナップ
ショットが作成された後でソースクラスターに書き込まれたデータは、ターゲットクラスターに切り
替えた後、手動でコピーする必要があります。コピーにかかる時間によっては、両方のクラスター内
のデータが同じになり、ターゲットクラスターに切り替えられるようになるまでに、これを数回繰り
返さなければならない場合もあります。このプロセスは、ターゲットクラスターのすべてのデータが
使用可能になるまでに、既存のクエリに悪影響を及ぼす可能性がありますが、データベースへの書き
込みができない時間は最短になります。
スナップショットと復元によるサイズ変更方法には、次のプロセスを使用します。
1. 既存のクラスターのスナップショットを作成します。既存のクラスターがソースクラスターです。
API Version 2012-12-01
248
Amazon Redshift 管理ガイド
チュートリアル: サイズ変更オペレーショ
ンを使用したクラスターのサイズ変更
2. スナップショットを作成した時刻を記録して、スナップショット後のデータをターゲットデータ
ベースにロードするための抽出、処理、ロード (ETL) プロセスを再実行する必要がある時点を識別
できるようにします。
3. 新しいクラスターにスナップショットを復元します。この新しいクラスターがターゲットクラス
ターです。サンプルデータがターゲットクラスターにあることを確認します。
4. ターゲットクラスターのサイズを変更します。ターゲットクラスターに関して、新しいノードタイ
プ、ノード数、その他の設定を選択します。
5. ソースクラスターのスナップショット作成後に発生した ETL プロセスでロードされたデータを確認
します。ターゲットクラスターには、同じデータを同じ順序で再ロードする必要があります。進行
中のデータロードがある場合、ソースクラスターとターゲットクラスターのデータが同じになるま
で、このプロセスを数回繰り返す必要があります。
6. ソースクラスターで実行中のすべてのクエリを停止します。これを行うには、クラスター
を再起動するか、スーパーユーザーとしてログインし、PG_CANCEL_BACKEND および
PG_TERMINATE_BACKEND コマンドを使用できます。クラスターを再起動すると、クラスターが
使用できないことを最も簡単に確認できます。
7. ソースクラスター名を変更します。たとえば、examplecluster から examplecluster-source
に変更します。
8. 変更前のソースクラスター名を使用して、ターゲットクラスターの名前を変更します。たとえば、
ターゲットクラスターの名前を examplecluster に変更します。これ以降、examplecluster を
含むエンドポイントを使用するアプリケーションは、すべてターゲットクラスターに接続します。
9. ターゲットクラスターに切り替えた後、ソースクラスターを削除し、すべてのプロセスが期待どお
りに動作することを確認します。
また、ターゲットクラスター用の依存システムとレポートをすぐに最新状態にする必要がない場合
は、ターゲットクラスターにデータを再ロードする前にソースクラスターとターゲットクラスターの
名前を変更することができます。この場合、前述のステップ 6 はプロセスの最後に移動されます。
名前変更プロセスは、アプリケーションが引き続き同じエンドポイントを使用してクラスターに接続
する必要がある場合にのみ必要になります。これが必要ない場合は、クラスターの名前を変更する代
わりに、そのクラスターに接続するアプリケーションを、ターゲットクラスターのエンドポイントを
使用するように更新することもできます。
クラスター名を再利用するのには、いくつかの利点があります。最初に、エンドポイントが変わらな
いため、基盤となるクラスターを変更しても、アプリケーションの接続文字列を更新する必要があり
ません。次に、Amazon CloudWatch アラームや Amazon Simple Notification Service (Amazon SNS)
通知のような関連アイテムはクラスター名に関連付けられているため、そのクラスターにセットアッ
プした同じアラームと通知を継続して使用することができます。この継続的な使用は、アラームや通
知などの関連項目を再設定することなく、柔軟にクラスターのサイズを変更できる必要がある本番環
境では特に重要です。
スナップショット、復元、サイズ変更を使用した Amazon Redshift クラスターのサイズ変更プロセス
の手順については、「チュートリアル: スナップショット、復元、サイズ変更オペレーションを使用し
たクラスターのサイズ変更 (p. 251)」を参照してください。
チュートリアル: サイズ変更オペレーションを使
用したクラスターのサイズ変更
このセクションでは、Amazon Redshift でサイズ変更オペレーションを使用してクラスターのサイズ
を変更するプロセスを順を追って説明します。この例では、単一ノードクラスターからマルチノード
クラスターにサイズ変更することでクラスターをスケールアウトします。
このチュートリアルを完了するには、次の手順を実行します。
• 前提条件 (p. 250)
API Version 2012-12-01
249
Amazon Redshift 管理ガイド
前提条件
• ステップ 1: クラスターのサイズを変更する (p. 250)
• ステップ 2: サンプルクラスターを削除する (p. 251)
前提条件
このチュートリアルを開始する前に、以下の前提条件を満たしていることを確認します。
• サンプルクラスター。この例では、最初に Amazon Redshift 入門ガイド の演習で作成したサン
プルクラスターを使用します。このチュートリアルで使用するサンプルクラスターがない場合
は、Getting Started の演習を完了させてサンプルを作成してから、このチュートリアルに戻ってく
ださい。
ステップ 1: クラスターのサイズを変更する
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。Amazon
Redshift 入門ガイド の演習で作成したクラスターを使用する場合は、examplecluster をクリックし
ます。
3. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Resize] をクリックしま
す。
4. [Resize Cluster] ウィンドウで、次の値を選択します。
• [Node Type]: dc1.large
• [Cluster Type]: Multi Node
• [Number of Nodes]: 2
5. [Resize] をクリックします。
6. [Status] をクリックし、サイズ変更のステータス情報を確認すると、サイズ変更の進行状況がわか
ります。
API Version 2012-12-01
250
Amazon Redshift 管理ガイド
ステップ 2: サンプルクラスターを削除する
ステップ 2: サンプルクラスターを削除する
この後サンプルクラスターは必要ないと確信できた場合は、削除できます。本番環境では、データポ
リシーに従って、最終スナップショットを保持するかどうかを判断します。このチュートリアルで
は、サンプルデータを使用しているため、最終スナップショットを作成せずにクラスターを削除しま
す。
Important
クラスターは、削除されるまで課金されます。
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。この
チュートリアルと同じクラスター名を使用している場合は、examplecluster をクリックします。
3. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Delete] をクリックしま
す。
4. [Delete Cluster] ウィンドウで、[Create final snapshot] に [No] を指定して、[Delete] をクリックし
ます。
チュートリアル: スナップショット、復元、サイ
ズ変更オペレーションを使用したクラスターのサ
イズ変更
このセクションでは、Amazon Redshift クラスターのサイズ変更プロセスの一環として、スナップ
ショットおよび復元操作を使用するプロセスについて順を追って説明します。このプロセスは、クラ
スターのサイズ変更を行っている間も、データベースの書き込みおよび読み取り/書き込み操作を停止
できない、または停止したくない環境には特に有効な、高度なプロセスです。クラスターのサイズ変
更にかかる時間が不明な場合は、この手順を使用してスナップショットを作成し、それを新しいクラ
スターに復元してから、サイズを変更して見積りを取得します。このセクションでは、そのプロセス
をさらに進めて、ターゲットクラスターのサイズ変更完了後にソースクラスターからターゲットクラ
スターに切り替えます。
Important
クラスターは、削除されるまで課金されます。
このチュートリアルを完了するには、次の手順を実行します。
• 前提条件 (p. 252)
• ステップ 1: スナップショットを作成する (p. 252)
API Version 2012-12-01
251
Amazon Redshift 管理ガイド
前提条件
• ステップ 2: ターゲットクラスターにスナップショットを復元する (p. 253)
• ステップ 3: ターゲットクラスターのデータを確認する (p. 255)
• ステップ 4: ターゲットクラスターのサイズを変更する (p. 256)
• ステップ 5: スナップショット後のデータをソースからターゲットクラスターにコピーす
る (p. 256)
• ステップ 6: ソースとターゲットクラスターの名前を変更する (p. 258)
• ステップ 7: ソースクラスターを削除する (p. 259)
• ステップ 8: 環境をクリーンアップする (p. 259)
前提条件
このチュートリアルを開始する前に、以下の前提条件を満たしていることを確認します。
• サンプルクラスター。この例では、最初に Amazon Redshift 入門ガイド の演習で作成したサン
プルクラスターを使用します。このチュートリアルで使用するサンプルクラスターがない場合
は、Getting Started の演習を完了させてサンプルを作成してから、このチュートリアルに戻ってく
ださい。
• クラスターに接続する SQL クライアントツールまたはアプリケーション。このチュートリアルで
は SQL Workbench/J を使用します。これは、Amazon Redshift 入門ガイド の演習を実行していれ
ば、インストールされています。SQL Workbench/J または別の SQL クライアントツールがない場
合は、「SQL Workbench/J を使用するクラスターに接続する (p. 184)」を参照してください。
• サンプルデータ。このチュートリアルでは、クラスターのスナップショットを作成してから、ソー
スクラスターと、スナップショットの復元先の新しいクラスター間にデータの違いが生じるよう
に、データベースにいくつかの書き込みクエリを実行します。このチュートリアルを開始する前
に、Amazon Redshift 入門ガイド の演習の説明に従って、Amazon S3 のサンプルデータをクラス
ターにロードします。
ステップ 1: スナップショットを作成する
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。Amazon
Redshift 入門ガイド の演習で作成したクラスターを使用する場合は、examplecluster をクリックし
ます。
3. クラスターの詳細ページの [Configuration] タブで、パックアップリストの [Take Snapshot] をク
リックします。
4. [Create Snapshot] ウィンドウで、[Snapshot Identifier] ボックスに「examplecluster-source」と入
力して、[Create] をクリックします。
API Version 2012-12-01
252
Amazon Redshift 管理ガイド
ステップ 2: ターゲットクラスター
にスナップショットを復元する
5. ナビゲーションペインで、[Snapshots] をクリックして、新しい手動スナップショットが作成され
ていることを確認します。スナップショットのステータスは creating になります。
ステップ 2: ターゲットクラスターにスナップ
ショットを復元する
1. ナビゲーションペインで、[Snapshots] をクリックして、examplecluster-source スナップショット
を選択します。
2. [Restore From Snapshot] をクリックします。
3. [Choose Platform] ウィンドウで、クラスターを復元するプラットフォームを選択します。使用し
ているアカウントとリージョンで引き続き EC2-Classic プラットフォームをサポートする場合は、
[EC2-Classic] を選択します。それ以外の場合、[EC2-VPC] を選択します。次に、[Continue] をク
リックします。
Note
EC2-VPC を選択した場合は、クラスターサブネットグループが必要です。詳細について
は、「クラスターサブネットグループの作成 (p. 40)」を参照してください。
API Version 2012-12-01
253
Amazon Redshift 管理ガイド
ステップ 2: ターゲットクラスター
にスナップショットを復元する
4. [Restore Cluster From Snapshot] ウィンドウで、以下の操作を行います。
• Snapshot Identifier: スナップショットの名前、[examplecluster-source] をオンにします。
• Cluster Identifier: 「examplecluster-target」と入力します。
• Port: 表示されたポート番号をそのまま使用します。
• Allow Version Upgrade: このオプションは [Yes] のままにします。
• Availability Zone: アベイラビリティゾーンを選択します。
• Cluster Parameter Group: 使用するパラメーターグループを選択します。
• Cluster Security Group: 使用するセキュリティグループを選択します。
5. ナビゲーションペインで [Clusters] をクリックします。新しいクラスター、examplecluster-target
は、ソースクラスターのスナップショットから作成されます。
最初に、ターゲットクラスターが作成されます。[Cluster Status] の値は、この時点で creating,
restoring になります。
ターゲットクラスターが作成されると、[Cluster Status] の値が available, restoring に変わります。
6. examplecluster-target をクリックして開きます。[Cluster Status] の値が available という表示に変
わり、[Restore Status] に completed と表示されることを確認します。
API Version 2012-12-01
254
Amazon Redshift 管理ガイド
ステップ 3: ターゲットクラスターのデータを確認する
ステップ 3: ターゲットクラスターのデータを確認
する
復元操作が完了したら、ターゲットクラスターのデータが、ソースのスナップショットに存在してい
ると予想していたデータと一致していることを確認できます。SQL クライアントツールを使用して
ターゲットクラスターに接続し、クエリを実行して新しいクラスターのデータを検証することができ
ます。たとえば、Amazon Redshift 入門ガイド の演習で実行したのと同じクエリを実行できます。
-- Get definition for the sales table.
SELECT *
FROM pg_table_def
WHERE tablename = 'sales';
-- Find total sales on a given calendar date.
SELECT sum(qtysold)
FROM
sales, date
WHERE sales.dateid = date.dateid
AND
caldate = '2008-01-05';
-- Find top 10 buyers by quantity.
SELECT firstname, lastname, total_quantity
FROM
(SELECT buyerid, sum(qtysold) total_quantity
FROM sales
GROUP BY buyerid
ORDER BY total_quantity desc limit 10) Q, users
WHERE Q.buyerid = userid
ORDER BY Q.total_quantity desc;
-- Find events in the 99.9 percentile in terms of all-time gross sales.
SELECT eventname, total_price
FROM (SELECT eventid, total_price, ntile(1000) over(order by total_price
desc) as percentile
FROM (SELECT eventid, sum(pricepaid) total_price
FROM
sales
GROUP BY eventid)) Q, event E
WHERE Q.eventid = E.eventid
AND percentile = 1
ORDER BY total_price desc;
API Version 2012-12-01
255
Amazon Redshift 管理ガイド
ステップ 4: ターゲットクラスターのサイズを変更する
ステップ 4: ターゲットクラスターのサイズを変更
する
ターゲットクラスターが期待どおりに動作することを確認できたら、ターゲットクラスターのサイズ
を変更できます。このチュートリアルの後の手順で、スナップショット作成後にロードされたデータ
をターゲットにコピーすることがあるため、ソースクラスターでの書き込みおよび読み取り/書き込み
操作を引き続き可能にしておくことができます。
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。この
チュートリアルと同じクラスターを使用している場合は、examplecluster-target をクリックしま
す。
3. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Resize] をクリックしま
す。
4. [Resize Cluster] ウィンドウで、次の値を選択します。
• [Node Type]: dc1.large
• [Cluster Type]: Multi Node
• [Number of Nodes]: 2
5. [Resize] をクリックします。
6. [Status] をクリックし、サイズ変更のステータス情報を確認すると、サイズ変更の進行状況がわか
ります。
ステップ 5: スナップショット後のデータをソース
からターゲットクラスターにコピーする
このチュートリアルでは、このステップでシンプルな COPY ステートメントセットを使用し
て、Amazon S3 から Amazon Redshift にデータをロードします。このステップは、ソースクラスター
API Version 2012-12-01
256
Amazon Redshift 管理ガイド
ステップ 5: スナップショット後のデータを
ソースからターゲットクラスターにコピーする
と同じデータを使用して、ターゲットクラスターを最新の状態にする操作をシミュレートするために
組み込まれています。ソースクラスターとターゲットクラスターに、実際の本番環境を合わせる作業
について説明することが目的ではありません。本番環境では、スナップショット作成後のソースクラ
スターとまったく同じデータをどのようにターゲットクラスターにロードするかは、独自の ETL プロ
セスで決まります。
スナップショット作成後に複数回ロードされていた場合は、ソースデータベースで実行されたのと同
じ順序で、ターゲットデータベースでロードが再実行されることを確認する必要があります。さら
に、ターゲットクラスターの更新作業を行っている間も、ソースデータベースへのロードが継続され
ている場合、ターゲットとソースが一致するまでこのプロセスを繰り返し、クラスターの名前変更と
アプリケーションの接続をターゲットデータベースに切り替える適切なタイミングを見極める必要が
あります。
この例では、スナップショット作成後に、ETL プロセスでソースクラスターにデータがロードされた
と想定します。Amazon Redshift がスナップショットからのクラスター復元またはターゲットクラス
ターのサイズ変更を継続している可能性があります。TICKIT データベースにいくつかの新しいカテゴ
リ、イベント、日付、および会場が追加されています。そこで、使用するクラスターを切り替える前
に、これと同じデータをターゲットクラスターに取り込む必要があります。
まず最初に、次の COPY ステートメントを使用して、Amazon S3 からターゲットクラスターの
Amazon Redshift TICKIT データベースのテーブルに新しいデータをロードします。
このチュートリアルのサンプルデータがあるのは、Amazon Redshift が所有する Amazon S3 バケット
内です。このバケットの権限は、すべての認証された AWS ユーザーにサンプルデータファイルへの
読み込みアクセスを許可する設定になっています。サンプルデータをロードするには、IAM ユーザー
に関する次のアクセスキーとアクセス許可があることを確認してください。
• 自分のアクセスキーとシークレットアクセスキー。これらが不明な場合は、新しいキーを作成でき
ます。詳細については、IAM ユーザーガイド の「IAM ユーザーのアクセスキーの管理」を参照して
ください。
• 少なくとも Amazon S3 リソースへの LIST および GET アクセス許可。IAM ユーザーまたは IAM
ユーザーが属するグループに AmazonS3ReadOnlyAccess 管理ポリシーをアタッチして、IAM ユー
ザーにこれらのアクセス許可を付与できます。ポリシーのアタッチの詳細については、IAM ユー
ザーガイド の「管理ポリシーの使用」を参照してください。
Note
Amazon S3 への適切なアクセス許可なしに COPY コマンドを実行する
と、"S3ServiceException: Access Denied" というエラーメッセージが表示されま
す。
<access-key-id> と <secret-access-key> を、IAM ユーザーのアクセスキーおよびシークレッ
トアクセスキーと置き換えます。次に、SQL クライアントツールでコマンドを実行します。
copy venue from 's3://awssampledb/resize/etl_venue_pipe.txt' CREDENTIALS
'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-SecretAccess-Key>' delimiter '|' region 'us-east-1';
copy category from 's3://awssampledb/resize/etl_category_pipe.txt'
CREDENTIALS 'aws_access_key_id=<Your-Access-KeyID>;aws_secret_access_key=<Your-Secret-Access-Key>' delimiter '|' region 'useast-1';
copy date from 's3://awssampledb/resize/etl_date_pipe.txt' CREDENTIALS
'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-SecretAccess-Key>' delimiter '|' region 'us-east-1';
copy event from 's3://awssampledb/resize/etl_events_pipe.txt' CREDENTIALS
'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-SecretAccess-Key>' delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region 'useast-1';
API Version 2012-12-01
257
Amazon Redshift 管理ガイド
ステップ 6: ソースとターゲッ
トクラスターの名前を変更する
ステップ 6: ソースとターゲットクラスターの名前
を変更する
ターゲットクラスターが ETL プロセスから必要なデータを使用して最新の状態になったことを確認
したら、ターゲットクラスターに切り替えることができます。ソースクラスターと同じ名前を維持す
る必要がある場合は、切り替えのために多少の手動ステップが必要になります。手動ステップでは、
ソースとターゲットクラスターの名前変更も行い、その間の短期間はそれらが使用できなくなりま
す。ただし、新しいクラスターを使用するようにデータソースを更新できる場合は、このセクション
をスキップできます。
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。この
チュートリアルと同じクラスターを使用している場合は、examplecluster をクリックします。
3. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Modify] をクリックしま
す。
4. [Modify Cluster] ウィンドウで、[New Cluster Identifier] ボックスに「examplecluster-source」と入
力し、[Modify] をクリックします。
5. ナビゲーションペインで、[Clusters] をクリックし、examplecluster-target を選択します。
6. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Modify] をクリックしま
す。
7. [Modify Cluster] ウィンドウで、[New Cluster Identifier] ボックスに「examplecluster」と入力し、
[Modify] をクリックします。
API Version 2012-12-01
258
Amazon Redshift 管理ガイド
ステップ 7: ソースクラスターを削除する
ソースクラスターで実行中のクエリがある場合、ターゲットクラスターでそれを最初から実行し、完
了する必要があります。
ステップ 7: ソースクラスターを削除する
この後ソースクラスターは必要ないと確信できた場合は、削除できます。本番環境では、データポリ
シーに従って、最終スナップショットを保持するかどうかを判断します。このチュートリアルでは、
サンプルデータを使用しているため、最終スナップショットを作成せずにクラスターを削除します。
Important
クラスターは、削除されるまで課金されます。
1. Amazon Redshift consoleを開きます。
2. ナビゲーションペインで、[Clusters] をクリックし、開くクラスターをクリックします。この
チュートリアルと同じクラスター名を使用している場合は、examplecluster-source をクリックしま
す。
3. クラスターの詳細ページの [Configuration] タブで、クラスターリストの [Delete] をクリックしま
す。
4. [Delete Cluster] ウィンドウで、[Create final snapshot] に [No] を指定して、[Delete] をクリックし
ます。
ステップ 8: 環境をクリーンアップする
このチュートリアルを完了したら、ターゲットクラスターを削除して、環境をクリーンアップできま
す。これを行うには、「ステップ 7: ソースクラスターを削除する (p. 259)」の手順に従い、代わり
にターゲットクラスターを削除します。これを行うと、環境はチュートリアルを開始する前の状態
に戻ります。環境を元の状態に戻すことは、クラスターの実行に伴うコストを削減するために重要で
す。
Important
クラスターは、削除されるまで課金されます。
API Version 2012-12-01
259
Amazon Redshift 管理ガイド
クォータと制限
Amazon Redshift における制限
クォータと制限
Amazon Redshift にはクォータが割り当てられています。クォータにより、プロビジョニングできる
ノードの合計数、作成できるスナップショットの数が制限されます。これらのクォータは、各リー
ジョンの AWS アカウントごとに設定されます。Amazon Redshift には、それぞれデフォルトクォー
タがあります。リストついては、「AWS サービスの制限」を参照してください。いずれかのクォータ
の制限を超える処理を実行しようとすると、処理は失敗します。リージョンでアカウントに設定され
ている Amazon Redshift のクォータ制限を緩和するには、Amazon Redshift 上限緩和申請を提出して
変更を要請してください。
クォータ以外にも、Amazon Redshift には次のようなクラスターごとの値の制限があります。これら
の制限は緩和できません。
• クラスターごとに割り当てることができるノードの数。クラスターのノードタイプに基づきます。
この制限は、各リージョンの AWS アカウントの制限とは異なります。各ノードタイプの現在の
ノード制限の詳細については、「クラスターおよびノードについて (p. 6)」を参照してください。
• クラスターごとに作成できるテーブルの最大数 (一時テーブルを含む) は 9,900 です。一時テーブ
ルには、ユーザー定義の一時テーブルや、クエリの処理またはシステムメンテナンス中に Amazon
Redshift によって作成された一時テーブルが含まれます。ビューはこの上限には含まれません。
テーブルの作成の詳細については、「Amazon Redshift Database Developer Guide」の「Create
Table Usage Notes」を参照してください。
• クラスターごとに作成できるユーザー定義データベースの数は 60 です。データベースの作成の詳
細については、「Amazon Redshift Database Developer Guide」の「Create Database」を参照して
ください。
• データベースごとに作成できるスキーマの数は 256 です。スキーマの作成の詳細については、
「Amazon Redshift Database Developer Guide」の「Create Schema」を参照してください。
• クラスターに対して同時に可能なユーザー接続の数は 500 です。詳細については、「Amazon
Redshift Cluster Management Guide」の「クラスターへの接続 (p. 156)」を参照してください。
• ワークロード管理 (WLM) の設定では、すべてのユーザー定義キューに対して合計 50 の同時実行レ
ベルを定義できます。詳細については、Amazon Redshift Database Developer Guide の「クエリ
キューの定義」を参照してください。
• スナップショットを復元するために許可できる AWS アカウントの数は、1 スナップショットあた
り 20 個、1 AWS Key Management Service (AWS KMS) キーあたり 100 個です。つまり、1 つの
KMS キーで暗号化された 10 個のスナップショットがある場合、10 個の AWS アカウントで、各
スナップショットを復元することを許可できます。または、最大 100 個のアカウントのその他の組
API Version 2012-12-01
260
Amazon Redshift 管理ガイド
命名に関する制約
み合わせや、スナップショットごとに 20 アカウントを超えないその他の組み合わせを許可できま
す。詳細については、「Amazon Redshift Cluster Management Guide」の「スナップショットの共
有 (p. 73)」を参照してください。
• COPY コマンドを使用してロードされる 単一の入力行の最大サイズは 4 MB です。詳細について
は、Amazon Redshift Database Developer Guide の「COPY」を参照してください。
• クラスターと IAM ロールを所有するユーザーに代わって他の AWS サービスに Amazon Redshift
がアクセスするのを許可するため、最大 10 の IAM ロールをクラスターに関連付けることができま
す。 詳細については、「ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセス
することを許可する (p. 137)」を参照してください。
命名に関する制約
次の表に、Amazon Redshift での命名に関する制約を示します。
クラスター識別子
• クラスター識別子には小文字のみ使用できます。
• 1~63 文字の英数字またはハイフンを使用する必要があ
ります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用
したりすることはできません。
• AWS アカウントのすべてのクラスター間で一意である必
要があります。
データベース名
• データベース名には、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 つ続けて使用
したりすることはできません。
API Version 2012-12-01
261
Amazon Redshift 管理ガイド
命名に関する制約
クラスターセキュリティグループ名
• クラスターセキュリティグループ名には 255 文字以下の
英数字またはハイフンを使用する必要があります。
• 小文字のみを使用する必要があります。
• 「Default」という文字列を使用することはできませ
ん。
• AWS アカウントで作成したすべてのセキュリティグルー
プ間で一意である必要があります。
サブネットグループ名
• サブネットグループ名には 255 文字以下の英数字または
ハイフンを使用する必要があります。
• 小文字のみを使用する必要があります。
• 「Default」という文字列を使用することはできませ
ん。
• AWS アカウントで作成したすべてのセキュリティグルー
プ間で一意である必要があります。
クラスタースナップショット識別子
• クラスタースナップショット識別子には 255 文字以下の
英数字またはハイフンを使用する必要があります。
• 小文字のみを使用する必要があります。
• 「Default」という文字列を使用することはできませ
ん。
• AWS アカウントで作成したすべてのセキュリティグルー
プ間で一意である必要があります。
API Version 2012-12-01
262
Amazon Redshift 管理ガイド
タグ付けの概要
Amazon Redshift でのリソースへの
タグ付け
トピック
• タグ付けの概要 (p. 263)
• コンソールを使用したリソースタグの管理 (p. 264)
• Amazon Redshift API を使用したタグの管理 (p. 266)
タグ付けの概要
AWS タグは、キーと値のペアで構成されるユーザー定義のラベルです。Amazon Redshift では、
一目で分かるリソースに関するメタデータを提供し、コスト配分に基づいて請求レポートを分類
するタグ付けがサポートされます。コスト配分にタグを使用するには、まず AWS Billing and Cost
Management サービスでタグをアクティブ化する必要があります。請求目的でタグを設定および使用
する方法の詳細については、「コスト配分タグを使用したカスタム請求レポート」と「月別コスト割
り当てレポートの設定」を参照してください。
タグは、Amazon Redshift のリソースに必須ではありませんが、コンテキストの提供に役立ちます。
コストセンター、プロジェクト名、リソースについての他の関連情報に関するメタデータを持つリ
ソースにタグ付けできます。たとえば、テスト環境に属するリソースと本稼働環境に属するリソー
スを追跡するとします。environment というキーを作成し、値 test または production を指定
して、各環境で使用されるリソースを特定できます。他の AWS サービスでタグ付けを使用する場合
や、ビジネスの標準カテゴリがある場合、一貫性を保つために Amazon Redshift のリソースに同じ
キーと値のペアを作成することをお勧めします。
タグは、クラスターのサイズを変更した後や、同じリージョン内のクラスターのスナップショットを
復元した後も保持されます。一方、別のリージョンにスナップショットをコピーした場合はタグが保
持されないため、新しいリージョンでタグを再作成する必要があります。リソースを削除した場合、
関連付けられたタグが削除されます。
各リソースには、リソースに割り当てられた 1 つ以上のタグの集合であるタグセットが 1 つありま
す。リソースごとに、タグセットあたり最大 10 個のタグを含めることができます。タグは、リソー
スの作成時とリソースの作成後に追加できます。Amazon Redshift では、以下のリソースタイプにタ
グを追加できます。
• CIDR/IP
API Version 2012-12-01
263
Amazon Redshift 管理ガイド
タグ付け要件
• クラスター
• クラスターセキュリティグループ
• クラスターのセキュリティグループの進入ルール
• EC2 セキュリティグループ
• HSM 接続
• HSM クライアント証明書
• パラメーターグループ
• スナップショット
• サブネットグループ
タグ付け要件
タグには、次の要件があります。
• キーにプレフィックス aws: を付けることはできません。
• キーはタグセットごとに一意であることが必要です。
• キーに使用できる文字数は 1~128 文字です。
• 値に使用できる文字数は 0~256 文字です。
• 値は、タグセットごとに一意にする必要はありません。
• キーと値に使用できる文字は、Unicode 文字、数字、空白、および _ . の記号です。: / = + - @.
• キーと値は大文字と小文字が区別されます。
コンソールを使用したリソースタグの管理
以下に示すのは、クラスターやパラメーターグループなど、Amazon Redshift リソースの [Manage
Tags] ウィンドウの例です。
Amazon Redshift サービスにキーペアを追加するには、[Add Tags] セクションを使用します。[Add
Tags] セクションでキーペアを入力し始めると、新しい行が表示され、別のキーペアなどを追加でき
るようになります。キーと値に使用できる文字の詳細については、「タグ付け要件 (p. 264)」を参照
してください。
API Version 2012-12-01
264
Amazon Redshift 管理ガイド
[Manage Tags] ウィンドウを開く方法
特定のタグをリソースに追加しないことにした場合、行の [X] をクリックすることで [Add Tags] セク
ションから削除できます。追加するキーペアを指定したら、それらのキーペアがリソースに関連付け
られるように変更を適用します。
リソースにキーペアを追加すると、[Applied Tags] セクションに表示されます。これは、リソースの
タグセットです。タグ値は変更できますが、キー名を変更することはできません。ただし、キーがリ
ソースに必要なくなった場合はそのキーを削除できます。
[Manage Tags] ウィンドウの [Applied Tags] セクションを確認することで、リソースのタグを参照で
きます。または、ナビゲーションペインのリソースタイプに移動し、リスト内のリソースを展開して
[Tags] セクションを表示することで、タブをすばやく参照することができます。クラスターを展開し
て、クラスターに関連付けられたタグなどの各種プロパティを表示する方法の例を以下に示します。
[Manage Tags] ウィンドウを開く方法
次の表は、タグがサポートされる各 Amazon Redshift リソースの [Manage Tags] ウィンドウを開く方
法について説明しています。
リソース
説明
クラスター
左のナビゲーションペインで、[Clusters] をクリックし、リストからクラスターを
選択します。次に、[Manage Tags] をクリックします。
スナップ
ショット
左のナビゲーションペインで、[Snapshots] をクリックし、リストからスナップ
ショットを選択します。次に、[Actions] をクリックし、メニューから [Manage
Tags] をクリックします。
クラスターセ
キュリティグ
ループ
左のナビゲーションペインで [Security] をクリックします。[Security Groups] タブ
で、リストからセキュリティグループを選択します。次に、[Manage Tags] をク
リックします。
クラスターの
セキュリティ
グループの進
入ルール
左のナビゲーションペインで [Security] をクリックします。[Security Groups]
タブのリストでセキュリティグループをクリックします。[Security Group
Connections] ページで進入ルールを選択し、[Manage Tags] をクリックします。
API Version 2012-12-01
265
Amazon Redshift 管理ガイド
Amazon Redshift コンソールでタグを管理する方法
リソース
説明
サブネットグ
ループ
左のナビゲーションペインで [Security] をクリックします。[Subnet Groups] タブ
で、リストからサブネットグループを選択します。次に、[Manage Tags] をクリッ
クします。
HSM 接続
左のナビゲーションペインで [Security ] をクリックします。[HSM Connections] タ
ブで、リストから接続を選択します。次に、[Manage Tags] をクリックします。
HSM 証明書
左のナビゲーションペインで [Security ] をクリックします。[HSM Certificates] タ
ブで、リストから証明書を選択します。次に、[Manage Tags] をクリックします。
パラメーター
グループ
左のナビゲーションペインで、[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 を使用して、タグを管理できます。
API Version 2012-12-01
266
Amazon Redshift 管理ガイド
Amazon Redshift API を使用したタグの管理
• CreateTags
•
•
•
•
DeleteTags
DescribeTags
Tag
TaggedResource
さらに、次の Amazon Redshift API を使用して、特定のリソースのタグを管理および参照することも
できます。
• CreateCluster
• CreateClusterParameterGroup
• CreateClusterSecurityGroup
• CreateClusterSnapshot
• CreateClusterSubnetGroup
• CreateHsmClientCertificate
• CreateHsmConfiguration
• DescribeClusters
• DescribeClusterParameterGroups
• DescribeClusterSecurityGroups
• DescribeClusterSnapshots
• DescribeClusterSubnetGroups
• DescribeHsmClientCertificates
• DescribeHsmConfigurations
API Version 2012-12-01
267
Amazon Redshift 管理ガイド
ドキュメント履歴
以下の表はAmazon Redshift Cluster Management Guide の重要な変更点をまとめたものです。
API バージョン: 2012-12-01
前回のドキュメント更新日: 2016 年 9 月 15 日
Amazon Redshift データベースのドキュメントに対する変更のリストについては、Amazon Redshift
Database Developer Guide を参照してください。
新機能の詳細については、修正点のリストや、各リリースに関連付けられたクラスターバージョン番
号も含めて、Amazon Redshift フォーラムを参照してください。
変更
説明
リリース日
拡張された VPC の
ルーティング
Amazon Redshift 拡張 VPC ルーチングを使用する場
合、Amazon Redshift は Amazon VPC を経由するク
ラスターとデータリポジトリ間のすべての COPY と
UNLOAD トラフィックを強制します。 詳細について
は、「Amazon Redshift 拡張された VPC のルーティン
グ (p. 46)」を参照してください。
2016 年 9 月 15 日
新しい JDBC ドラ
イバ
Amazon Redshift JDBC ドライバはバージョン
1.1.17.1017 に更新されました。また、JDBC バージョ
ン 4.2 のドライバがサポートされるようになりました。
詳細については、「JDBC 接続を設定する (p. 158)」を
参照してください。
2016 年 7 月 5 日
接続ログの新しい
フィールド
接続ログ (p. 238) 監査ログには、SSL 接続を追跡する
2 つの新しいフィールドがあります。Amazon Redshift
テーブルに定期的に監査ログをロードする場合、ター
ゲットテーブルに sslcompression と sslexpansion とい
う新しい列を追加する必要があります。
2016 年 5 月 5 日
新しい ODBC ドラ
イバ
Amazon Redshift ODBC ドライバはバージョン
1.2.7.1007 に更新されました。詳細については、
「ODBC 接続を設定する (p. 164)」を参照してくださ
い。
2016 年 3 月 30 日
COPY および
UNLOAD 用の IAM
ロール
他の AWS のサービスへのアクセスの認証に使用する
クラスターは、一つ以上の AWS Identity and Access
Management (IAM) ロールを指定できます。IAM ロール
は COPY、UNLOAD、または CREATE LIBRARY コマ
2016 年 3 月 29 日
API Version 2012-12-01
268
Amazon Redshift 管理ガイド
変更
説明
リリース日
ンドを使用して認証を提供する安全な代替方法を提供
しています。詳細については、「ユーザーに代わって
Amazon Redshift が他の AWS のサービスにアクセスす
ることを許可する (p. 137)」および「IAM ロールを使用
して COPY および UNLOAD 操作を許可する (p. 140)」
を参照してください。
テーブルからの復元
クラスタースナップショットからアクティブなクラス
ターの新しいテーブルにテーブルを復元できます。詳
細については、「スナップショットからのテーブルの復
元 (p. 71)」を参照してください。
2016 年 3 月 10 日
新しい JDBC ドラ
イバ
Amazon Redshift JDBC ドライバはバージョン
1.1.10.1013 に更新されました。詳細については、
「JDBC 接続を設定する (p. 158)」を参照してくださ
い。
2016 年 2 月 18 日
SSLMode プロパティを設定し、TLS/SSL 証明書を検証
するときドライバがホスト名を確認するかどうかを指
定できるようになりました。詳細については、「JDBC
ドライバー設定オプション (p. 160)」を参照してくださ
い。
ポリシーでの IAM
条件の使用
IAM ポリシーで Condition エレメントを使用すること
2015 年 12 月 10
で、リソースへのアクセスをさらに制限できます。詳細 日
については、「詳細に設定されたアクセスコントロール
のための IAM ポリシー条件の使用 (p. 116)」を参照して
ください。
パブリックにアクセ
ス可能かどうかの変
更
VPC の既存のクラスターを変更し、そのクラスターが
パブリックにアクセス可能かどうかを変更できます。詳
細については、「クラスターの変更 (p. 23)」を参照し
てください。
2015 年 11 月 20
日
新しい JDBC ドラ
イバ
Amazon Redshift JDBC ドライバはバージョン
1.1.10.1010 に更新されました。詳細については、
「JDBC 接続を設定する (p. 158)」を参照してくださ
い。
2015 年 11 月 19
日
Amazon Redshift ODBC ドライバはバージョン
1.2.6.1006 に更新されました。詳細については、
「ODBC 接続を設定する (p. 164)」を参照してくださ
い。
ドキュメントの修正
さまざまなドキュメント修正を公開しました。
2015 年 8 月 28 日
ドキュメントの更新
さまざまなサイズの最大送信単位 (MTU) を持つホス
トが接続用のパケットサイズを指定できるようにネッ
トワーク設定を定義する方法に関するトラブルシュー
ティングガイダンスを更新しました。詳細については、
「クエリがハングして、クラスターに達しない場合があ
る (p. 198)」を参照してください。
2015 年 8 月 25 日
ドキュメントの更新
構成と明快さを改善するため、パラメーターグループ
2015 年 8 月 17 日
に関するセクション全体を改訂しました。詳細について
は、「Amazon Redshift パラメーターグループ (p. 50)」
を参照してください。
API Version 2012-12-01
269
Amazon Redshift 管理ガイド
変更
説明
リリース日
新しい JDBC ドラ
イバ
Amazon Redshift JDBC ドライバはバージョン 1.1.7 に
更新されました。詳細については、「JDBC 接続を設定
する (p. 158)」を参照してください。
2015 年 8 月 14 日
WLM の動的プロパ
ティ
WLM 設定パラメーターは一部のプロパティの動的な適 2015 年 8 月 3 日
用をサポートするようになりました。他のプロパティ
は静的なままであり、設定の変更を適用するには、該
当するクラスターを再起動する必要があります。詳細
については、「WLM の動的プロパティと静的プロパ
ティ (p. 54)」および「Amazon Redshift パラメーターグ
ループ (p. 50)」を参照してください。
KMS で暗号化され
たクラスターの別
のリージョンへのコ
ピー
AWS KMS で暗号化されたクラスター用に別のリージョ
ンへのスナップショットのコピー権限を設定する方法
について内容を追加しました。詳細については、「別
のリージョンに AWS KMS 暗号化スナップショットコ
ピーする (p. 89)」を参照してください。
ドキュメントの更新
データベースの暗号化に関するセクションを更新し
2015 年 7 月 28 日
て、Amazon Redshift でキー管理に AWS KMS または
HSM を使用する方法、これらの各方法での暗号化プロ
セスのしくみについて説明を追加しました。詳細につい
ては、「Amazon Redshift データベース暗号化 (p. 88)」
を参照してください。
新しい JDBC ドラ
イバ
Amazon Redshift JDBC ドライバはバージョン 1.1.7 に
更新されました。詳細については、「JDBC 接続を設定
する (p. 158)」を参照してください。
2015 年 7 月 2 日
新しいノードタイプ
Amazon Redshift では、新しいノードタイプである
DS2 が用意されました。更新されたドキュメントで
は、既存のノードタイプを参照して、このリリースで導
入された新しい名前を使用しています。さらに、ノード
タイプの組み合わせについて説明を追加し、デフォルト
のクォータ制限を明確にするように、該当するセクショ
ンを改訂しました。詳細については、「クラスターおよ
びノードについて (p. 6)」を参照してください。
2015 年 6 月 9 日
リザーブドノード
サービス
新しいリザーブドノードサービスについて内容を追加し
ました。また、使用可能なサービスを説明し比較するよ
うに、該当するセクションを改訂しました。さらに、オ
ンデマンドおよびリザーブドノードの料金によって請求
額がどのように変わるかを示す例を追加しました。詳細
については、「概要 (p. 100)」を参照してください。
2015 年 6 月 9 日
新しい ODBC ドラ
イバ
Amazon Redshift ODBC ドライバが更新されました。こ 2015 年 6 月 5 日
れらのドライバの以前のバージョンのセクションと、ド
ライバのリリースノートへのリンクを追加しました。詳
細については、「ODBC 接続を設定する (p. 164)」を参
照してください。
ドキュメントの修正
さまざまなドキュメント修正を公開しました。
API Version 2012-12-01
270
2015 年 7 月 28 日
2015 年 4 月 30 日
Amazon Redshift 管理ガイド
変更
説明
リリース日
ドキュメントの更新
Amazon Redshift JDBC ドライバの新しいバージョンへ
のダウンロードリンクが更新され、これらのドライバの
以前のバージョンのセクションが追加されました。ドラ
イバのリリースノートへのリンクも追加されました。詳
細については、「JDBC 接続を設定する (p. 158)」を参
照してください。
2015 年 4 月 1 日
ドキュメントの更新
新しいバージョンの Amazon Redshift JDBC ドライ
バーのダウンロードを追加しました。また、Amazon
Redshift JDBC URL の形式を更新しました。詳細につ
いては、「JDBC 接続を設定する (p. 158)」を参照して
ください。
2015 年 3 月 16 日
クラスターセキュリティグループの進入ルールをタ
グ付け可能なリソースとして追加しました。詳細につ
いては、「Amazon Redshift でのリソースへのタグ付
け (p. 263)」を参照してください。
クラスターセキュリティグループの進入ルールを追加
する手順を更新し、クラスターセキュリティグループの
進入ルールにタグを付ける手順を追加しました。詳細に
ついては、「コンソールを使用したクラスターセキュリ
ティグループの管理 (p. 125)」を参照してください。
新機能
このリリースの Amazon Redshift では、Amazon
Redshift で使用するために最適化された新しい ODBC
および JDBC ドライバーが導入されています。詳細に
ついては、「クラスターへの接続 (p. 156)」を参照して
ください。
2015 年 2 月 26 日
新機能
このリリースの Amazon Redshift では、クラスターの
パフォーマンスメトリクスが導入されたため、クエリ実
行の詳細を確認したり分析したりできます。詳細につい
ては、「クエリパフォーマンスデータの表示 (p. 208)」
を参照してください。
2015 年 2 月 26 日
ドキュメントの更新
Amazon Redshift が依存する一般的な AWS サービスの
アクションおよびリソースに対するアクセス権限を許可
する方法を示す、新しいサンプルポリシーが追加されま
した。詳細については、「お客様が管理するポリシーの
例 (p. 119)」を参照してください。
2015 年 1 月 16 日
ドキュメントの更新
最大送信単位 (MTU) を設定して TCP/IP ジャンボフ
レームを無効にする方法のガイダンスが更新詳細につい
ては、クラスターの起動用にサポートされているプラッ
トフォーム (p. 10) および クエリがハングして、クラス
ターに達しない場合がある (p. 198) を参照してくださ
い。
2015 年 1 月 16 日
ドキュメントの更新
wlm_json_configuration パラメーターに関する内
容が改訂され、Linux、Mac OS X、Microsoft Windows
オペレーティングシステムで AWS CLI を使用してこ
のパラメーターを設定するサンプル構文が追加され
ました。詳細については、「ワークロード管理の設
定 (p. 53)」を参照してください。
2015 年 1 月 13 日
API Version 2012-12-01
271
Amazon Redshift 管理ガイド
変更
説明
リリース日
ドキュメントの更新
欠落しているイベントの通知と説明が追加されました。
詳細については、「Amazon Redshift イベントのカテゴ
リおよびイベントメッセージ (p. 225)」を参照してくだ
さい。
2015 年 1 月 8 日
ドキュメントの更新
Amazon Redshift のアクションとリソースの IAM ポリ
シーに関するガイダンスが更新されました。構成と明快
さを改善するため、セクションが改訂されました。詳細
については、「セキュリティ (p. 110)」を参照してくだ
さい。
2014 年 11 月 21
日
新機能
Amazon Redshift のこのリリースには、AWS Key
2014 年 11 月 12
Management Service (AWS KMS) の暗号化キーを使
日
用してクラスターを暗号化する機能が導入されてい
ます。AWS KMS は、安全で可用性の高いハードウェ
アとソフトウェアを組み合わせて、クラウド向けに拡
張されたキー管理システムを提供します。AWS KMS
と、Amazon Redshift の暗号化オプションの詳細につい
ては、「Amazon Redshift データベース暗号化 (p. 88)」
と「コンソールを使ったクラスターの管理 (p. 15)」を
参照してください。
新機能
Amazon Redshift のこのリリースでは、クラスターやス
ナップショットなどのリソースをタグ付けする機能が追
加されました。タグを使用すると、コスト配分に基づい
て請求レポートを分類するユーザー定義のメタデータを
使用できるようになり、リソースを一目で特定しやすく
なります。詳細については、「Amazon Redshift でのリ
ソースへのタグ付け (p. 263)」を参照してください。
2014 年 11 月 4 日
新機能
dw1.8xlarge および dw2.8xlarge ノードサイズの最大
ノード制限が 128 ノードに増加しました。詳細につい
ては、「クラスターおよびノードについて (p. 6)」を参
照してください。
2014 年 10 月 30
日
ドキュメントの更新
Amazon Redshift が PostgreSQL ODBC ドライバーを使 2014 年 10 月 30
用するために必要な Microsoft Visual C++ 2010 再頒布
日
可能パッケージへのリンクが追加されました。詳細につ
いては、「Microsoft Windows オペレーティングシステ
ムに Amazon Redshift ODBC ドライバーをインストー
ルして設定する (p. 166)」を参照してください。
新機能
Amazon Redshift consoleからクエリとロードを終了す
る機能が追加されました。詳細については、クエリパ
フォーマンスデータの表示 (p. 208) および ロード操作
中にクラスターメトリクスを表示する (p. 215) を参照し
てください。
2014 年 10 月 28
日
ドキュメントの修正
さまざまなドキュメント修正を公開しました。
2014 年 10 月 17
日
新しいコンテンツ
クラスターのシャットダウンとクラスターの削除に関す
る内容が追加されました。詳細については、クラスター
のシャットダウンと削除 (p. 13) および クラスターの削
除 (p. 25) を参照してください。
2014 年 8 月 14 日
API Version 2012-12-01
272
Amazon Redshift 管理ガイド
変更
説明
リリース日
ドキュメントの更新
クラスターの [Allow Version Upgrade] 設定の動作が明
確になりました。詳細については、「概要 (p. 5)」を参
照してください。
2014 年 8 月 14 日
ドキュメントの更新
Amazon Redshift console でクラスターを処理する方法
に関するトピックの構成、およびその中の手順とスク
リーンショットを改訂しました。詳細については、「コ
ンソールを使ったクラスターの管理 (p. 15)」を参照し
てください。
2014 年 7 月 11 日
新しいコンテンツ
Amazon Redshift クラスターのサイズ変更に関連する新
しいチュートリアルを追加しました。これには、読み
取り専用モードになる期間を最小限に抑えながらクラス
ターのサイズを変更する方法が含まれます。詳細につい
ては、「チュートリアル: Amazon Redshift クラスター
のサイズ変更 (p. 247)」を参照してください。
2014 年 6 月 27 日
新機能
クラスターの名前変更機能を追加しました。詳細につい
ては、「クラスターの名前変更 (p. 12)」および「クラ
スターの変更 (p. 23)」を参照してください。
2014 年 6 月 2 日
ドキュメントの更新
.NET を使ってクラスターにプログラムで接続する際に
ODBC データプロバイダーを使用するように .NET コー
ドの例を更新しました。詳細については、「.NET の使
用によるクラスターへの接続 (p. 193)」を参照してくだ
さい。
2014 年 5 月 15 日
新機能
スナップショットからクラスターを復元するときに、別
のパラメーターグループおよびセキュリティグループを
選択するオプションを追加しました。詳細については、
「スナップショットからのクラスターの復元 (p. 78)」
を参照してください。
2014 年 5 月 12 日
新機能
デフォルトの Amazon CloudWatch アラームを Amazon
Redshift クラスターで使用されているディスク容量の割
合を監視するように設定する方法を説明するセクション
を新しく追加しました。このアラームは、クラスター作
成プロセスの新しいオプションです。詳細については、
「デフォルトのディスク容量アラーム (p. 12)」を参照
してください。
2014 年 4 月 28 日
ドキュメントの更新
Amazon Redshift における Elliptic curve Diffie—Hellman
Exchange (ECDHE) のサポートに関する情報を明確に
しました。詳細については、「SSL を使用して接続す
る (p. 180)」を参照してください。
2014 年 4 月 22 日
新機能
Elliptic curve Diffie—Hellman (ECDH) の鍵契約プロトコ
ルに対する Amazon Redshift のサポートに関する記述
が追加されました。詳細については、「SSL を使用し
て接続する (p. 180)」を参照してください。
2014 年 4 月 18 日
ドキュメントの更新
クラスターへの接続 (p. 156) セクションのトピックが改
訂され、再編成されました。JDBC および ODBC 接続
に関する詳細情報、および接続の問題のトラブルシュー
ティングの新しいセクションが追加されました。
2014 年 4 月 15 日
API Version 2012-12-01
273
Amazon Redshift 管理ガイド
変更
説明
リリース日
ドキュメントの更新
ガイド全体に IAM ポリシーのバージョンの例を追加し
ました。
2014 年 4 月 3 日
ドキュメントの更新
クラスターのサイズを変更するときの料金体系につい
ての情報を追加しました。詳細については、「Amazon
Redshift リザーブドノードの購入 (p. 100)」を参照して
ください。
2014 年 4 月 2 日
新機能
結果セットの最大サイズをメガバイト単位で設定
し、カーソルごとに保存できる新しいパラメーター
max_cursor_result_set_size についてのセクショ
ンを追加しました。このパラメーター値は、クラスター
で同時実行できるカーソルの数にも影響を与えます。詳
細については、「Amazon Redshift パラメーターグルー
プ (p. 50)」を参照してください。
2014 年 3 月 28 日
新機能
[Cluster Version] フィールドに現在クラスターエンジン
のバージョンとデータベースのリビジョン番号が含まれ
ることについての説明を追加しました。詳細について
は、「Amazon Redshift クラスター (p. 5)」を参照して
ください。
2014 年 3 月 21 日
新機能
クラスターの [Status] タブで新しいサイズ変更の進捗情
報が表示されるためサイズ変更の手順を更新しました。
詳細については、「クラスターのサイズ変更 (p. 28)」
を参照してください。
2014 年 3 月 21 日
ドキュメントの更新
「Amazon Redshift とは? (p. 1)」および改訂された
「Amazon Redshift 管理の概要 (p. 2)」を再編して更新
しました。さまざまなドキュメント修正を公開しまし
た。
2014 年 2 月 21 日
新機能
Amazon Redshift クラスターの新しいノードタイプとサ
イズを追加し、関連するクラスターの概要のトピック
を、フィードバックに基づいてよりよい構成でわかり
やすくなるように書き直しました。詳細については、
「Amazon Redshift クラスター (p. 5)」を参照してくだ
さい。
2014 年 1 月 23 日
新機能
Virtual Private Cloud で、パブリックでアクセス可能
な Amazon Redshift クラスターに対して Elastic IP
(EIP) アドレスを使用することに関する情報を追加し
ました。Amazon Redshift の EIP の詳細については、
「Amazon Virtual Private Cloud (VPC) でクラスターを
管理する (p. 35)」および「VPC でクラスターを作成す
る (p. 37)」を参照してください。
2013 年 12 月 20
日
新機能
Amazon Redshift の AWS CloudTrail ログに関する情報
を追加しました。CloudTrail に対する Amazon Redshift
のサポートの詳細については、「Amazon Redshift 用
の AWS CloudTrail の使用 (p. 243)」を参照してくださ
い。
2013 年 12 月 13
日
API Version 2012-12-01
274
Amazon Redshift 管理ガイド
変更
説明
リリース日
新機能
Amazon Redshift のデータベース監査ログ作成機能に
対する、新しいユーザーアクティビティログ、および
enable_user_activity_logging データベースパラ
メーターに関する情報を追加しました。データベース
監査ログ作成の詳細については、「データベース監査ロ
グ作成 (p. 237)」を参照してください。データベースパ
ラメーターの詳細については、「Amazon Redshift パラ
メーターグループ (p. 50)」を参照してください。
2013 年 12 月 6 日
新機能
2 番目のリージョンに自動および手動でスナップショッ
トをコピーするための Amazon Redshift の設定方法を
更新しました。リージョン間スナップショットコピー
の設定に関する詳細については、「別のリージョンにス
ナップショットをコピーする (p. 69)」を参照してくだ
さい。
2013 年 11 月 14
日
新機能
接続とユーザーアクティビティの Amazon Redshift 監
査ログ作成、および Amazon S3 にログを格納する方法
を説明するセクションを追加しました。データベース監
査ログ作成の詳細については、「データベース監査ログ
作成 (p. 237)」を参照してください。
2013 年 11 月 11
日
新機能
ハードウェアセキュリティモジュール (HSM) で暗号化
2013 年 11 月 11
キーを管理してローテーションする新しい機能をもつ
日
Amazon Redshift 暗号化を説明するセクションを追加
しました。暗号化、HSM、およびキーローテーション
に関する詳細については、「Amazon Redshift データ
ベース暗号化 (p. 88)」、「Amazon Redshift でのハード
ウェアセキュリティモジュールを使用した暗号化につい
て (p. 90)」および「Amazon Redshift での暗号化キーの
更新について (p. 91)」を参照してください。
新機能
Amazon SNS を使用して Amazon Redshift イベント通
知を発行する方法を更新しました。Amazon Redshift イ
ベント通知については、「Amazon Redshift イベント通
知 (p. 223)」を参照してください。
2013 年 11 月 11
日
新機能
IAM リソースレベルのアクセス許可について説明して
います。Amazon Redshift IAM のアクセス権限について
は、「セキュリティ (p. 110)」を参照してください。
2013 年 8 月 9 日
新機能
復元の進捗メトリクスについて説明しています。詳細
については、「スナップショットからのクラスターの復
元 (p. 70)」を参照してください。
2013 年 8 月 9 日
新機能
クラスタースナップショット共有とスナップショット作
成の進捗メトリクスについて説明しています。詳細につ
いては、「スナップショットの共有 (p. 73)」を参照し
てください。
2013 年 7 月 17 日
ドキュメントの修正
さまざまなドキュメント修正を公開しました。
2013 年 7 月 8 日
新しいコンソール画
面
Amazon Redshift コンソールでの変更点に合わせ
てAmazon Redshift Cluster Management Guide を更新
しました。
2013 年 4 月 22 日
API Version 2012-12-01
275
Amazon Redshift 管理ガイド
変更
説明
リリース日
新規ガイド
これは「Amazon Redshift 管理ガイド」の初版リリース
です。
2013 年 2 月 14 日
API Version 2012-12-01
276