ネットワークトラフィックの暗号化
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.16 の時点で、次の機能をサポートしています。
機能 | サポート対象 |
---|---|
サポート レベル | サポート対象 |
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 | いいえ |