Azure で Azure Database PostgreSQL インスタンスを作成する

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

要件と推奨事項

  • Tableau Server 外部リポジトリ用に 50 GB のストレージを備えた 8 台の仮想コア メモリ最適化サーバーを使用することを推奨します。ただし、要求事項と使用状況によって正確な要件は異なります。Tableau Server がすでにある場合は、既存のリポジトリの使用状況を確認して、ストレージのニーズを判断します。

    必要な場合は、リソースを拡張することもできます。詳細については、「PostgreSQL Azure Database リソースのスケーリング」を参照してください。

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

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

  • PostgreSQL DB インスタンスを Tableau Server クラスタ内のすべてのノードから到達可能にする必要があります。データベース インスタンスは、すべての Tableau Server ノードからの接続を許可するように設定する必要があります。この設定には 2 つの方法があります。

  • Azure Database インスタンスを設定する場合は、管理者ユーザー名として postgres を使用することを推奨します。別のユーザー名を使用する場合は、ユーザー名が pg または azure で始まらないようにしてください。また、ユーザー名は、railstblwgadmintableaureadonly、または tbladminviews にすることはできません。
  • PosgreSQL のバージョンは、Tableau Server をローカルにインストールするときに使用するバージョンと一致する必要があります。Tableau Server 2020.4 は、PostgreSQL バージョン 12 を使用します。

Azure Database で PostgreSQL インスタンスを作成する

ステップ 1: PostgreSQL 用 Azure Database インスタンスの委任サブネットを作成する

ネットワークのオプションとしてプライベート アクセスを設定する場合、このステップはインスタンスを作成するときの必須条件になります。通信をセキュリティで保護するためには、データベースへのアクセスをプライベートに設定する必要があります。これにより、仮想ネットワーク内に作成した仮想マシンであればデータベース インスタンスに接続できますが、仮想ネットワークの外部にあるマシンからは接続できません。

現在 Tableau Server をホストしている同じ仮想ネットワークで、Azure データベース インスタンス用の新しい委任サブネットを作成します。プライベート アクセスの設定の詳細については、Azure Web サイトの「PostgreSQL 用 Azure Database のネットワーク オプション - フレキシブル サーバー」を参照してください。

ステップ 2: PostgreSQL 用 Azure Database インスタンスを作成する

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

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

  • サーバーの詳細

    • 新しいサーバーを作成するには、データ ソースとして [なし] を指定します。
    • 管理者ユーザー名は、postgres を使用することを推奨します。別のユーザー名を使用する場合は、ユーザー名が pg または azure で始まらないようにしてください。また、ユーザー名は、railstblwgadmintableaureadonly、または tbladminviews にすることはできません。
    • AWS の要件を満たすパスワードを選択します。

    • 使用している Tableau Server バージョンと互換性のある PostgreSQL バージョンを使用します。Tableau Server バージョンと互換性のある PostgreSQL バージョンの完全なリストについては、製品の互換性を参照してください。
    • 少なくとも 512 GB のストレージを割り当てます。
  • コンピューティングとストレージ

    • 少なくとも、汎用コンピューター層と Standard_D8s_v3 (8 仮想コア、32 GB RAM) の計算サイズを備えた Flexible Server を使用します。
  • ネットワーク オプション
    • プライベート アクセス (仮想ネットワーク) を選択します。これにより、データベースとのプライベートで安全な通信を確保します。
  • 高可用性

    • 要件に応じて高可用性オプションを有効にします。

  • バックアップ

    • 要件に応じて保持期間を設定します。これは Tableau Server のバックアップではなく、Asure の自動バックアップに関する設定です。要件を満たす設定を指定できます。

ステップ 3: サーバー レベルのファイアウォール ルールを構成する

データベースを作成したら、サーバー レベルのファイアウォール 規則を構成して、Tableau Server ノードへのアクセスを許可します。

すべての Tableau Server ノードから Database インスタンスに接続できることを確認します。

ステップ 4: PostgreSQL インスタンス用の Azure Database を構成する

Tableau Server で動作するには、Database インスタンスに特定のサーバー設定が必要です。データベースの作成後にサーバー パラメーターを変更する必要がある場合があります。

サーバー パラメーターの構成方法については、「Azure のドキュメント」を参照してください。

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

名前 必須 データ型 推奨される Tableau 構成値 説明
autovacuum 必須 ブール値 1 autovacuum サブプロセスを開始します。
client_min_messages 必須 文字列 エラー クライアントに送信されるメッセージ レベルを設定します。
escape_string_warning 必須 ブール値 0 文字列リテラルで円記号 (\) によるエスケープについて警告します。
lc_monetary 必須 文字列 en_US.UTF-8 金額を表すロケールを設定します。
lc_numeric 必須 文字列 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 必須ではありませんが、推奨されます。 文字列 エラー ログに記録されるメッセージ レベルを設定します。
log_temp_files 必須ではありませんが、推奨されます。 整数 128 このキロバイト数より大きい一時ファイルの使用をログに記録します。
standard_conforming_strings 必須 ブール値 0 文字列で円記号を文字どおりに処理します。
work_mem 必須 整数 16384 クエリ ワークスペースに使用する最大メモリを設定します。

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

インスタンスの準備が完了したら、このインスタンスを Tableau Server リポジトリ用に使用するように Tableau Server を構成するためのエンドポイント情報を取得します。

ステップ 6: SSL 証明書ファイルをダウンロードする

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

Tableau Serverと外部リポジトリ間の安全な接続を設定する場合は、この外部リポジトリを使用するように Tableau Server を構成するときに証明書ファイルが必要になります。詳細については、「PostgreSQL 用 Azure Database の TLS 接続の構成」(新しいウィンドウでリンクが開く)を参照してください。

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

PostgreSQL DB の高可用性の構成

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

PostgreSQL の災害復旧

災害が発生すると、PostgreSQL 用 Azure Database の新しいインスタンスの設定が必要になる場合があります。他のシナリオにおいても、データベース インスタンスの問題から復旧することが必要にある場合があります。たとえば、Tableau Server をアップグレードするとき、データベース インスタンス上で PostgreSQL のバージョンもアップグレードすることが必要になるかもしれません。PostgreSQL のアップグレードに失敗した場合、新しい データベース インスタンスを使用する必要があります。このようなシナリオで新しい Azure Database インスタンスを使用するように Tableau Server を構成するには、次の手順に従います。

  1. 新しい Azure Database インスタンスにバックアップを復元する。PostgresQL 用 Azure Database で復元を実行すると、元のサーバーのバックアップから新しいサーバーが作成されます。PostgreSQL 用 Azure Database のバックアップと復元の詳細については、「PostgreSQL 用 Azure Database のバックアップと復元」を参照してください。

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

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

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

実行可能なユーザー

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

ありがとうございます!