Google Cloud Platformへのデプロイ
JHipsterアプリケーションをGoogle Cloud Platformにデプロイして、次の環境で実行できます。
- Google Compute Engineを搭載した仮想マシン
- Google Kubernetes Engineを使用したKubernetesのコンテナ
- Google App Engineを使ったPlatform as a Service
アプリケーションをデプロイするには、Google Cloud Platform無料試用版を入手できます。無料試用中および無料試用の終了後に、Always Freeティアで指定された使用制限までの無料使用を確認してください。
始める前に
gcloud
にCLIでアクセスするには、ローカル環境にgcloud SDKをインストールして認証します。詳細については、次のリンクを参照してください。
Google Kubernetes Engineへのデプロイ
Google Kubernetes Engineは、完全に管理されたKubernetesクラスタ・アズ・ア・サービスです。プロビジョニングされたコンテナとJHipsterアプリケーションを、標準のKubernetesコマンドを使用してデプロイできます。
- APIの有効化:
gcloud services enable container.googleapis.com containerregistry.googleapis.com
kubectl
CLIがまだインストールされていない場合はインストールします:gcloud components install kubectl
- 新しいGoogle Kubernetes Engineクラスタを作成します:
gcloud container clusters create mycluster --zone us-central1-a --machine-type n1-standard-4
その他のオプションについては、GCPのゾーンおよびマシンタイプを参照してください。
クラスタが作成されると、JHipster Kubernetesジェネレータを使用してデプロイメント記述子を生成できます。
- Kubernetesデプロイメントファイルの生成:
jhipster kubernetes
- Google Container Registryを使用してプライベート・レジストリにコンテナ・イメージを公開する場合:
- What should we use for the base Docker repository name(ベースのDockerリポジトリ名には何を使用すべきか)には、
gcr.io/YOUR_PROJECT_ID
を設定します。
コンテナイメージを構築します。
- Google Container Registryを使用する場合は、ローカルのDockerデーモンなしでレジストリに直接ビルドできます:
./mvnw package -Pprod jib:build
- それ以外の場合は、Dockerデーモンにビルドします:
./mvnw package -Pprod jib:dockerBuild
Kubernetesクラスタへデプロイします。
- Kubernetes設定を適 用します:
./kubectl-apply.sh
Kubernetesジェネレータの全機能については、Kubernetesへのデプロイを参照してください。
HTTPSを有効にする
クラスタでHTTPSを有効にするには、Ray Tsang氏の外部のロードバランシングのドキュメントを参照してください。
HTTPSの使用を強制するには、次の設定をSecurityConfiguration.java
に追加します。
// Spring MVC
http.requiresChannel(channel -> channel
.requestMatchers(r -> r.getHeader("X-Forwarded-Proto") != null).requiresSecure());
// WebFlux
http.redirectToHttps(redirect -> redirect
.httpsRedirectWhen(e -> e.getRequest().getHeaders().containsKey("X-Forwarded-Proto")));