2022/03/26

Firebase Hostingで設定したカスタムドメインを解除してみた

  HTML/CSS/JavaScriptや、画像/動画/音声などのメディアコンテンツのみで構成されたwebサイトを構築するなら、Firebase Hostingを使用するという手段が用意されています。Firebase Hostingでwebサイトを作るとデフォルトのドメインが割り当てられるので、コンテンツさえ作ればすぐにwebサイトの運用が可能になります。デプロイしたコンテンツはCDNにも登録されるので、ユーザはアクセスが快適という特徴があります。

 Firebase Hostingでもカスタムドメインでwebサイトを公開することが可能です。その手順は「カスタムドメインを接続する」に書かれているとおりで、Firebaseのコンソールから簡単にできます。


 今回の記事は、Firebase Hostingで公開したサイトに一度接続したカスタムドメインを、解除してみたときの体験です。


ダッシュボードが行方不明

 まず最初に遭遇したのが「Firebase Hostingのダッシュボードがどこにあるのかわからなくなった」という問題。カスタムドメインの接続を試したときは、手順どおりで以下のキャプチャの様なダッシュボードを表示できていました。(このキャプチャはカスタムドメインに未接続です)


 その後日、試したカスタムドメインを解除しようと思い、同じリンクをたどったのですが、今度は以前の様なダッシュボードが表示されません。以下のキャプチャの様にFirebase Hostingの開始の案内が表示されます。先日設定したサイトはどうなったの?


 実はこのページは、シングルページで開始の案内からダッシュボードまで同じURIで実装されています。そしてフラグメントにも対応していないので、開始の案内もダッシュボードも全く同じURIとなります。
 ダッシュボードにたどり着くには、ページを表示する度に以下の手順を踏む必要がありました。

  1. 「始める」ボタンを押す。
  2. 「Firebase Hostingの設定」は説明だけなのでどんどん進めて、
  3. 「Firebase Hostingへのデプロイ」にある「コンソールに進む」を押す。

  4. めでたくFirebase Hostingのダッシュボードが表示される。

 開始の案内や手順の説明は1回でいいと思うのですが、毎回これらを見なければならない実装はいかがなものでしょう。ちなみに言語を英語に変えても同様です。「始める」ボタンを押すと「Firebase Hostingの設定」が右からフェードインして来るので、シングルページだと分かるだろうという思い込みで作られているようですが、このアニメーションを見ていなければ理解できません。シングルページアプリケーションは昨今のトレンドですが、このページの作りはトラップですね。

 ここまで来ると、カスタムドメインのメニューからドメイン編集/削除を選べるようになります。

 ダッシュボードの表示方法がわからなくてFirebaseのサポートに英語で質問したのですが、自分で見つけてしまいました。ついでにサポートに確認したところ「この手順でいい」みたいな返事があったので、手順は間違っていないはずです。


(2022/05/4追記)

ダッシュボードはFirebase Hostingのアプリがあればデフォルトで表示されました。この「ダッシュボードが行方不明」に気付いたのは、一度作成したFirebase Hostingアプリを削除した後でしたので、気付きませんでした。


謎のアクセス

 やっとカスタムドメインの設定を解除し、そのドメインにはGAEアプリのURIを設定しなおしました。しばらくしてGAEアプリのプロジェクトのCloud Loggingに、以下のようなログが残っていることに気付きました。


 リクエストされているパスは以下のとおり。15分間隔で2回ずつ、1日中アクセスが続きます。

/.well-known/acme-challenge/XXXXXXXXXXXXXXXXXXX

 もちろん自分でこんなアクセスした覚えはありません。というかユーザエージェントとして「Google-Firebase...」って。


 これについてFirebaseのサポートに確認したところ、「すでにカスタムドメインの解除は行われていて、このリクエストはそのうち停止する」との回答がありました。Firebase Hostingがこのアクセスを行っている理由は「カスタムドメインの接続先を変えたりした場合に、新しいSSL証明書が再プロビジョニングされるのを待ったり、証明書の作成プロセス全体を再度実行したりしなくていいように」とのことでした。

 上記のアクセスが実際に停止したのは、カスタムドメインの設定を解除してから4週間後でした。けっこう長いです。

2022/03/18

LotteryServの応募ページのレスポンスを向上

  LotteryServを更新しました。


 今回の更新内容は、応募および結果確認ページのレスポンス向上のみです。もともとそんなに重たい処理を行っていたわけではないのですが、応募や結果確認の操作を行なう応募者の方からは改善の効果は実感しにくいと思います。

 しかし、アクセス集中による影響を最も受けるページなので、アクセス集中時には効果が出ています。実際にアクセス集中を想定した検証を行ってみると、明らかなパフォーマンス向上が見られています。数値では表しにくいのですが、体感的には2倍程度速くになったように感じます。

 ちなみに修正内容は軽微なものではなく、該当ページ関連を再実装しています。


 今回の更新では、使い方や見た目は変わっていません。また応募および結果確認ページ以外には変更はありません。

2022/03/01

LotteryServアップデート

 LotteryServを更新しました。


デザイン変更

 トップページを中心にデザインを変更しました。サイト構成はほぼ変わりませんが、各ページのデザインを変更してあります。

 またユーザ登録/主催者登録/募集編集の画面は入力していただく項目が多いので、入力内容の説明を増やして分かりやすくしました。


応募ページのモバイル対応

 応募/抽選結果の確認ページのみですが、モバイル対応しました。これまでスマートフォンなどで表示すると小さく表示されてしまい、拡大しないと文字が読めなくなっていましたが、5インチ程度のスクリーンを持つスマートフォンなら拡大しなくても読めるように変更しました。

 また応募者が入力すべき内容が分かりやすくなるよう、デザインを変更しています。


抽選時間の短縮

 内部実装を見直すことにより、抽選時間を短縮しました。抽選時間は、応募数によって変わりますが、おおむね以下の様に変わっています。


 上記の時間は実測値をもとにしていますが、状況により変化する可能性があります。目安くらいにお考え下さい。


価格の変更

 一部の価格を変更しました。下記の表の金額は消費税込みです。


 これまでは応募ステップが上がるごとに、5倍→2倍→5倍→2倍... と不等間隔の設定になっていましたが、ほぼ3倍毎に上がるように修正しました。それに伴って最大応募数が少なくなる応募ステップでは、価格を下げています。

 またより少ない応募数に対応したステップを追加しました。これにより小規模な募集ならさらにコストを抑えることが可能になります。