📛

Cloud Run Integration を使って外部アプリケーション ロードバランサとカスタム ドメインをかんたんに設定する

2023/12/02に公開

2023年は「Cloud Run を触って覚える」をテーマとした一人アドベントカレンダーを一人で開催しており、Cloud Run のさまざまな機能や、Cloud Run でよく使う構成などを実際の使い方と一緒にご紹介しています。

https://qiita.com/advent-calendar/2023/cloud-run

2日目は今年プレビューでリリースされている、Cloud Run Integration の外部アプリケーション ロードバランサおよびカスタム ドメインをかんたんに設定できる機能についてご紹介します。

Cloud Run の概要は技術評論社さまのブログ「gihyo.jp」に寄稿した記事で解説していますのでこちらもぜひご覧ください。

https://gihyo.jp/article/2023/10/modern-app-development-on-google-cloud-03

Cloud Run Integrations とは

Cloud Run Integrations (またはインテグレーション、統合機能) は Cloud Run と他の Google Cloud サービスの接続を簡単に設定できる機能です。

例えば今回取り上げる外部アプリケーション ロードバランサなど、Cloud Run と他の Google Cloud サービスを接続することはこれまでも可能でした。しかし設定項目や作成するリソースが多いため、手間がかかることが多かったです。Cloud Run Integrations は設定などをある程度自動化することができ、そのような手間をかなり削減することができます。

https://cloud.google.com/run/docs/integrate?hl=ja

Cloud Run Integrations は 2023 年 12 月時点ではプレビューとして提供しており、下記の機能をサポートしています。今後もリリース予定なので、ぜひチェックしてみてください。

グローバル外部アプリケーション ロードバランサをかんたんに設定できる

グローバル外部アプリケーション ロードバランサを構成する場合、いくつかのリソースを作成する必要があります。

Cloud Run アプリケーション用の外部アプリケーション ロードバランサのアーキテクチャ

これまではグローバル外部アプリケーション ロードバランサのコンソール画面からこれらを順々に設定する必要がありました(こちら の手順が必要です)。例えばフロントエンドのリソースを作成するステップでは、まず名前を付けて、HTTP にするか HTTPS にするか、IPv4 にするか IPv6 にするか…などといった設定を行う必要があります。またリソースの設定によって画面が分かれているので、複数の画面にわたって設定を行う必要があります。

これらのリソースの設定があるからこそ、要件にあわせた柔軟なカスタマイズが可能になっています。しかし Cloud Run サービスにルーティングするといったごくシンプルな構成を取りたい場合は、機械的に設定する項目が多く、単純に手間がかかっていました。

Cloud Run Integrations を使うと、機械的にそういった手間をかける必要なくクイックに作成できます。また作成したリソースはブラックボックスになるわけではなく、各画面からリソースにアクセスできます。そのため一旦グローバル外部アプリケーション ロードバランサのデファクト構成を作りつつ、細かな設定は個別に行うといった使い分けも可能です。

ドメインを準備する

Cloud Run Integrations で設定する外部アプリケーション ロードバランサはドメインを設定する必要があるので、まずはドメインを用意します。

Google Cloud には Cloud Domains というドメイン サービスがありますので、今回はこちらを使って予めドメインを取得しておきます。DNS は Cloud DNS を推奨していますが、独自のネームサーバーを使うこともできます。

ドメインを準備する

外部アプリケーション ロードバランサを設定する

Cloud Run サービスは予め作成している前提で進めます。かんたんな Next.js アプリケーションのデプロイ手順は次のブログで紹介していますので、こちらを参考に作成してください。

https://zenn.dev/google_cloud_jp/articles/nextjs-on-cloudrun

ちなみにもっとクイックに用意したい場合はサンプルコンテナのデプロイがおすすめです。数秒でサービスが作成できます。

サンプルコンテナのデプロイ

サービス一覧から対象のサービス名をクリックし、サービスの詳細ページに移動します。

サービス一覧

[統合] のタブを開き [インテグレーションを追加] をクリックします。

インテグレーションの追加

[カスタム ドメイン - Google Cloud Load Balancing] を選びます。

カスタム ドメインの追加

前の項で用意したドメインを指定します。なお、ここの設定で複数の Cloud Run サービスにルーティングする設定もできます。

ルーティングの設定

外部アプリケーション ロードバランサの設定に必要なまだ有効化されていない API がある場合、一覧されます。[有効にする] をクリックすると、まとめて有効化できます。

必要な API の有効化

Cloud Run Integrations によって作成されるリソースが一覧されるので確認します。[SUBMIT] をクリックすると、これらのリソースを自動的に作成していきます。

作成されるリソースの確認

作成されるまで数分 ~ 数時間かかりますので、コーヒーを淹れたりしながら待ちます☕️ 作成が無事完了すると、DNS レコードに設定すべきグローバル IP が払い出されますので、DNS に A レコードとして設定します。

実際にドメインにアクセスしてみると、アプリケーションを開けるようになっていることが確認できました。

疎通確認

Cloud Load Balancing のコンソール画面を開いてみると、Cloud Run Integrations によって作成された外部アプリケーション ロードバランサが確認できます。ここから追加の設定を行うこともできます。

作成された外部アプリケーション ロードバランサの確認

まとめ

Cloud Run に外部アプリケーション ロードバランサを設定した経験のある方は、Cloud Run Integrations によってどれほど楽になっているかが一目でお分かりいただけたかと思います。

もちろん細やかな設定は個別に行う必要がありますが、まずはクイックに設定したい場合はめちゃめちゃ有用ですのでぜひ活用してください。

Google Cloud Japan

Discussion