ネットワークトラフィックの暗号化
Looker では、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 に関するよくある質問:
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
[リードレプリカ データベース インスタンスの作成] ポップアップで、リードレプリカ データベースを構成して、[はい、リードレプリカを作成します] をクリックします。
ステップ 4
リードレプリカ データベースが作成されるのを待つ間に、DB パラメータ グループを設定できます。このグループには、リードレプリカ データベース インスタンスに適用されるエンジン構成値が含まれます。サイドバーの [DB パラメータ グループ] ページをクリックし、[Create DB Parameter Group] ボタンをクリックします。
ステップ 5
DB パラメータ グループ ファミリーと DB パラメータ グループ名を選択し、DB パラメータ グループの説明を入力します。[作成] をクリックします。
ステップ 6
リードレプリカ データベース パラメータ グループを含む行で虫メガネのアイコンをクリックします。または、その行を選択して [パラメータを編集] をクリックします。
ステップ 7
[Filters] の [Parameters] 欄で &readt;read_only" を検索します。パラメータ値を 0
に変更します。[変更を保存] をクリックします。
ステップ 8
リードレプリカの作成が完了したら、データベース インスタンスのリストからレプリカを選択し、[Instance Action] ボタンをクリックして、インスタンス アクションの [Modify] を選択します。
ステップ 9
[データベース インスタンスを変更] ポップアップで、DB インスタンスのパラメータ グループを新しいリードレプリカのパラメータ グループに変更します。次に、[すぐに適用] チェックボックスをオンにして、[続行] をクリックし、[DB インスタンスを変更] をクリックします。
ステップ 10
MySQL クライアントを使用して、リードレプリカ データベース インスタンスに looker
として接続し、データがアクセス可能かどうかをテストします。
機能のサポート
一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。
Looker の最新リリースでは、MySQL は次の Looker 機能をサポートしています。
次のステップ
データベースの構成が完了したら、こちらの手順に沿って Looker からデータベースに接続できます。