本日の作業
本日もあまり進捗なし。今日は仕事の方でCloud Runのカスタムマッピングの続きをやっていた&その辺のドキュメントをまとめたり必要な関係者に手順やタスクを振って一日が終わってしまった…。
🚴 分報・日報・ユーザに関する設計・実装
🚴 永続層(Prisma)との結合
🚴 プレゼンテーション層(Remix loader/action)との結合
日報・分報のcommand/event/policyのまとめ書く
サインインの実装
認証画面実装
認証ロジック実装(主にClient側)
Server側の認証チェック実装
Client側の認証チェック実装
🛑 🚴 イベントストーミングとサービスブループリンの融合についてzennにまとめる(次のもくもく会で書く予定)
Cloudflare + Cloud Runのカスタムドメイン
Google Cloudのカスタムドメインマッピングは米国以外だととghs.googlehosted.comというのを経由するためにリージョンがどこであっても米国を挟むという仕様のせいでレイテンシが高まってしまう。
このために、Google Cloudのカスタムドメインマッピングは選択せずに別のサービスを利用する。Google Cloudの公式もカスタムドメインマッピングは現在のところ推奨はしていない。
なので、今回は強固なキャッシュ戦略などまだ組む段階でもないし、インフラ的に負荷のかかるサービスでもないのでもっとも簡単にできるFirebase Hostingを経由する方法で実践しました。また今回はサブドメインで複数のアプリケーションを区切る必要があったことも手早くできるものを選んだ理由です。
手順としては次の通り。
Firebase Hostingでサブドメイン毎にサイトを作成する
FHのサイトには静的ファイルは今の所デプロイ予定はないのでfirebase.jsonと.firebasercをリポジトリのルートフォルダに作成する
firebase cliをインストール&ローカルからFirebaseへログイン
firebase.jsonをデプロイする
これでHostingでデフォルトに用意されるドメインにCloud Runのサービスが接続されます。
project-app-1.web.app
project-app-1.firebaseapp.com
Firebase Hostingでカスタムドメインを設定する
Firebase Hostingの用意ができると管理画面の詳細画面にある「ドメイン」でカスタムドメインを追加できる様になります。
サブドメイン付きのドメインを入力する 例) project-app-1.your-domain.com
この時に「既存のウェブサイトへリダイレクト」にチェック入れない
ドメインの編集画面へ遷移するのでセットアップ モードで「詳細」を選ぶ
詳細にあるCNAME, TXTを次の工程でCloudflare DNSへ設定する
Cloudflare サブドメインを作成する
サブドメインの作成はCloudflare DNSからできるのでそちらの画面へ移動し、以下をCNAMEとTXTをサブドメイン毎に追加する
type: CNAME
名前: サブドメインを入力
例)project-app-1
ターゲット: Firebase Hostingのデフォルトドメインを入力
例)project-app-1.web.app
プロキシ ステータス: Cloudflare CDNを使う場合はプロキシありにするが必要なければなしにする
TTL: 自動
type: TXT
名前: サブドメインを入力
例)project-app-1
コンテンツ
例)hosting-site=project-app-1
TTL: 自動
Cloudflare SSL/TLSでSSLの設定
Cloudflare SSL/TLS(サイト mulligan.greenの画面左のナビゲーションにあります)へアクセス
お客様の SSL/TLS 暗号化モードを「フル」に設定
SSL/TLS 推奨機能を「ON」に設定
Firebase Hostingでドメインを有効にする
Firebase Hostingのドメインの編集画面にアクセスすると「確認」ボタンがあるのでしばらく時間を置いて有効になるまで確認ボタンを押してみる。成功していれば有効になります。
これでOK。
その他、メモ
先日のOOCでの型安全にしてコンパイル前 = 実装時にエラーに気づける様にするって話を少し今の実装に取り入れてみようと思います。まぁやるとしたらもくもく会でやるかな。