🐷

Docker環境のwebアプリをGCP化する前に読む記事

2024/06/23に公開

cloud Run / cloud SQL を使ってGCP上にwebアプリをデプロイ

はじめに

最近、Docker環境で作っていたローカルのwebサービスをGCP上にデプロイする機会があり、少しだけGCPについて知識が身についたので、その知識の定着のために記事を書いていこうと思います。
今回、この記事で説明する内容は、DockerからGCPにデプロイするための具体的な手順などではなく、そもそもGCPって何? cloud Runって? cloud SQLって? という私のようなGCPについて何も知らないユーザが大枠を理解するためのものになっています。

GCP って?

「GCP」とはGoogle Cloud Platformの略であり、Googleが提供するサービスをクラウド上で利用できるようにしたものです。このGCP上でGoogleが提供しているサービスが多すぎてGCPについてよくわからなくなってしまうユーザが多いと思うので、GCPとは「一つのサービスではなく、たくさんのサービスをクラウド経由で提供しているもの」というイメージを持つことが重要だと思います。

どんなサービスがあるの?

では、一体どのようなサービスがあるのでしょうか?
ここでは、私が実際に調べたいくつかのサービスに限定して説明します。

・Google Cloud Run
まずは、今回の主役のcloud Runです。このcloud Runというサービスは、自身で作成したコンテナをGoogleが用意したサーバー上で動かすことを可能にしたものです。つまり、ローカル環境でdockerコンテナなどを使用してwebアプリを作成していて、それを公開(本番環境)するのにはもってこいのサービスということになります。

・Google Compute Engine(GCE)
このGCEは、LinuxやWindowsなどの仮想マシン(VM)をクラウド上で提供するサービスです。ここでの仮想マシンとは簡単にサーバーをイメージしていただけたら大丈夫です。このGCEは、IaaSに分類され、次に出てくるGAEよりもインフラの細かいカスタマイズなどができる点がメリットです。

・Google App Engine(GAE)
このGAEは、サーバーレスな環境でアプリの作成・実行・管理を実現するプラットフォームサービスです。先ほどのGCEとの違いはサーバー環境はGoogleが用意しているのでアプリの作成・実行・管理にのみ集中できる点がメリットです。分類としては、PaaSになります。

・Google cloud SQL
上記三つのサービスがアプリを実行するためのサービスだとしたら、このcloud SQLというサービスはDBサーバーを用意するためのサービスになります。ローカル環境でdockerfileなどのdbの欄に対応するサービスだと思ってもらって大丈夫です。

まだまだ、たくさんGCPにはサービスがあるのですが、多くを紹介しすぎても混乱してしまうと思うので、このくらいにしておいて、次は「cloud Run」と「cloud SQL」について詳しく説明していきます。

cloud Run って?

cloud Runとは、Googleのスケーラブルなインフラ上でコンテナを直接実行できるサービスのことです。
スケーラブルというのは、GCPの特徴の一つで、処理量に応じて、使うサーバーなどの大きさをリアルタイムかつ自動でカスタマイズしてくれるようなイメージのものです。
cloud Runには大きく2種類のサービスがあります。それが、cloud Run サービスcloud Run ジョブです。一つずつ説明します。

cloud Run サービス

Cloud Run サービスは、コンテナイメージをデプロイするだけで、コンテナの実行環境とリクエストを受信する HTTPS エンドポイントが提供されます。
これは、リクエストを受けてレスポンスを返す、ウェブサイトや API バックエンドなどのサービスに用いられます。

cloud Run ジョブ

cloud Run ジョブでは、コンテnインスタンスを使用して、ユーザが作成したコードをHTTPリクエスト基点ではないジョブとして実行することができます。これは、つまりリクエストに対して何かしらの返答をレスポンスとして返すようなサービスではなく、バッチ処理などの時間や何かしたの発火を検知してコードを実行するようなサービスに用いられます。

cloud SQL って?

続いて、cloud SQLの説明に移ります。
このcloud SQLというサービスはGoogleが提供するRDBMSサービスです。
対応しているデータベースエンジンは、MySQLとPostgreSQL、Microsoft SQL Serverの三つです。

cloud SQL インスタンス

このcloud SQLには、インスタンスという概念があります。この各Cloud SQL インスタンスは、ホストである Google Cloud サーバー上で実行されている仮想マシン(VM)を利用しています。この仮想マシン(VM)を使っている点では、GCEなどと同じです。

参考資料

さらに詳しい概要を知りたい方は公式ドキュメントも読んでみてください
https://cloud.google.com/docs/overview?hl=ja

https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja

https://cloud.google.com/sql/docs/introduction?hl=ja

Discussion