Google Kubernetes EngineとArtifact RegistryでQGIS Serverを構築してみた




Google Kubernetes EngineとArtifact RegistryでQGIS Serverを構築してみました

KubernetesをベースとしたGCPのマネージドサービスである、Google Kubernetes EngineとGoogle Container Registryの進化版のArtifact Registryを利用し、QGIS Serverを構築してみました!


Artifact Registryの設定

はじめに、Artifact RegistryでDockerイメージを登録します。


GCPコンソールでArtifact Registryに移動し「リポジトリを作成」をクリックします。

リポジトリ名・形式・リージョン・暗号化を設定します。リポジトリ名は任意で形式はDockerとします。プレビュー版ですがnpmも登録できるようです。

リポジトリが作成されたのを確認します。

次に、GCPコンソールで別途Cloud Shellを起動します。

認証設定をします。

gcloud auth configure-docker asia-northeast1-docker.pkg.dev

登録したいDockerイメージをpullします。今回はQGIS ServerのDockerイメージ「camptocamp/qgis-server」を利用します。

docker pull camptocamp/qgis-server

イメージにレジストリ名をタグ付けします。

docker tag camptocamp/qgis-server \
asia-northeast1-docker.pkg.dev/プロジェクトID/sample-docker/qgis-server-image

イメージをArtifact Registryにpushします。

docker push asia-northeast1-docker.pkg.dev/プロジェクトID/sample-docker/qgis-server-image

リポジトリの中にDockerイメージが登録されているのを確認できます。

これでArtifact Registryの設定は完了になります


Google Kubernetes Engine (GKE)の設定

最後に、Artifact Registryに登録したDockerイメージをGKEにデプロイします。


「GKEにデプロイする」をクリックします。

既存のコンテナイメージをそのまま選択し「続行」をクリックします。

アプリケーション名とゾーンを任意で設定し「デプロイ」をクリックします。

デプロイされるまで5分くらい待ちます。

正常にデプロイされているのが確認できたら、「公開する」をクリックします。

公開設定をします。今回はこのままの設定で「公開」をクリックします。

公開されると、Serviceの詳細に外部エンドポイントが表示されるのでブラウザでアクセスしてみます。

公開されたURLで、QGIS Serverが起動されているのを確認できました。


Google Kubernetes EngineとArtifact RegistryでQGIS Serverを構築できました

本番環境用に詳細設定をする場合は、kubectl CLIを利用したり自動化したりの設定をしていくことになりますが、今回は例が少ないArtifact Registryを利用しGCPコンソールでデプロイまでをトライしてみました!

QGIS Serverについても、デフォルトだとプロジェクトファイルが設定されていないので、設定するように独自のDockerイメージを構築する必要があります。

また、今回の用途だとGoogle Cloud Runのほうがシンプルにデプロイできると思うので、こちらも今後トライしてみたいと思います


やってみたシリーズ
tags - Try
Serverless FrameworkでNode.jsのサーバーレスAPIをGCPにデプロイしてみた
QGISとCloud SQLのPostgreSQL&PostGISを利用してジオデータを表示してみた
BigQuery GISとFlaskとMapbox GL JSを組み合わせて可視化してみた