9 チャプター
70 課題

コース概要

Google Cloud 実践コースでは、基礎コースで構築した Cloud Run ベースのインフラを土台に、商用利用を見据えた本格的な構成へと進化させていきます。

基礎コースの次のステップとして、バッチ処理、非同期処理、踏み台サーバー、静的コンテンツ配信、WAF、自動デプロイパイプラインといった、実務で求められる構成を一つずつ構築していきます。Cloud Run を中心に、開発から運用まで必要な知識を網羅的に身につけることができます。

このコースをクリアすれば、Cloud Run をベースとしたアプリケーションの開発・運用で困ることはほとんどなくなるはずです。

Cloud Scheduler によるバッチ処理

Cloud Scheduler から Cloud Run ジョブを起動する構成でバッチ処理を実現していきます。ただ構築するだけでなく、Google Cloud でバッチ処理を実現する際の手法やそれぞれのメリット・デメリットについても解説しながら、設計力も鍛えていきます。さらに、Cloud Scheduler を扱う上で非常に重要なリトライ設計についても深く学んでいきます。


Cloud Tasks による非同期処理

非同期処理については Cloud Tasks で行います。Google Cloud で非同期処理を実装する場合、Cloud Tasks と Pub/Sub という2つの選択肢がありますが、この使い分けは非常に難しいポイントです。そのため、これらの選定基準についても深く解説していきます。

構成としては、API用の Cloud Run から Cloud Tasks にタスクを作成し、Cloud Tasks から Worker 用の Cloud Run に HTTP リクエストを送信する形です。これに付随して、Cloud Run の認証やネットワーキングの設定についても詳しく扱っていきます。

さらに、非同期処理においては、バックエンドとインフラをシームレスにつなげるための知識が必要です。設計をする際のディレクトリ構成やクリーンアーキテクチャの話も多数登場します。インフラだけではなくバックエンドの知識が一気に身につくチャプターとなっています。


Cloud Run 深掘り道場

Cloud Run のネットワーキング、認証、スケーリングを中心に深掘りしていきます。さらにコールドスタート対策、コスト最適化、Cloud Run の環境変数が揺れる問題への対応など、実務で効いてくるポイントについても解説していきます。

このチャプターを通して、これまで雰囲気で理解していた Cloud Run の奥深い部分がしっかり腹落ちし、「Cloud Run なら任せてください」と自信を持って扱える状態になるはずです。

GCE による踏み台サーバの構築

GCE による踏み台サーバーを構築し、Cloud SQL の中身をセキュアに閲覧する基盤を作っていきます。踏み台サーバーを構築することによって、プライベート IP アドレスしか持たない Cloud SQL に対しても、ローカルの DB クライアントツールからポートフォワーディングを通して中身を閲覧できるようになります。

ただの構築作業ではなく、ネットワークについてさらに理解を深められる非常に良いテーマとなっています。


Cloud CDN、GCS による静的コンテンツの配信

Cloud CDN と GCS を組み合わせて、キャッシュを活用した配信基盤を実現します。AWS とは一味違い、GCLB(ロードバランサー)の後ろに CDN やストレージが来るという非常に癖の強い構成ですが、丁寧に解説していきます。

後半では、静的コンテンツの閲覧制限をかけるための手法や CORS 関連の話など、実務に直結する深い内容も扱っていきます。


Cloud Armor によりアプリケーションへの攻撃をブロックする

Google Cloud のマネージド WAF である Cloud Armor を GCLB に紐付け、IP アドレスブロックや SQL インジェクションへの対策など、実務で頻出の内容を扱っていきます。

WAF は導入自体はそれほど難しくありませんが、誤ブロックを避けつつ攻撃だけを正しく遮断するというバランスを取るのが非常に難しいポイントです。そのため、このチャプターでは特にこの点に力を入れて解説しました。


Cloud Build による自動デプロイパイプラインの構築

最後は、Cloud Build による自動デプロイパイプラインの構築まで行います。GitHub Actions vs Cloud Build の選定基準、Cloud Deploy と組み合わせるか Cloud Build 単体で完結させるか、モノレポ・複数マイクロサービス構成の場合のトリガー配置戦略など、設計面に力を入れて作成しました。

「なぜこの構成にするのか」という判断の流れを重視し、楽しく構築しながら設計力も鍛えられるチャプターになっています。


学習ポイント

  • Cloud Scheduler × Cloud Run ジョブによるバッチ処理とリトライ設計
  • Cloud Tasks による非同期処理(Cloud Tasks vs Pub/Sub の選定基準)
  • Cloud Run 深掘り道場(ネットワーキング / 認証 / スケーリング / コールドスタート対策)
  • GCE による踏み台サーバ構築 & ポートフォワーディングによる Cloud SQL 接続
  • Cloud CDN + GCS による静的コンテンツ配信基盤の構築
  • Cloud Armor(WAF)による IP ブロック・SQL インジェクション対策
  • Cloud Build による自動デプロイパイプラインの設計と構築
  • クリーンアーキテクチャを活用したバックエンド設計

構成図

Google Cloud 実践コース 構成図
Ch.01 Google Cloud 実践コースのオンボーディング
01 Google Cloud 実践コースの全体像を把握する
02 Google Cloud 実践コースにかかるコストと突破しておくべきコースについて
Ch.02 Cloud Schedulerによりバッチ処理を行う
01 Google Cloud でバッチ処理を実行する手札を知る
02 Cloud Scheduler × Cloud Runジョブによりバッチ処理を実行する全体像を知る
03 バッチ処理用のCloud Runジョブを作成する
04 Cloud Scheduler用のサービスアカウントを作成する
05 Cloud Scheduler ワークスペース同期ジョブを作成する
06 Cloud Scheduler ユーザー同期ジョブを作成する
07 【深掘り】Cloud Schedulerのリトライ設計を完全に理解する
08 【コスト削減】Cloud SchedulerによりCloud SQLの自動停止を行う
09 【任意】Cloud Scheduler × Cloud RunジョブをTerraform化する
10 Cloud Scheduler × Cloud Runジョブの理解度チェック問題
Ch.03 Cloud Tasks により非同期処理を実現する
01 Google Cloudにおける非同期処理 Cloud Tasks vs Pub/Sub
02 【動画】Cloud Tasksにより非同期処理を実行する全体像を把握する
03 【動画】Cloud Runの非同期処理基盤におけるインフラ、バックエンドの設計
04 【動画】クリーンアーキテクチャの威力!Infra層を入れ替えるだけで SQS から Cloud Tasks に切り替えられる話
05 Cloud Tasksのキューを作成する
06 ローカル環境からCloud Tasksのキューにタスクを作成する
07 非同期処理 Worker用のCloud Runを作成する
08 ローカルAPI → Cloud Tasks → Cloud Run (Worker) を疎通させる
09 Cloud Run (API) → Cloud Tasks → Cloud Run (Worker) を疎通させる
10 Worker用のCloud Runをセキュアな設定に仕上げる
11 Cloud Tasksのリトライ回数を監視して異常に気づけるようにする
12 【任意】Cloud TasksをTerraform化する
Ch.04 Cloud Run 深掘り道場
01 Cloud Run 深掘り道場とは?
02 【深掘り】Cloud Runのネットワーキングと認証を完全に理解する
03 Cloud Runによるマイクロサービス構成のネットワーク・認証設計
04 Cloud Runのスケーリング設計の基本を理解する
05 Cloud Runのコールドスタート対策とコスト最適化
06 【動画】Cloud Runの環境変数が揺れる問題をTerraformで解決する
Ch.05 GCEにより踏み台サーバを構築する
01 GCEにより踏み台サーバを構築する全体像を把握する
02 踏み台サーバ用のサービスアカウントを作成する
03 踏み台サーバとなるGCEインスタンスを作成する
04 【コスト削減】Cloud Schedulerにより踏み台サーバの自動停止を行う
05 踏み台サーバ用のファイアーウォールルールを作成し、SSH接続を行う
06 踏み台サーバからCloud SQLへpsqlコマンドで接続する
07 GCEの起動スクプリトによりCloud SQL Auth Proxyを自動的に立ち上げる
08 踏み台サーバ経由でポートフォワーディングを行い、ローカル環境からDBへ接続する
09 GCEによる踏み台サーバ構築の理解度チェック問題
10 【任意】GCEをTerraform化する
Ch.06 Cloud CDN、GCSにより静的コンテンツの配信基盤を構築する
01 Cloud CDN、GCSにより静的コンテンツを配信する全体像を把握する
02 静的コンテンツを配信するGCS バケットを作成する
03 GCLBのバックエンドバケットを作成する
04 静的コンテンツ配信用のルーティングルールを作成する
05 カスタムドメインで静的コンテンツを閲覧する
06 Cloud CDNのキャッシュをパージして変更を反映させる
07 GCSの静的コンテンツに閲覧制限をかける3つの手札
08 【コラム】1年間塩漬けになっていたCORSエラーを解消した話
09 【任意】Cloud CDN、GCS関連リソースをTerraform化する
Ch.07 Cloud Armor (WAF) によりアプリケーションへの攻撃をブロックする
01 Cloud Armor 入門
02 Cloud Armorのポリシーを作成する
03 Cloud Armorにより特定のIPアドレスをブロックする
04 Cloud ArmorによりSQLインジェクションをブロックする
05 【総括】 実務でCloud Armorを入れる際、最低限押さえておくべきポイント
06 Cloud ArmorをTerraform化してお掃除する
Ch.08 Cloud Buildにより自動デプロイパイプラインを構築する
01 Cloud Build 入門
02 Cloud Buildによる自動デプロイの全体像を知る
03 Cloud Buildによる自動デプロイを設計する
04 自分のGitHubアカウントにcloud-pratica-backendの最新コードをforkする
05 まずはローカル環境からCloud Runの手動デプロイをやってみる
06 Developer Connectを設定して、GitHubリポジトリと連携する
07 Cloud Build用のサービスアカウントを作成する
08 Slack Metrics用 cloudbuild.yml を徹底解説
09 Slack Metrics用のCloud Buildのトリガーを作成する
10 GitHubリポジトリにpushして、Cloud Runのデプロイを行う
11 【実践】db-migrator用の自動デプロイを構築する
12 【実務】DBマイグレーション → マイクロサービスのデプロイの順番を保証する方法
13 Cloud BuildによるCloud Runの自動デプロイの理解度チェック問題
14 【任意】Cloud BuildのトリガーをTerraform化する
Ch.09 Google Cloud 実践コース ラップアップ編
01 Google Cloud 実践コースの最終課題を提出する