1.5. Red Hat build of Keycloak の起動を最適化する
Red Hat build of Keycloak を実稼働環境にデプロイする前に、Red Hat build of Keycloak を最適化して起動を高速化し、メモリー消費量を改善することが推奨されます。このセクションでは、最適なパフォーマンスと実行時の動作を実現するために、Red Hat build of Keycloak の最適化を適用する方法を説明します。
1.5.1. 最適化された Red Hat build of Keycloak ビルドの作成
デフォルトでは、start
または start-dev
コマンドを使用すると、Red Hat build of Keycloak は便宜上、内部で build
コマンドを実行します。
この build
コマンドは、起動時と実行時の動作に対して一連の最適化を実行します。ビルドプロセスには数秒かかる場合があります。特に、Kubernetes や OpenShift などのコンテナー化された環境で Red Hat build of Keycloak を実行する場合、起動時間は重要です。無駄な時間を発生させないために、起動前に build
(CI/CD パイプラインの別のステップなど) を明示的に実行します。
1.5.1.1. 最初のステップ: build を明示的に実行する
build
を実行するには、次のコマンドを入力します。
bin/kc.[sh|bat] build <build-options>
このコマンドは、入力した build options
を表示します。Red Hat build of Keycloak は、build
コマンドの実行時に使用できる ビルドオプション と、サーバーの起動時に使用できる 設定オプション を区別します。
Red Hat build of Keycloak の起動が最適化されていない場合、この区別には意味がありません。ただし、起動前に build を実行する場合、build コマンドではオプションのサブセットしか使用できません。この制限は、最適化された Red Hat build of Keycloak イメージに対して build オプションが永続化されることが原因です。たとえば、db-password
(設定オプション) などの認証情報の設定は、セキュリティー上の理由から永続化することは禁止されています。
すべてのビルドオプションは、プレーンテキストで保持されます。機密データは、ビルドオプションとして保存しないでください。これは、KeyStore Config Source を含む、使用可能なすべての設定ソースに適用されます。したがって、ビルドオプションを Java KeyStore に保存することも推奨されません。設定オプションに関しては、主に機密データの保存に KeyStore Config Source を使用することが推奨されます。機密性のないデータの場合は、残りの設定ソースを使用できます。
ビルドオプションは、All configuration でツールアイコンでマークされます。利用可能なビルドオプションを見つけるには、次のコマンドを入力します。
bin/kc.[sh|bat] build --help
例: 起動前に build
を実行してデータベースを PostgreSQL に設定する
bin/kc.[sh|bat] build --db=postgres
1.5.1.2. 2 番目のステップ: --optimized
を使用して Red Hat build of Keycloak を起動する
ビルドが成功すると、次のコマンドを入力して Red Hat build of Keycloak を起動し、デフォルトの起動動作をオフにできます。
bin/kc.[sh|bat] start --optimized <configuration-options>
--optimized
パラメーターは、Red Hat build of Keycloak に対して、事前にビルドおよび最適化された Red Hat build of Keycloak の使用を前提とするように指示します。その結果、Red Hat build of Keycloak の起動時にビルドの直接確認と実行は行われず、時間が短縮されます。
起動時にすべての設定オプションを入力できます。これらのオプションは、All configuration でツールアイコンが 付いていない オプションです。
-
起動時に、
build
の入力時に使用した値と同じ値のビルドオプションが見つかった場合、--optimized
パラメーターを使用すると、そのオプションは暗黙的に無視されます。 -
そのオプションの値が、ビルドの入力時に使用した値と異なる場合、ログに警告が表示され、以前にビルドした値が使用されます。この値を有効にするには、起動する前に新しい
build
を実行します。
最適化されたビルドを作成する
次の例は、Red Hat build of Keycloak の起動時に、--optimized
パラメーターを使用して最適化されたビルドを作成する方法を示しています。
build コマンドを使用して、PostgreSQL データベースベンダーのビルドオプションを設定します。
bin/kc.[sh|bat] build --db=postgres
conf/keycloak.conf
ファイルで、postgres の実行時設定オプションを設定します。db-url-host=keycloak-postgres db-username=keycloak db-password=change_me hostname=mykeycloak.acme.com https-certificate-file
最適化されたパラメーターでサーバーを起動します。
bin/kc.[sh|bat] start --optimized
build
コマンドを使用すると、起動時と実行時の動作のほとんどを最適化できます。また、keycloak.conf
ファイルを設定ソースとして使用すると、CLI 自体の初期化など、コマンドラインパラメーターが必要となる起動時の一部の手順を回避できます。その結果、サーバーの起動時間がさらに短縮されます。