未分類

GCPの各種サーバレスについてまとめる

2022年9月2日

https://www.topgate.co.jp/saas-paas-iaas#googlesaas

さまざまなGoogleサービス

さまざまなGoogleのサービスはGoogle Cloudであったり、Googleのサーバ上でアプリケーションやソフトウェアとして提供しています。
gmailはGCPのBigTableを用いているというのは有名です。
このように、もうユーザーがそのソフトウェアを利用するだけを、
Software as a Service(SaaS)という。
 

App Engine

アプリケーションを作ったら、それをデプロイすることですぐ使えるというもの。ただメモリは8GBで決まっている。
なので、Cloud RunはコンテナというOSのところから自由に作れるので、App EngineはよりGoogleに管理されているということになる。IaaS(インフラレベル)
App Engineは1プロジェクト1つまで。
そしてリージョンを決めてしまうと、その時点でリージョン変更は不可
以下のようなプランがある。
① Standard
② Frexible

App EngineはメモリやCPUなど決まっている。
そのため、Googleの管理がかなり多い。
なのでPaaS
あくまでデプロイできるのはアプリケーションのみ。

アプリケーションのみこちらはデプロイできて、
それよりも深い、OSやインフラなどのプラットフォームはGoogleが管理する。
これをPaas(Platform as a Service)。

 

Compute Engine

GCE自体にオートスケーリングの機能はない
https://cloud.google.com/compute/docs/autoscaler?hl=ja

GCE単体ではオートスケーリング機能はない

インスタンスグループを用いることでオートスケーリング機能がある
https://cloud.google.com/compute/docs/autoscaler?hl=ja

Compute Engineは、アプリケーションだけではなく、自分たちでメモリやOS、ディスク、さらに言えばネットワーキング、ドメイン、Ipアドレス、など細かいところまで自由にカスタマイズができる。
どんなプログラミングを入れるかだって可能。
これをInfrastructure as a Service(IaaS)

※ なんか、PlatformとInfraって言うと、Infraの方が広義か、、PlatformってGoogleの提供するプラットフォームとかいったりして、インフラって交通インフラとか世の中全体だから?

Cloud Run

Cloud Runはあくまで常に起動されている状態ではなく、
トリガーとしてエンドポイントにリクエストが来たら1時間のみその処理を行う。
つまり
リクエストを投げて処理実行させるが、その間にFBの処理などをしないと1時間で処理が落ちる。
その後再度リクエスト投げればいいじゃんって思うけどw

コストは? → Cloud Run はコンテナインスタンスでリクエストが処理される間のみ料金が発生します。
ロードバランサーは?
オートスケーリングは? → Cloud Run では、デプロイされたサービスはリクエスト数に応じて自動スケーリングされます。アクセスがない場合はコンテナのインスタンスはゼロとなり、リソースを使用しません。
サーバレス?

コンテナつまりdocker Imageでそのパッケージでまとめられているからこそ、つまり1つのファイルみたいなものでまとめられているからこそ、オートスケーリングが可能になる。
そうでないとバラバラだからすぐスケーリングしても高速ではできなくなる。
(だからGCEも単体ではできず、インスタンスグループつまりこれはイメージ化しているので1つのファイルになるので、高速なオートスケーリング、ロードバランサー対応が可能)

Cloud Functions

サーバレス。
オートスケーリングはなし
サーバレス実行は無料枠で1日1000回まで。それ以降は従量課金
こちらはトリガーなど色々あるが、あくまでコードを実行。(Cloud Runはコンテナ+プログラムを実行)
Cloud Functionsはプログラミング言語は制約があるが、Cloud RUnはない。だってコンテナ(OSやプログラムのexeなど)をカスタマイズした上でなので、自由度高い。
メモリは最大8GBまで。
Cloud Functionsは以下の構成で課金される。
① リクエスト数(最初の200万回/月)
② サーバの処理実行時間
③ ネットワーキング(同じリージョン内での転送であれば無料)

Cloud Functionsって無料っていうイメージがついていたんですが、実はそうでもなかったんですね笑
https://cloud.google.com/functions/pricing?hl=ja

Cloud Functionsのプログラム、実際プログラムを設定するけど、
これってどこに保存されてるの?
そうです!保存されてるので、実はその保存料金もかかってます。データベース占領してるので。
Container Registerと、Artfact Registryに保存される。
Container Registerは無料枠がないので、デプロイ後に少し料金発生する。
Artifact Registeryは無料枠があるので、それを越えない限りはOK

Source Repositoryに保存してそこを参照している場合どうなる?
Source Reposirtoyに保存してるが、そのSource Repositoryを使用している代金と、そのSource RepositrpyがContainer Register機能を使って保存してるのであれば、そこも発生するよね。

Cloud FunctionsはFaaS

 

Cloud Run on GKE

GKEはCloud Run on GKEと言われるように、Cloud Run前提の上でのもの
なのでGKEはCloud Runの上位互換で、プラス機能がついたイメージです。

Cloud Runではメモリやスペックなどを決めることができないらしい。。。(そうか、、コンテナ基盤だからOSとかはコンテナ内で定義できるけど、メモリなどのスペックは確かに定義できないんか)
しかしGKEではそれができる。

Cloud Run と GKE はどちらもコンテナ実行環境を提供するサービスですが GKE は「高度なコンテナオーケストレーションを実現できるサービス」、 Cloud Run は「コンテナをサーバレスで容易に実行することができるサービス」という位置づけです。

GKEは2種類あり、

Cloud Run で設定できるコンテナスペック
● CPU
○ デフォルト 1vCPU
○ 変更可、1vCPU, 2vCPU, 4vCPU から選択
○ 4vCPU 䛾場合䛿メモリを 2GB 以上選択する必要あり
● メモリ
○ デフォルト 256 MB
○ 変更可、最小 128 MB 〜 最大 8 GB

-未分類

© 2022 Yosshi Blog Powered by AFFINGER5