AWS Relational Database Service (RDS) での PostgreSQL DB インスタンスの作成

バージョン 2019.3 以降では、AWS クラウド プラットフォームで外部リポジトリをホストできます。このトピックでは、Tableau Server 外部リポジトリとして使用する AWSRDSPostgreSQL DB インスタンスを作成する方法について説明します。

外部リポジトリで使用できるホストの完全なリストについては、Tableau Server 外部リポジトリを参照してください。

要件と推奨事項

  • 少なくとも db.m4.2xlarge Amazon RDS メモリ最適化インスタンス タイプを使用します。これは、Tableau Server 外部リポジトリに使用する AWS RDS インスタンスの推奨最小サイズですが、正確な要件は実際の要件や使用方法によって異なります。パフォーマンスを最大限にするには、db.r4.xlarge (または db.r5.xlarge) Amazon RDS メモリ最適化インスタンス タイプをお勧めします。

    小さなインスタンス タイプから始めて、後で大きなインスタンス タイプが必要になった場合に既存の RDS インスタンスをアップグレードできます。詳細については、RDS インスタンスのアップグレードを参照してください。

    Tableau Server と外部 PostgreSQL DB インスタンス間の SSL 接続を使用した安全な通信は、必須ではありませんが、推奨されています。

  • PostgreSQL DB インスタンスを Tableau Server クラスタ内のすべてのノードから到達可能にする必要があります。これを行う方法のひとつは、PostgreSQL DB インスタンスを Tableau Server クラスタ内のすべてのノードからアクセスするために必要なパーミッションを持つセキュリティ グループのメンバーにすることです。

  • PosgreSQL のバージョンは、Tableau Server をローカルにインストールするときに使用するバージョンと一致する必要があります。Tableau Server 2020.4 は、PostgreSQL バージョン 12 を使用します。

Amazon RDS で PostgreSQL DB インスタンスを作成する

ステップ 1: パラメーター グループを作成する

postgresql.conf ファイル内でローカル PostgreSQL インスタンス用に設定した PostgreSQL パラメーターは、DB インスタンス用の DB パラメーター グループ内で保持されます。DB インスタンスを作成する際は、関連付けられた DB パラメーター グループ内のパラメーターが読み込まれます。

パラメーター値を変更するには、パラメーター グループ内の値を変更します。また、当該のセキュリティ特権がある場合は、ALTER DATABASE、ALTER ROLE、および SET コマンドを使用してパラメーター値を変更することもできます。

PostgreSQL パラメーターには静的パラメーターと動的パラメーターの 2 種類があります。静的パラメーターを適用するには、DB インスタンスを再起動する必要があります。動的パラメーターはすぐに適用できます。

次の表は、Tableau の推奨値に変更する必要があるパラメーターを示しています。

名前 データ型 パラメーターのタイプ 推奨される Tableau 構成値 説明
autovacuum ブール値 動的 1 autovacuum サブプロセスを開始します。
client_min_messages 文字列 動的 error クライアントに送信されるメッセージ レベルを設定します。
escape_string_warning ブール値 動的 0 文字列リテラルで円記号 (\) によるエスケープについて警告します。
lc_messages 文字列 動的 en_US.UTF-8 メッセージを表示する言語を設定します。
lc_monetary 文字列 動的 en_US.UTF-8 金額を表すロケールを設定します。
lc_numeric 文字列 動的 en_US.UTF-8 数値を表すロケールを設定します。
lc_time 文字列 動的 en_US.UTF-8 日付と時刻の値を表すロケールを設定します。
log_autovacuum_min_duration 整数 動的 100 autovacuum アクションをログに記録する最小実行時間を設定します。
log_connections ブール値 動的 1 成功した各接続をログに記録します。
log_lock_waits ブール値 動的 1 長いロック待機をログに記録します。
log_min_duration_statement 整数 動的 100 which ステートメントをログに記録する最小実行時間を設定します。
log_min_messages 文字列 動的 error ログに記録されるメッセージ レベルを設定します。
log_temp_files 整数 動的 128 このキロバイト数より大きい一時ファイルの使用をログに記録します。
rds.force_ssl ブール値   1 SSL 接続を強制します。クライアント キーストアで証明書をインポートする必要があります。
rds.logical_replication ブール値   1  
ssl ブール値 静的 1 SSL 接続を許可します。
standard_conforming_strings ブール値 動的 0 文字列で円記号を文字どおりに処理します。
work_mem 整数 動的 16384 クエリ ワークスペースに使用する最大メモリを設定します。

PostgreSQL パラメーターの詳細と完全なリストについては、AWS サイトで「PostgreSQL パラメータの使用」(新しいウィンドウでリンクが開く)を参照してください。

ステップ 2: Amazon RDS で PostgreSQL インスタンスを作成する

新しい PostgreSQL DB インスタンスを作成するには、この Amazon ドキュメント サイト(新しいウィンドウでリンクが開く)に記載されている手順に従ってください。

以下に、新しい PostgreSQL DB インスタンス用の構成オプションと推奨値を示します。

  • インスタンスの仕様

    • ステップ 1 で作成したパラメーター グループを使用します。
    • 使用している Tableau Server バージョンと互換性のある PostgreSQL バージョンを使用します。Tableau Server バージョンと互換性のある PostgreSQL バージョンの完全なリストについては、製品の互換性を参照してください。
    • db.m4.2xlarge かこれより大きい DB インスタンス クラスを使用します。
    • 少なくとも 100 GB のストレージを割り当てます。
    • ストレージのタイプとプロビジョニングされた IOPS: 既定値のままにします (負荷テストに応じて推奨値が変化する可能性があります)。
  • 設定

    • マスター ユーザー名として rails を使用する必要があります。

      これは外部リポジトリが Tableau Server とともに正しく動作するための要件です。

    • AWS の要件を満たすパスワードを選択します。

  • ネットワークとセキュリティ

    • すべての Tableau サーバー ノードから RDS インスタンスに到達できることを確認します。通常、ノードからのアクセスを許可するセキュリティ グループを作成する必要があります。

  • データベースに関するオプション

    • 初期データベースは作成しません。RDS インスタンスで必要なデータベースは Tableau Server によって作成されるため、データベース名は空白のままにしておく必要があります。

    • ポートは任意のものを使用できますが、既定の 5432 のままにすることをお勧めします。

    • DB パラメーターグループをステップ 1 で作成したものに設定します。

    • IAM DB 認証は無効のままにしておきます。

  • 暗号化

    • 暗号化を行うかどうかを選択できます。

  • バックアップ

    • これは Tableau Server のバックアップではなく AWS の自動バックアップに関する設定です。要件を満たす設定を指定できます。

  • 監視

    • 要件に基づく設定を指定できます。

  • ログのエクスポート

    • 要件に基づく設定を指定できます。

  • メンテナンス

    • マイナー バージョン自動アップグレードを無効にします。Tableau Server は特定のバージョンの PostgreSQL を使用するように構築されており、Tableau Server アップグレードの際は必要に応じて PostgreSQL バージョンをアップグレードするように求められます。

  • 保護の削除

    • 要件に基づく設定を指定できます。

ステップ 3: PostgresSQL DB インスタンスのエンドポイントを取得する

作成した PostgreSQL データベース インスタンスは、AWS による初期化が完了するまで使用できません (数分間かかる可能性があります)。インスタンスの準備が完了したら、このインスタンスを Tableau Server リポジトリ用に使用するように Tableau Server を構成するためのエンドポイント情報を取得します。

ステップ 4: SSL 証明書ファイル (.pem ファイル) をダウンロードする

Tableau Server と外部リポジトリ間の SSL を使用した安全な接続は、必須ではありませんが、推奨されています。

Tableau Server と外部リポジトリ間で安全な接続を設定する場合は、外部 DB インスタンスを Tableau Server リポジトリ用に使用するように Tableau Server を構成する際に、.pem ファイルが必要です。詳細については、「PostgreSQL DB インスタンスで SSL を使用する」(新しいウィンドウでリンクが開く)を参照してください。

Tableau Server と外部リポジトリ間で安全な接続を使用する必要がない場合は、暗号化されていない接続を許可するように RDS インスタンスを構成する必要があります。

重要: RDS インスタンスの SSL 証明書で計画された有効期限の一環として、RDS インスタンスを新しい証明書ファイルで更新する必要があります。また、新しい証明書ファイルを使用するように Tableau Server の設定も更新する必要があります。これを行うには、最新のファイルをダウンロードした後、tsm topology external-services repository replace-host コマンドを実行して新しい証明書ファイルを指定します。

PostgreSQL DB の高可用性の構成

Tableau Server では、外部リポジトリの高可用性の管理やセットアップは行われません。Amazon RDS では、高可用性を提供したりフェールオーバーを管理したりするために使用できる高可用性機能が提供されています。詳細については、「Amazon RDS での高可用性」(新しいウィンドウでリンクが開く)を参照してください。

PostgreSQL の災害復旧

災害が発生すると、新しい RDS インスタンスの設定が必要になる場合があります。RDS インスタンスの問題を復旧する必要がある場合には、別のシナリオがあります。たとえば、Tableau Server をアップグレードする場合、お使いの RDS インスタンスで PostgreSQL バージョンもアップグレードする必要があります。PostgreSQL アップグレードが正常に実行されなかった場合は、新しい RDS インスタンスを使用する必要があります。このようなシナリオで新しい RDS インスタンスを使用するように Tableau Server を構成するには、次の手順を使用します。

  1. 新しい RDS インスタンスにスナップショットを復元する。AWS では、既存の RDS インスタンスへのスナップショットの復元に対応していません。RDS スナップショットのバックアップと復元に関する詳細については、「Amazon RDS のバックアップと復元」を参照してください。

  2. JSON 設定ファイルを新規作成する。新しい RDS インスタンスの接続情報が含まれています。JSON 設定ファイルの作成に関する詳細については、PostgreSQL 外部リポジトリでの Tableau Server のインストールステップ 1 を参照してください。

  3. tsm topology external-services repository replace-host コマンドを使用して、新しい RDS インスタンスに Tableau Server を指定します。

    tsm topology external-services repository replace-host コマンドの詳細については、tsm topologyを参照してください。

実行可能なユーザー

Tableau Server を、外部リポジトリを使用するように構成できるのは、Tableau Server 管理者のみです。RDS インスタンスを作成するには、AWS アカウントも必要です。

ありがとうございます!