このページでは、顧客がホストするデプロイ用に Looker アプリケーションをインストールする方法について説明します。
Looker アプリケーションのホストは、データの場所とは関係ありません。データは常にデータベースに保持され、Looker インスタンスにコピーされることはありません。
デプロイの仕様
インターネットに接続されていないネットワークで Looker を実行する場合、Looker のライセンス サーバーと通信するプロキシ サーバーを設定するか、BigQuery などのウェブ呼び出しのみを行うサーバーレス ウェブサービスを使用する必要があります。
Looker アプリケーションを次の最小要件を満たす専用マシンにインストールします。
- 1.2 GHz CPU。Looker では 2 つ以上のコアを推奨します。
- 8 GB の空き RAM。
- 10 GB の空き容量。
- スワップ ファイルの容量は 2 GB です。
- Linux。Looker 内部のホスティングには Ubuntu Linux(LTS リリース)を使用しています。Linux を好まないお客様におすすめします。ただし、Looker は RedHat、CentOS、Amazon Linux など、すべての主要な Linux ディストリビューションの Looker でサポートされています。
- Java OpenJDK 11.0.12 以降、OpenJDK 8.0.181 以降、または 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 を 1, 500 に設定する必要があります。この設定の詳細については、こちらの Amazon Web Services 記事のインスタンスの MTU の構成をご覧ください。データベース接続テスト中に Looker が 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
ユーザーの4096
以上の ulimit。これを行うには、/etc/security/limits.conf
に次の行を追加します。looker soft nofile 4096 looker hard nofile 4096
NTP または同等の時間による同期。
/tmp
フォルダは、noexec オプションを指定してマウントしないでください。looker
ホーム ディレクトリは、NFS ボリュームにマウントしないでください。サーバーのタイムゾーンを UTC に設定することをおすすめしますが、必須ではありません。
Git 1.8 以降が必要です。Git の最新の安定版は必須ではありませんが、Git の問題のトラブルシューティングに役立ちます。
Netcat は必須ではありませんが、ネットワーク接続の問題のトラブルシューティングに役立ちます。たとえば、Ubuntu ベースのサーバーに Netcat をインストールする場合、一般的なコマンドは次のとおりです。
sudo apt-get install netcat
必要に応じて、プロキシ サーバーを設定して HTTP(S) リクエストを処理し、Looker がローカルホスト上で 'core' に対して実行できるようにします。Looker のローカル プロキシ サーバーと通信するには、
lookerstart.cfg
に特別な引数を追加する必要があります。プロキシを経由せずに Looker のローカルホストへのアクセスを有効にするには、http.nonProxyHosts=localhost
を追加します。この接続を作成する方法の例は、ウェブプロキシ コミュニティを介して Looker を BigQuery に接続するを参照してください。
メンテナンスやリソースの競合を避けるために、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 が暗号化するデータの詳細なリストを確認するには、Looker アカウント マネージャーにお問い合わせいただくか、Looker のヘルプセンターで [お問い合わせ] をクリックしてサポート リクエストを開いてください。
データは一意のデータ鍵を使用して暗号化されます。また、検証が確実に行われるように、署名済みのバージョン付き暗号化エンベロープが含まれます。このモードでは、外部のカスタマー マスター キー(CMK)を使用する必要があります。CMK は、鍵暗号鍵(KEK)の導出、暗号化、復号に使用されます。鍵暗号鍵は、データ鍵の導出、暗号化、復号に使用します。
暗号化は Looker の内部データベースとキャッシュにのみ使用されます。お客様のデータベースは、Looker の暗号化の影響を一切受けません。また、この方法で暗号化されるのは静的データ(ディスクに保存されているデータ)のみです。
顧客がホストするインストールでは、独自の AWS KMS アカウントまたは独自のカスタム鍵管理システムを使用できます。すべてのデータキーと KEK は暗号化され、お客様がホストする Looker インストールの内部で使用されます。AWS KMS を使用していない場合は、外部 CMK を安全かつ永続的な場所に保管する必要があります。内部データベースを暗号化した後に CMK が失われると、インスタンスが失われる可能性があります。
AWS KMS を使用している場合
AWS KMS を使用している場合は、AWS Management Console または 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 はデフォルトの暗号化コンテキストである文字列 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
ユーザーに切り替えます。root として Looker を実行しないでください。sudo su - looker
ホーム ディレクトリに
looker
サブディレクトリを作成します。mkdir ~/looker
looker
サブディレクトリに移動します。cd ~/looker
正しいディレクトリにいることを確認します。
pwd
ユーザー ディレクトリが
/home
の下にある場合、このコマンドの出力は/home/looker/looker
になります。Looker JAR ファイルをダウンロードするのドキュメント ページにあるいずれかの方法を使用して、目的の Looker JAR ファイルをダウンロードします。両方の JAR ファイルが同じバージョンであることを確認します。コア JAR ファイルと依存関係の JAR ファイルのバージョンが異なる場合、Looker のインストールで不安定になることがあります。
こちらの GitHub リポジトリから最新の起動スクリプトをダウンロードします。Looker をシステム起動時に実行する場合は、
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 のスタートアップ オプションを構成できます。