LoginSignup
8
5

More than 3 years have passed since last update.

Cloud RunとCloud Build で激安超簡単、月額10円・10分で出来るSSL/TLS独自ドメインWebサーバー構築

Last updated at Posted at 2020-10-15

概要

Google Cloud Platform(以下GCP)のCloud Runを使って、独自ドメイン https:// 付きWebサーバを立てます。
Cloud Runは従量課金のPaaSで、無料枠もあり、アクセスの少ないサイトなら無料で公開できます。さらにManaged SSL証明書も無料で使えます。
HTML/CSSソースはGitHubに保存し、Commitをトリガーに自動デプロイを仕掛けます。
Cloud Run(フルマネージド)の料金

用意するもの

  • クレジットカード - ドメインを購入したりGCPの課金を有効化する際に使います。
  • Google Account - gmailアカウントでOK
  • GitHub Account

手順

ドメイン取得

お名前.comにて、.workドメインが1円セールだったので、foobarbar.work ドメインを取得しました。
image.png

GitHubリポジトリ初期化

取得したドメインと同じリポジトリを初期化。.gitingore とかはお使いの言語に合わせて適宜追加してください。
image.png

local Git 初期化

というかクローン。

PS D:\Projects> git clone git@github.com:standardsystem/foobarbar.work.git
Cloning into 'foobarbar.work'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
PS D:\Projects> cd .\foobarbar.work\
PS D:\Projects\foobarbar.work> ls

    Directory: D:\Projects\foobarbar.work

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2020/10/15    21:36             40 README.md

PS D:\Projects\foobarbar.work> git branch
* main
PS D:\Projects\foobarbar.work>             

HTML投入

こちらからテンプレート頂きました。
https://colorlib.com/wp/template/mosh/

Dockerfile 追加

Cloud Run>ドキュメント>クイックスタート: ビルドとデプロイ から、Dockerfileのサンプルを持ってきます。COPYの所だけ、index.php から . へ変更。

Dockerfile
# Use the official PHP 7.3 image.
# https://hub.docker.com/_/php
FROM php:7.3-apache

# Copy local code to the container image.
COPY . /var/www/html/

# Use the PORT environment variable in Apache configuration files.
RUN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

# Configure PHP for development.
# Switch to the production php.ini for production operations.
# RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
# https://hub.docker.com/_/php#configuration
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

.dockerignoreも追加。

.dockerignore
Dockerfile
README.md
vendor

Commit & Push

git add .
git commit -m 'First commit'
git push origin main

GCP Project 作成

https://console.cloud.google.com/ で新しいプロジェクトを作成します。
image.png

Cloud Run サービスの作成とCloud Buildの構成

メニューからCloud Runを選択、サービスの作成をクリックします。
image.png
フルマネージド、リージョンはTokyo。サービス名を入力し、未認証許可を選択。
image.png
「ソース リポジトリから新しいリビジョンを継続的にデプロイする」を選択。
image.png
「SET UP WITH CLOUD BUILD」をクリックし、2つのAPIを有効化します。
image.png

リポジトリを選択。
image.png
ブランチとビルド方法を選択。「作成」ボタンをクリックすると、Cloud Buildによりビルドが開始します。
image.png
image.png

テスト

Cloud Run機能に戻るとサービスができてます。
image.png
サービス名をクリックして詳細を表示するとURLが記載されているのでクリックします。
image.png
サイトができました。
image.png

独自ドメインの設定

カスタムドメインを管理。
image.png
マッピングを追加。
image.png
サービスを選択し、verify a new domain... で取得したドメインを入力。
image.png

image.png
ウェブマスターセントラルの指示に従い、TXTレコードをDNSに追加します。
image.png
追加したら数分待ち、ウェブマスターセントラルに戻って「確認」をクリックします。
image.png
マッピングの追加に戻り、ドメインを選択します。
image.png
表示されたDNSレコードを対象ドメインのゾーンレコードに追加します。
image.png
ドメインマッピングに戻り、ホスト名をクリックします。DNS浸透まで相応の時間がかかります。のんびり待ちましょう。
image.png

https://foobarbar.work/ が公開されました。
ソース
https://github.com/standardsystem/foobarbar.work

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5