目次

まえがき
想定読者
ゴール
ソースコード
連絡先
免責事項
表記関係
第1章 Google Cloudの設定
1.1 ドメイン
1.2 Google Cloud
1.3 Cloud DNS
1.4 サービスアカウントとロール
1.5 Workload Identity 連携
1.6 Cloud Storageバケット作成
1.7 SSL証明書作成
1.8 Cloud Load Balancing
1.9 Firestore
第2章 GitHubとアプリケーションの設定
2.1 GitHubリポジトリー
2.2 静的サイト作成
2.3 動的ターゲット作成
第3章 Cloud Storageと組み合わせる
3.1 概要
3.2 ワークフロー作成
3.3 動作確認
第4章 Cloud Runと組み合わせる
4.1 概要
4.2 下準備
4.3 ワークフロー作成
4.4 動作確認
第5章 Google Kubernetes Engineと組み合わせる
5.1 概要
5.2 下準備
5.3 ワークフロー作成
5.4 動作確認
あとがき

まえがき

 この本をお手に取っていただき、ありがとうございます。

 近年、バージョン管理にはGitを利用している場面が多くなり、もはや必要不可欠となってきました。その中でも、リモートリポジトリーの管理にGitHubを採用し、プルリクエスト(以下PR)を利用しているところも増えてきているのではないでしょうか。ただその場合、たとえばWebサイト制作であれば、PRからコードの正当性や処理の妥当性は確認できても、実際に表示したときにどう出るのかわからないという場面は多いかと思います。そのPRの元ブランチに切り替えればよいのですが、いったん手元の作業をstashなどでどこかに置いておく必要があったりと、前準備が必要で少し面倒です。

 そこで本書では、GitHub Actions1を利用して、PRに連動した環境を構築し、内容が環境に反映されて確認できるようにする、という仕組みを構築します。ベースはGoogle Cloudを利用し、Cloud Storageを利用したシンプルなWebサイトの表示を目的とした環境、Cloud RunやGoogle Kubernetes Engineとコンテナを利用して動的なアプリケーションの確認を目的とした環境をそれぞれ構築します。また、それぞれのフロントエンドとしてCloud Load Balancingというロードバランサを利用して、それぞれのバックエンドと連携するよう設定もします。

 今回はあくまで基本的な内容のため、実際に利用する際は、プロジェクトの内容や設定に合わせて色々調整する必要はあります。主にGoogle Cloud側に設定する項目や各種設定ファイルの作成など、初期設定が多く少し大変ではありますが、ぜひ本書を読みながらトライしてみてください。

想定読者

 この本は次の読者を想定しています。

 ・PRの内容をリモートで確認したい

 ・GitHub Actionsの利用例を知りたい

 ・Google Cloudの利用例を知りたい

ゴール

 この本の内容にそって進めることでたどり着く、最終的なゴールは次のとおりです。

 ・Google CloudとGitHub Actionsの連携

 ・Cloud Storageを利用した静的Webサイトのデプロイ

 ・Cloud Run/Google Kubernetes Engineを用いたコンテナベースのアプリケーションデプロイ

ソースコード

 この本の中で使用している各種コードは、次のリポジトリーに公開しています。

 https://github.com/taiko19xx/gcloud-github-actions-book

連絡先

 質問や誤字脱字、誤った内容などがありましたら、次の連絡先へご連絡ください。

 ・メール: hello@taiko19xx.net

 ・Twitter: @taiko19xx

 いただいた情報は確認の上、Twitterや著者のブログにて適時公開します。

 ・ブログ: https://tech.taiko19xx.net/

免責事項

 本書に記載された内容は情報の提供のみを目的としています。したがって、本書を用いた開発および運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発および運用の結果について、著者はいかなる責任も負いません。

表記関係

 本書に記載された会社名や製品名などは、各社の登録商標または商標、商品名です。本文中では©、®、™マークなどは表示していません。

1. https://github.co.jp/features/actions

第1章 Google Cloudの設定

メインとなる設定の前に準備や設定が多数必要となりますので、実施の作業前に、本章でその準備や設定を進めます。

1.1 ドメイン

 まず必要となるものはドメインです。今回は設定先にある程度の法則を持たせるため、Cloud DNSにドメインを紐付けて、サブドメインと各種サービスを紐付けるようGitHub Actionsを作動させます。

 ドメインはNSレコードが設定できれば問題ありませんので、お持ちのドメインのサブドメインでも構いません。もし持っていない場合はfreenom1で各種無料ドメインが獲得できますので、それを利用します。ただし、freenomの場合は登録時点でNSレコードの指定が必要ですので、Cloud DNSの設定後にドメインの獲得を進めます。

図1.1: freenom

1.2 Google Cloud

 次はGoogle Cloudの設定です。Googleアカウントでログインした状態でトップ画面2を表示し、右上の「コンソール」を選択すると、管理画面となるコンソールのトップ画面(ダッシュボード)へ移動します。

図1.2: コンソールへアクセス

 もしGoogle Cloudの利用がないアカウント場合は、トライアルの登録や請求先の入力が表示されるので、画面の指示に従います。初期設定が完了すると、コンソールが表示されます。

図1.3: コンソール(ダッシュボード)

 次に、プロジェクトを作成します。プロジェクトはGoogle Cloudにおける、リソース管理のグループ分けです。初期設定のプロジェクトでも作業は可能ですが、今回は新しく作成します。「Google Cloud」のロゴと検索ボックスの間にある「▼」を選択すると、プロジェクトの選択ダイアログが表示されるので、画面右上の「新しいプロジェクト」を選択します。

図1.4: プロジェクト選択

 新しいプロジェクトの作成画面に推移します。プロジェクト名は「gcp-github-actionsbook」とします。入力すると、その下のプロジェクトIDの値も変化しますので、これをメモしておきます。その他の項目はデフォルトのまま、もしくは必要に応じて設定して、画面下の「作成」を選択します。

図1.5: プロジェクト作成

 少し待つとプロジェクトが作成されますので、「プロジェクトを選択」を選ぶなどし、プロジェクトを切り替えます。画面上にプロジェクト名やIDが表示されれば、切り替えも完了です。

図1.6: プロジェクト作成完了
図1.7: プロジェクト切り替え

1. https://www.freenom.com/

2. https://cloud.google.com/

試し読みはここまでです。
この続きは、製品版でお楽しみください。