このページでは、セルフホスト型デプロイ用に Looker アプリケーションをインストールする方法について説明します。
Looker アプリケーションのホスティングは、データが存在する場所に関係なく行われます。データは常にデータベースに保持され、Looker インスタンスにはコピーされません。
デプロイの仕様
インターネットに接続していないネットワークで Looker を実行する場合、Looker のライセンス サーバーと通信するようにプロキシ サーバーを設定するか、BigQuery などのウェブ呼び出しのみを行うサーバーレス ウェブサービスを使用するようにプロキシ サーバーを設定しなければならないことがあります。
次の最小要件を満たす専用マシンに Looker アプリケーションをインストールします。
- 1.2 GHz CPU。Looker では 2 つ以上のコアをおすすめします。
- 8 GB の空き RAM。
- 10 GB の空きディスク容量。
- 2 GB のスワップ ファイル スペース
- Linux。Google では社内の Looker ホスティングに Ubuntu Linux(LTS リリース)を使用しています。Linux をご希望でないお客様にはこれをおすすめします。ただし、RedHat、CentOS、Amazon Linux など、主要なすべてのエンタープライズ Linux ディストリビューションのリリース バージョンでは Looker がサポートされています。Looker は、x64 の命令セットを搭載する Linux バージョンでのみサポートされています。
Java OpenJDK 11.0.12 以降、または HotSpot 1.8 アップデート 161 以降。Looker では、パフォーマンスとメモリ使用量を改善するために OpenJDK(バージョン 11)を使用しています。Looker では、追加のトラブルシューティング ツールを活用するために、JRE ではなく JDK を推奨しています。また、Looker では、新しい Java の更新がリリースされた場合、それに移行することを推奨しています。現時点では、Java、Oracle JDK、OpenJDK の他のバージョンはサポートされていません。
システムに
libssl
とlibcrypt.so
が存在している必要があります。TCP ポート
9999
を介した Looker インスタンスへの受信トラフィックを許可する必要があります。ユーザーが API アクセスを必要とする場合、TCP ポート
19999
を介した Looker インスタンスへの受信トラフィックを許可する必要があります。Looker が AWS VCP プライベート ネットワークから AWS Redshift に接続する場合は、MTU を 1500 に設定する必要があります。この設定の詳細については、この Amazon Web Services の記事のインスタンスの MTU の構成のセクションをご覧ください。データベース接続テスト中に MTU 設定が 1,500 を超えていることが検出されると、次のエラーが表示されます。
MTU of network interface eth0 is too large (> 1500). If Looker instance and Redshift cluster are within the same VPC, this warning can be ignored.
次の TCP キープアライブ設定。再起動後も接続を保持するには、
/etc/sysctl.conf
、または/etc/sysctl.d
ディレクトリのファイルでこれらを設定する必要があります。net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
Looker アプリケーションを実行するための、
looker
グループ内のlooker
という名前のユーザー。looker
ユーザーの ulimit が4096
以上。これを行うには、次の行を/etc/security/limits.conf
に追加します。looker soft nofile 4096 looker hard nofile 4096
NTP または同等のプロトコルによる時刻の同期。
/tmp
フォルダは、noexec オプションを使用してマウントしないでください。looker
ホーム ディレクトリを NFS ボリュームにマウントしないでください。サーバーのタイムゾーンを UTC に設定することをおすすめしますが、必須ではありません。
Looker 23.6 以降では、Git 2.39.1 以降が必要です。
必須ではありませんが、Netcat を使用するとネットワーク接続の問題のトラブルシューティングに役立ちます。Ubuntu ベースのサーバーなどに Netcat をインストールするには、次の一般的なコマンドを使用します。
sudo apt-get install netcat
必要に応じて、Looker が localhost の「core」に対して実行する必要がある HTTP(S) リクエストを処理するようにプロキシ サーバーを設定できます。Looker のローカル プロキシ サーバーと通信するには、
lookerstart.cfg
にいくつかの特別な引数を追加する必要があります。プロキシを経由せずに Looker の localhost にアクセスできるようにするには、http.nonProxyHosts=localhost
を追加します。
メンテナンスとリソースの競合を避けるため、Looker サーバーを使用して他のアプリケーションをホストしないでください。
ntpd または chronyd を有効にする
NTP は、ネットワーク タイム プロトコル(Network Time Protocol)の略です。これにより、ホストのシステム クロックは常に正しい時刻を保つことができます。これは、Looker が正しく機能うえで必要なことです。Looker では、時刻が同期されている限り、特定の時刻同期ソフトウェアを使用する必要はありません。NTP サーバーを実行する必要はなく、必要なのは NTP クライアントのみです。NTP の代わりに chronyd を使用することもできます。
ntpd または chronyd を有効にする方法については、OS ベンダーのドキュメントをご覧ください。
暗号鍵の作成
Looker は AES-256 Galois/Counter Mode(GCM)の暗号化を使用して、内部に保存された機密データを暗号化します。たとえば次のようなデータです。
- Looker 内部データベースのバックアップ
- データベースとサービスの接続情報
- ユーザー認証情報
- ユーザー属性値
- キャッシュに保存された顧客データ、または配信の準備が整った顧客データ
Looker で暗号化されるデータの詳細なリストについては、サポート リクエストを開いてください。
データは一意のデータ鍵を使用して暗号化され、確実に検証するために署名およびバージョニングされた暗号化エンベロープが含まれます。このモードでは、外部の顧客マスター鍵(CMK)を使用する必要があります。CMK は鍵暗号鍵(KEK)の導出、暗号化、復号に使用され、KEK はデータ鍵の導出、暗号化、復号に使用されます。
暗号化は Looker の内部データベースとキャッシュにのみ使用されます。お客様のデータベースが Looker の暗号化の影響を受けることは決してありません。また、この方法で暗号化されるのは静的データ(ディスクに保存されているデータ)のみです。
セルフホスト型のインストール環境では、独自の AWS KMS アカウントまたは独自のカスタム鍵管理システムを使用できます。すべてのデータ鍵と KEK は暗号化され、セルフホスト型の Looker インストール環境で内部で使用されます。AWS KMS を使用していない場合は、外部 CMK を安全で永続的な場所に保管してください。内部データベースの暗号化後に CMK が失われると、インスタンスが失われる可能性があります。
AWS KMS を使用している場合
AWS KMS を使用している場合は、AWS マネジメント コンソールまたは API を使用して CMK を作成します。
CMK を作成したら、CMK に固有の 新しい IAM ロールを作成して、これを Looker インスタンスに接続することをおすすめします。
CMK に必要な最小限の権限を含む IAM ロールの例を次に示します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:GenerateRandom",
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:Generate*",
],
"Resource": "arn:aws:kms:*:*:key/*"
}
]
}
CMK と新しい IAM ロールを作成したら、AWS_REGION
環境変数を AWS リージョンに設定し、LKR_AWS_CMK
環境変数を CMK のエイリアスに設定します。
export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>
必要に応じて、LKR_AWS_CMK_EC
環境変数を設定し、カスタムの AWS 暗号化コンテキストを設定することもできます。この環境変数を設定しない場合、デフォルトの暗号化コンテキストである文字列 Looker_Encryption_Context
が使用されます。
export LKR_AWS_CMK_EC=<My_Encryption_Context>
AWS KMS を使用していない場合
AWS KMS を使用していない場合は、Base64 の 32 バイトの CMK を生成します。CMK は、環境変数またはファイル内のどちらにも保存できます。
CMK を生成して環境変数に保存するには、次のコマンドを使用して CMK を生成します。
openssl rand -base64 32
CMK を生成したらコピーし、次のコマンドを使用して CMK を
LKR_MASTER_KEY_ENV
環境変数に保存します(<CMK_value>
は前のコマンドで生成した CMK)。export LKR_MASTER_KEY_ENV=<CMK_value>
CMK を生成してファイルに保存するには、次のコマンドを使用します(
<path_to_key_file>
は、CMK を保存するパスとファイル名)。openssl rand -base64 32 > <path_to_key_file>
CMK ファイルを生成したら、鍵ファイルの権限を現在のユーザーの読み取り専用に設定します。
chmod 0400 <path_to_key_file>
CMK を生成したら、安全で永続的な場所に保管してから続行してください。内部データベースの暗号化後に CMK が失われると、インスタンスが失われる可能性があります。
CMK を生成して保存したら、LKR_MASTER_KEY_ENV
環境変数を設定します。
CMK を環境変数に保存する場合は、
LKR_MASTER_KEY_ENV
環境変数を CMK の値に設定します。export LKR_MASTER_KEY_ENV=<CMK_value>
CMK をファイルに保存する場合は、
LKR_MASTER_KEY_FILE
環境変数を CMK ファイルのパスに設定します。export LKR_MASTER_KEY_FILE=<path_to_key_file>
CMK を生成したら、安全で永続的な場所に保管してから続行してください。内部データベースの暗号化後に CMK が失われると、インスタンスが失われる可能性があります。
Looker アプリケーションをインストールする
グループ
looker
を作成します。sudo groupadd looker
ユーザー
looker
とそのホーム ディレクトリを作成します。sudo useradd -m -g looker looker
looker
ユーザーに切り替えます。Looker を root として実行しないでください。sudo su - looker
ホーム ディレクトリに
looker
サブディレクトリを作成します。mkdir ~/looker
looker
サブディレクトリに移動します。cd ~/looker
正しいディレクトリにいることを確認します。
pwd
ユーザー ディレクトリが
/home
にある場合、このコマンドの出力は/home/looker/looker
になります。Looker JAR ファイルのダウンロードのページに記載されているいずれかの方法で、選択した Looker JAR ファイルをダウンロードします。両方の JAR ファイルが同じバージョンであることを確認します。コア JAR ファイルと依存関係 JAR ファイルのバージョンが異なると、Looker のインストールが不安定になる場合があります。
最新の起動スクリプトは、Looker オープンソース GitHub リポジトリからダウンロードできます。システムの起動時に Looker を実行する場合は、looker_init スクリプトをダウンロードして、
systemd
スクリプト オプションとinit
スクリプト オプションの両方を使用できます。起動スクリプト(
looker
)と Looker JAR ファイル(looker-x.x.x.jar
とlooker-dependencies-x.x.x.jar
。x.x.x
はバージョン番号)を新しい~/looker
ディレクトリに移動します。looker-x.x.x.jar
の名前をlooker.jar
に、looker-dependencies-x.x.x.jar
の名前をlooker-dependencies.jar
に変更します。起動スクリプトによって、Looker に割り当てる Java メモリの量が自動的に決定されます。この値を手動でカスタマイズする場合は、推奨される Java メモリ設定のドキュメント ページをご覧ください。
Looker 起動スクリプトを実行可能にします(権限を
0750
に設定します)。chmod 0750 looker
looker
ユーザーとしてシェルから Looker プロセスを開始します。./looker start
起動フラグのヘルプを表示するには、次のコマンドを使用します。
java -jar looker.jar --help
また、起動コマンドのヘルプについては、次を使用します。
java -jar looker.jar help
ブラウザで
https://hostname:9999
にアクセスします。ここで、hostname
は Looker を実行しているホストの DNS 名です。URL で
https
を使用する必要があります。これにより、バイパスする必要があるセキュリティ警告が作成されます。この警告は、有効な SSL 証明書がサーバーにインストールされるまで表示されます。Looker アナリストから取得したライセンスキーを入力します。
名前、メールアドレス、パスワードを入力して、最初のアカウントを作成します。
DNS レコードを作成する
サーバーの looker.[yourdomain].com
DNS レコードを追加します。この手順は省略可能ですが、行うことをおすすめします。
Looker の自動デプロイ
Looker は、Ansible や Chef などの構成管理ツールを使用してデプロイできます。自動デプロイ用の Ansible ロールの例については、構成管理ツールのドキュメント ページをご覧ください。
ハイパーバイザの調整
Looker は Java 仮想マシンとして動作します。Looker インスタンスが VMware ゲスト上にある場合、パフォーマンスの調整が必要になることがあります。VMware の Java ベスト プラクティス ガイドをご覧ください。
他の仮想化プラットフォームでは、ハイパーバイザから Looker ホストのメモリを予約するとパフォーマンスが向上する場合があります。Amazon EC2 ではパフォーマンスを制御できませんが、その他のベンダーについては、そのベンダーのドキュメントをご覧ください。
オプションの MySQL バックエンド データベースの設定
デフォルトでは、Looker は HyperSQL のインメモリ データベースを使用し、構成やユーザーなどのデータを保存しています。ただし、外部 MySQL データベースを使用して Looker の内部情報を保存できます。MySQL バックエンド データベースの構成と調整については、MySQL への移行ドキュメントをご覧ください。
次のステップ
Looker をインストールしたら、Looker の起動オプションを構成できます。