FastlyでCloud Runに独自ドメインとHTTPSを無料セットアップする 2/2
前回、Fastlyを使うとCloud Runに独自ドメインを割り当ててHTTPSで使うのが楽ちんだという話をしました。
今回は実践Fastly設定RTAをやってみたいと思います。
前提
- ドメインは任意のDNSで管理してて良い(今回はムームーDNS)
- Cloud Runをデプロイ済みで xxxx-a.run.app ドメインで動作済み
ではいってみましょう
1.Fastlyに会員登録
No Credit Card requiredです。クレカなしでメアドだけあれば始めることができます。FastlyのWebサイトにアクセスして、右上のボタンを押します。人間のexpertとTalkするのは気持ちの準備が必要ですが今回は不要です。
サインアップフォームを埋めます。名、姓、会社名(個人ならIndivisualとかでもいいのかな?)RoleはDeveloperとかでいいと思います。メール、パスワードを書いて「Developer account」を選びます。登録するとメールのVerifyが飛びますので認証しましょう。
2.最初のCDN設定をデプロイする
登録が完了すると、さっそくCDN作ろうぜ!とでてきますのでCreateしましょう。迷子になった場合は上部グロナビのDeliverを押せば問題ありません。
名前とドメイン名をセットします。残念ながら無料アカウントではサブドメインなしのapexドメインやワイルドカードドメインは使えませんので、wwwなどをセットします。
Add an Originのところに、Cloud Runの設定を記入します。https://は不要です。オプション設定が3つありますが基本すべてオンでよいでしょう。特に一番上のOverride default hostは必ずオンにしてください。ここがCloud Runで使う場合のキモになります。
2番目は圧縮設定、3番目はSSL(TLS)強制設定なのでいずれも今の時代入れておくとよいでしょう。
すべて入力したらActivateを押します
3.HTTPSのための証明書を取得する
この段階では、FastlyのCDNエッジに設定が配られただけの状態なので、つぎは証明書をゲットしましょう。上部のSecureメニューから、TLS managementに入ります。Add HTTPS to your domainsと表示されますのでGet startedしましょう。ここもDeveloperアカウントでは無料です。
作成は簡単です。HTTPSにしたい先ほどと同じドメインを入力しAddをおします。
するとLet’s Encryptが選ばれているので、Certainlyを選んでみます。どっちも開発者アカウントでは無料なので操作は変わりませんが、CertainlyのほうがFastly運営なのでなんかあったときのサポートも受けやすいかなと思います。
作成が完了したら、ドメイン認証の画面になります。右側のCNAMEの値を控えておきましょう。
4.お使いのDNSで認証する
お使いのDNSにACME ChallengeのCNAMEを設定します。一般的にドメイン名(サンプルだとku-suke.jp)より左側のみ入力します。ムームーDNSだとこんな感じ。
Cloudflareだとこんな感じ。PROXYはオフにしてオレンジではなくグレーのクラウドにしましょう
保存して5分ほど待ったら、Fastlyの画面をリロードします。無事緑になりましたね!
5.お使いのDNSでFastlyのCDNをセットする
では、これでもうHTTPSで独自ドメインをセットする準備は整いました。DNSを切り替えましょう!上部のSubscriptionが選ばれていますので、Domainsのタブに切り替えます。
そうすると先ほどのCertificateがひとつ出ていますので「View Detail」を押すと、左下にCNAMEの欄があります。これをお使いのDNSにセットします。アカウントや条件によって値が変わる場合があるみたいなのでこの画面の情報を入力せずご自身の値を見てみてください。
ムームーDNSの場合はこんなかんじ(fastly.ku-suke.jpなのでfastlyのみを入力)
Cloudflareだとこう(2重CDNは遅いのでオレンジじゃなくグレーのクラウドにしましょう)
6.完了!
無事セキュアな接続で見ることができました。
※当該ドメインはすぐ消しちゃうので実際はアクセスできません
7.おまけ
開発中など、CDNでキャッシュされてしまって困る場合は、がんがんPurgeしましょう。Deliverから作成したサービスを選んで、Purgeメニューを選ぶだけです。
また、細かい設定はEdit Configrationから選んで、新しいConfigのバージョンを作成(Clone)し、設定が終わったらデプロイする(ダメだったら切り戻しする)というエンジニアが使いやすい方式です。設定内容はすべてVCLというVarnishの設定ファイルとして記述され、Show VCLから見ることができます。挙動がおかしいなとおもったらChatGPT先生にペーストして質問してみましょう。VCLは枯れた技術なので、生成AIの恩恵を十分に受けることができます。
あとは、Originを複数並べることができるので、基本は安いVPSに立てたDockerでさばきつつ、ダウンしたときとか負荷が高すぎる時だけCloud Runを使うといったことも(DBを外だししておけば)できます。あとGeoIPヘッダもついてくるので、グローバルサービスつくるとかいろいろ便利ですね。
みなさんもよいCloud Runライフを!
※最後ちょっとPRっぽいですがとくにこの記事は対価などを受け取ったものではありません。Fastlyの中の人が見てたらノベルティグッズとかほしいですw
Discussion