Amazon RDS for MySQL

ネットワークトラフィックの暗号化

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

SSL 暗号化の使用に関する情報については、MySQL RDS のドキュメントをご覧ください。

オプション

パフォーマンス上の理由から、読み取り専用レプリカ データベース(リードレプリカとも呼ばれる)を Looker で使用するのが一般的です。これにより、本番環境データベースが解放され、クエリを遅延させることなく、プライマリ機能を実行できます。

このドキュメントでは、次のいずれかを行う方法を説明します。

  • 既存のレプリカ データベースを変更して Looker と連携させる
  • 新しいリードレプリカ データベースを作成し、Looker と連携するように構成する

既存のレプリカの変更

ユーザーとセキュリティ

<some_password_here> を一意の安全なパスワードに変更します。

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';

RDS テーブルと一時テーブル

RDS リードレプリカには、デフォルトで読み取り専用フラグが有効になっています。これにより、Looker で一時テーブルへの書き込みを防ぐことができます。Looker では実際に既存のデータが変更されることはありませんが、MySQL で一時テーブルを使用するには書き込みアクセス権が必要です。この問題は、RDS でフラグを変更することで解決できます。RDS に関するよくある質問:

Q: リードレプリカでデータベースの読み取りオペレーションのみを受け入れることはできますか?

リードレプリカは読み取りトラフィックを処理するように設計されています。ただし、上級ユーザーがリードレプリカに対してデータ定義言語(DDL)SQL ステートメントを実行する場合もあります。たとえば、対応するソース DB インスタンスに同じインデックスを追加せずに、ビジネス レポートに使用されるリードレプリカにデータベース インデックスを追加する場合があります

Amazon RDS for MySQL は、リードレプリカに対して DDL SQL ステートメントを許可するように構成できます。特定のリードレプリカに対する読み取り以外のオペレーションを有効にする場合は、read_only パラメータを 0 に設定して、リードレプリカのアクティブな DB パラメータ グループを変更します。

Amazon RDS for PostgreSQL は現在、リードレプリカに対する DDL SQL ステートメントの実行をサポートしていません。

DB パラメータ グループを変更した場合は、変更を有効にするためにリードレプリカを再起動する必要があります。

データベースを作成して権限を付与する

一時データベースを作成し、looker ユーザーに書き込み権限を付与します。MySQL の CREATE TEMPORARY ステートメントは、権限確保のために DB に関連付ける必要があります。

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

新しいレプリカの作成

AWS RDS は、バックアップの保持が有効になっているデータベース インスタンスでのみリードレプリカを作成できます。

AWS の前に行う手順

ステップ 1

プライマリ データベース インスタンスになるデータベースに mysql 接続します。

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

ステップ 2

looker という名前のユーザーを作成します(<some_password_here> を一意の安全なパスワードに置き換えます)。

CREATE USER looker IDENTIFIED BY '<some_password_here>';

ステップ 3

一時データベースを作成し、Looker に他のデータベースとテーブルの読み取り権限を付与します。Looker は通常、looker_tmp データベースに書き込むのではなく CREATE TEMPORARY TABLE コマンドを実行するために使用します。

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

ステップ 4

権限をフラッシュする

FLUSH PRIVILEGES;

AWS の手順

ステップ 1

ログインして AWS ダッシュボードに移動します。[データベース] セクションで、[RDS] を選択します。

ステップ 2

RDS ダッシュボードで、プライマリ データベースとして指定するデータベース インスタンスを選択します。[インスタンスの操作] を選択し、つづいて [リードレプリカを作成] を選択します。

ステップ 3

[リードレプリカ DB インスタンスの作成] ポップアップで、リードレプリカ データベースを構成して [はい。リードレプリカを作成します] を選択します。

ステップ 4

リードレプリカ データベースの作成を待機している間に、DB パラメータ グループを設定できます。このグループに、リードレプリカ データベース インスタンスに適用されるエンジン構成値が格納されます。サイドバーで [DB Parameter Groups] ページを選択し、[Create DB Parameter Group] ボタンを選択します。

ステップ 5

[DB パラメータ グループ ファミリー] と [DB パラメータ グループ名] を選択し、[DB パラメータグループの説明] を入力します。次に、[はい、作成する] を選択します。

ステップ 6

リードレプリカ データベースのパラメータ グループを含む行で虫メガネ アイコンを選択するか、その行を選択して [パラメータを編集] を選択します。

ステップ 7

[フィルタ] の [パラメータ] で、「read_only」を検索します。パラメータ値を 0 に変更します。次に、[Save Changes] を選択します。

ステップ 8

リードレプリカの作成が完了したら、データベース インスタンスのリストからレプリカを選択し、[インスタンス操作] ボタンを選択して、インスタンス操作で [変更] を選択します。

ステップ 9

[DB インスタンスの変更] ポップアップで、DB インスタンスのパラメータ グループを新しいリードレプリカ パラメータ グループに変更します。[すぐに適用] チェックボックスをオンにし、[続行] を選択してから、[DB インスタンスを変更] を選択します。

ステップ 10

MySQL クライアントを使用してリードレプリカ データベース インスタンスに looker に接続し、データがアクセス可能かどうかをテストします。

データベースへの Looker 接続の作成

Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。

接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。

これらの設定を保存するには、[接続] をクリックします。

機能のサポート

一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。

MySQL は、Looker 24.8 の時点で、次の機能をサポートしています。

特徴 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
はい
対称集計
あり
派生テーブル
あり
永続的な SQL 派生テーブル
あり
永続的なネイティブ派生テーブル
あり
安定したビュー
あり
クエリの強制終了
あり
SQL ベースのピボット
あり
タイムゾーン
あり
SSL
あり
Subtotals
あり
JDBC の追加パラメータ
あり
Case Sensitive
いいえ
ロケーション タイプ
あり
リストのタイプ
あり
パーセンタイル
あり
個別のパーセンタイル
あり
SQL Runner の表示プロセス
あり
SQL Runner の説明テーブル
あり
SQL Runner 表示インデックス
あり
SQL Runner Select 10
あり
SQL ランナーの数
あり
SQL の説明
あり
Oauth 認証情報
いいえ
コンテキスト コメント
あり
接続プーリング
いいえ
HLL スケッチ
いいえ
集計認識
あり
増分PDT
あり
ミリ秒
あり
マイクロ秒
あり
マテリアライズド ビュー
いいえ
Approximate Count Distinct
いいえ