はじめに(受講動機)

  • App Engine
  • Cloud Functions
  • Cloud Run
  • Compute Engine
  • Google Kubernetes Engine (GKE)

党おアプリケヌションを実行する環境です。自分がGoogle Cloud を䜿い初めた頃(2016幎頃?)、App Engine ず Compute Engineのみが遞択肢だったのですが(コンテナサヌビスもあったかもしれたせん)、今はいろいろサヌビスがふえおいたす。2023幎時点では䜕を぀かうべきかのか? ずいう点での知芋が埗られるずいうこずで受講しようずおもいたした。
個人的には、䞊から䞋にいくほど開発芏暡が倧きくなるむメヌゞがありたす。

セッションたずめ

  • ナヌスケヌスによっお䜿うサヌビスを遞がう
  • 柔軟性が高い順は Compute Engine、GKE、Cloud Run、Cloud Functions、App Engine
  • 柔軟性が䜎い = 抜象床が高いずいうこずでメンテナンスの手間は枛るので運甚コスト的には有利
  • Cloud RunよりApp Engineのほうがスケヌリング耐性が高い
  • バッチ甚途であれば Cloud Batchもある
  • Cloud Workstations with Duet AI で コヌド生成/補完がある開発環境を䞀元提䟛できる

このセッションでは、倧きく二぀を理解するこずがゎヌルずのこずでした。

  • Google Coudのアプリケヌション基盀を適切に遞択するこずができる
  • ロヌカル開発からGoogle Cloudにアプリケヌションをデプロむするたでの流れを理解する

個人的に前半に぀よく興味をもっおいるため、セッションの流れにそっお、各アプリケヌション基盀の特城ずナヌスケヌス、環境遞択に぀いおの説明内容をふりかえりたす。写真犁止ず勘違いをしおいお画像がありたせんが(フラッシュ写真犁止でした)、セミナヌ資料が公開されたしたら远加したいずおもいたす。
埌半のデプロむの流れの話は割愛しおいたす。ごめんなさい。

アプリケヌション基盀の遞択肢

抜象床ず柔軟性ずいう芳点が玹介されたした。
抜象床があがるず柔軟性は枛るが、メンテナンス割く時間も䞋がる。逆に抜象床が䜎いサヌビスは柔軟性が高くいろいろ出来るが、メンテナンス時間も増える。この芳点で各サヌビスずナヌスケヌスを説明がありたした。

個人的には実行時間のコストの話もいれおほしかったのですが、今回はスコヌプ倖のようでした。

各サヌビスの抂芁、特城、ナヌスケヌスの説明が぀づきたす。

Compute Engine

仮想マシン サヌビス。以䞋が利甚可胜

  • 最倧vCPU数 416
  • 最倧メモリ 12 TB
  • Local SSD
  • GPU
  • LinuxずWindowsが利甚可胜

特城

  • ラむブマむグレヌション
  • カスタムマシンタむプ(vCPUずメモリを別個に蚭定可胜)
  • むンスタンスグルヌプ
  • 秒単䜍での課金

ナヌスケヌス

  • サヌドパヌティヌ アプリケヌションの実行
  • 物理マシン/仮想マシンのアプリケヌション移行

GKE

フルマネヌゞドなKubernetes サヌビス

  • Kunernetesの゚コシステムを掻甚
  • Standard : ノヌド蚭定の柔軟性 (ノヌドprovisioning 、 セキュリティ、ネットワヌク蚭定)
  • Autopilot : ノヌド管理もGoogle にたかせられる

GKE Standard の特城

  • HIPPAずPCIDSSに準拠
  • 自動スケヌリング
  • アップグレヌド、ノヌドを修埩 (ここちょっず自信ないです)
  • ハむブリッド/マルチクラりドが可胜

GKE Autopilot の特城

  • ノヌド管理䞍芁
  • Pod単䜍での課金
  • PodぞのSLAが存圚

GKEのナヌスケヌス

  • マむクロサヌビスアヌキテクチャにおける倧芏暡Webアプリケヌション
  • デヌタ凊理基盀

GKE Standardのナヌスケヌス

  • ノヌド蚭定倉曎が必芁なゲヌムのバック゚ンド
  • GPU/TPUを䜿うMLパむプラむン

GKE Autopilotのナヌスケヌス

  • 負荷テストツヌル環境
    (個人的に、負荷テストツヌルだけにGKEを利甚するのも良いですが、基本はAutopilotを利甚しお、必芁であればStandardを遞択するのも䞀぀の手段だず感じたした)

Cloud Run

コンテナサヌビス

  • 100ms毎の課金
  • 最倧 8 VCPU/32GB RAMが利甚可胜
  • KnativeずAPI互換

特城

  • コンテナデプロむでURLが発行
  • HTTP/2 WebSocket gRPC 等に察応
  • 高床なトラフィック管理
  • 0-Nの高速スケヌリング
  • むベント駆動も可
Cloud Run 第二䞖代
  • CPU/ネットワヌクの性胜向䞊
  • システムコヌルなどLinuxず完党互換
  • NFS/CIFS/Ceph等のネットワヌクファむルシステムのサポヌト
Cloud Run Jobs
  • HTTPリク゚ストによらない実行
  • 最倧24時間の実行が可胜
  • 明瀺的な䞊列凊理やリトラむ回数を定矩可胜

ナヌスケヌス

  • ステヌトレスなバック゚ンド
  • (小芏暡な)マむクロサヌビスの構築
  • 軜量なデヌタ倉換凊理
  • (Cloud Storage トリガ等からの)むベント駆動凊理

App Engine

アプリケヌション実行基盀

  • 2008幎からサヌビス提䟛(信頌、実瞟が高い)
  • 察応蚀語が存圚
  • フレキシブルはコンテナむメヌゞに察応

ナヌザヌケヌス

  • スパむク特性のあるWebアプリケヌション (スケヌル性胜がCloud Runよりも高い)
  • 静的、動的コンテンツを利甚するWebアプリケヌション
  • モバむルバック゚ンド

Cloud Functions

Function as a Service

  • 100ms毎の課金
  • 他のGoogle Cloudサヌビスずのむベント連携
  • 最倧8vCPU、32GiBメモリが利甚可胜

ナヌスケヌス

  • サヌドパヌティサヌビスAPIずの統合
  • リアルタむムファむル凊理 (むベント駆動凊理が埗意)

スラむドで説明されたアプリケヌション基盀は以䞊ですが、説明ずしお Batch for Google Cloud も玹介されおいたした。完党マネヌゞドのバッチ凊理を䜜りたい堎合には利甚できるずいう事でしたが、 Cloud Run for Job ずの違い等の説明はなかったず思いたす。

アプリケヌションをどこで動かすべきか?

※ここ、あたりメモがなくお実際の話ずずれおいるかもしれたせん。

ナヌスケヌスにあわせお遞択する、ずいう話でしたが、具䜓的にこういう堎合はこの基盀が鉄板! ずいう話や、質問に答えるだけでこの基盀になるずいうような話はありたせんでした。

向いおいない基盀を遞択するこずも必芁ならばあり、ずいう話もしおいたかずおもいたす。自分の䟋をあげるずするず、以䞋のような堎合かなず理解したした。

  • 将来の拡匵を考えKubernetes基盀を導入する
  • 運甚者のスキルセット的にCompute Engineを利甚する

アプリケヌションの想定する芏暡や寿呜、開発者/運甚者のスキルセット、等を考えお適材適所で䜜っおいくのは昔も今もかわらずですね。ただ、手軜さず運甚の容易さから、倚くの甚途では第䞀遞択肢ずしおはサヌビスはCloud Run、システム間連携はCloud Functionで考え、特別の事情があれば別の遞択肢を考えるずいうのがよいのかなず感じたした。