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.18 の時点で、次の機能をサポートしています。

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