国際会議のインフラ整備(GitHub Pages、Jekyll、ドメイン、メール)

宇宙線物理学および高エネルギー宇宙物理学の大規模国際会議(1000〜1500 人規模)が 2023 年 7〜8 月に開催されます。その運営業務でウェブサイトの構築(GitHub Pages と Jekyll)、独自ドメイン独自ドメインの電子メール、および一斉メール配信の設定を色々とやったので、その備忘録です。

ドメインの取得

過去の同様の国際会議では .org を取得する(ircr2019.org など)、もしくは開催地の大学のドメインで運用する(icrc2021.desy.de など)の 2 通りが一般的でした。永続性という観点では後者のほうが良いのですが、後者であっても既に消えてしまっているウェブサイトもあるため、結局はそのサイトを記録として維持する気が運営側にあるかどうかで決まります。

「短いほうが格好いいし、デザインの際も楽だろ」ということで icrc2023.org を取得しました。ドメイン取得はそこまで大きな金額ではなく、また携帯電話の料金比較と同じで比較するのに情報を精査するのが面倒な類のものですので、特に思い入れもなく「お名前.com」(GMO)でドメインを取得しました。

3 年分のドメイン登録料:4,180 円(2021 年 3 月契約時の金額)

大学のサーバーではなく独自ドメインを取得して良かったのは以下の点です。

  • icrc2023.org という短い URL へのアクセスを www.icrc2023.org へ転送させられる
  • URL が短いため QR コードが単純なもので済む
  • 先述の通り、ポスターなどのデザインが煩雑にならない
  • コロナ対応の関係で開催地が大阪の民間会場から名古屋大学に変更になったものの、ドメインに開催場所の情報がないため、そこは気にならなかった
  • 問い合わせ窓口をどの大学のメールサーバーで運用するかを考えなくて済む
  • 問い合わせ窓口を複数用意するときに info@icrc2023.org、admin@icrc2023.org のように @ の前を変更するだけで済む(独自ドメインではない場合、icrc2021@desy.de などになる)

さて、ドメインを取っても何も起きません。ウェブサーバーを用意して、メールサーバーを用意して、ようやくそれで https://icrc2023.org を公開できるようになったり、info@icrc2023.org という問い合わせ窓口を用意できるようになります。

独自ドメインでの電子メール運用

基本的な方針として、物理的なサーバーの管理は一切やりたくありません。また大学の用意するサーバーも計画停電があったりするので使用したくありません。加えてサーバー管理なんて自分は最近すっかりやっていませんし(昔は大学院生が研究室のサーバー管理をする文化があった)、現代の知識にも追いついていません。

そうすると当然ですが大学外のサービスを利用することになります。ドメイン取得時に GMO を選択する際は電子メールの運用はちゃんと考えていなかったのですが、後日 GMO の「お名前メールライト」を利用することにしました。

お名前メールライト:242 円/月(1143 円/年)(2023 年 1 月までは 240 円/月)

ただし、ウェブサイト立ち上げ(2021 年 3 月頃、会議本番の 2 年以上前)の時点では管理者と問い合わせ窓口の 2 つ(admin@ と info@)しか使用しておらず、またメールも滅多に届きませんでしたので、初期には月額 110 円のメール転送サービスを使用していました。

お名前メールライトはディスク容量 2 GB しかありませんが、国際会議の問い合わせ窓口では添付ファイルはあまり扱いませんので、これで十分です。お名前メールライトは既に新規受付が終了しており「お名前メールスタンダード」(270 円/月、1260 円/年、20 GB)に移行しているようです。

実行委員会内部でのメーリングリストは東大宇宙線研のメールサーバーを使用しています。お名前メールライトでも作れるはずですが、試していません。

※ 関係する DNS の設定は後述。

最初は問い合わせ窓口ごとにメーリングリストを作ろうかと思ったのですが、担当者を追加する作業が面倒なこと、返信担当者のメールアドレスを表に出したくなかったこと、複数の担当者が入れ替わりながら同じメールアドレスで同じ質問に対応し続けられることなどの点から、info@ のような問い合わせ窓口用のメールアカウントを担当者複数人で共有することにしました。

これであれば IMAP を複数人で同時に見にいけますし、返信を複数人で行えますし、メッセージのスレッドにフラグを立てれば(Apple Mail の機能?)どの問い合わせに対応中か、対応済みかを可視化することもできます。ただし不便な点があって、誰かがメッセージを既読にすると IMAP 共有ですので他の人のクライアントでも既読扱いになってしまいます。そのため、担当者が複数人いる場合に他の担当者が新規受信に気が付きにくいという問題がありました。

メール一斉配信

国際会議では参加者や過去の参加者、もしくは興味のありそうな同業者にいわゆるサーキュラー(circular)というものを送ります。これは会議の開催通知や参加登録締め切りなどの重要事項の通知に使われます。今回の国際会議 ICRC2023 の場合にはおよそ 2000 名にメール配信をするのですが、最近は大学や学会の運営するメーリングリストでは Gmail などで弾かれる事例が頻発しているため(詳細は DKIMSPF などで検索)、メール一斉配信サービスを利用することにしました。

これも同じく GMO のやっている「お名前.com メールマーケティング」というものを契約することにし、最大 3000 人にまで配信可能な「MM3000(12 ヶ月)」を申し込みました。これであれば、DKIMSPF などの送信ドメイン認証で問題の発生する可能性は低いはずです。

メールマーケティング MM3000:21,725 円/年

これはそこそこ金額が行きます。値段の割には使い勝手が悪く英語対応もしておらず設定画面が 10 年前くらいの設計なのですが、メルマガの運営など営利目的で使い続けている人が多いのか、この金額と仕様でも他社と競合しないもんなんですね。

※ 関係する DNS の設定は後述。

ウェブサイト

基本的な要求仕様は、セキュリティ上の問題が長期発生しにくいもの、デザインの無料テーマで使いやすそうなものが無料もしくは低価格で転がっていること、名簿などのテキストファイルの自動整形などが簡単に行えること、公開後にメニューやページの追加などが簡単に行えること、です。

自分の研究室で Jekyll を使っていたこともあり、静的な HTML を生成可能で、かつ GitHub で履歴を辿ることのできる(実際に履歴を辿ることはまずありませんが)Jekyll と GitHub Pages を使用することにしました。一般的には WordPress などの CMS を使うことが多いと思います。しかし例えば International Scientific Program Committee(ISPC)や Local Organizing Committee(LOC)の名簿情報を更新するときに、WordPress の編集画面でテーブルを操作するなんてのは経験上やりたくありません。またページや記事の更新は Emacs でやりたいので、Jekyll のように markdown から静的 HTML を生成するものがありがたいわけです。

静的 HTML の生成という方針にすると(WordPress でもできるはずですが)、長期のセキュリティを気にする必要がなくなります。国際会議が終了しても 20 年程度はそのウェブサイトを記録として維持することもあるわけですし、また後日編集することもあるでしょうから、WordPress のようにログインが必要で、また内部構造を全て把握するのが大変なものは使用するのが躊躇われます。

また、GitHub Pages であれば無料でウェブサイトを公開することも可能であり、Jekyll で作成・編集したファイルを GitHub のレポジトリに commit するだけですぐに公開できます。国際会議の場合はアクセス数は特に大きくないですが、世界中からアクセスしても遅延時間が小さくするためには、やはり大学のサーバーではなく各地に分散しているものが望まれます。

ということで、markdown で書いた記事や YAML で作成したデータファイルを Jekyll で静的 HTML に変換し(GitHub Pages に変換させ)、それを GitHub Pages で公開することにしました。ただしそのままだと github.io のドメインになってしまうため、後述する DNS 設定で www.icrc2023.org で公開するようにしました。

GitHub Pages:無料

さて、肝心の成果物はこれです。
www.icrc2023.org

デザイン関係で利用したのは主に次のものです。

Bootstrap 4:無料
Material Kit 2(Bootstrap テーマ):無料
Adobe Fonts:自分の業務用 Adobe CC に含まれる
tmc のデザイン費用:うん十万円

デザイン会社である tmc に国際会議のロゴと名古屋城などのデザイン製作を依頼しました。ウェブサイトのデザインを tmc が行う場合、通常はデザインをもとにしてウェブ製作会社に仕事が回り WordPress などのテーマを作成してもらうことになります。しかし Jekyll のテーマを作れる業者なんて見つかりませんので、違う方針を取りました。

まず Bootstrap 4 と Material Kit を使用して「構造としてはこんな感じの作りになります」というのを tmc に渡し、それに基づいて tmc がバナーを作成しフォントやウェイト、メニュー部分などで使用する基調色の決定をこちらに指示します。この指示書は Adobe Illustrator で作成されており HTML も CSS も関係ありませんが、それに基づいて自分が Material Kit の CSS や Jekyll の内部構造を修正するという作業を行いました。

HTTP から HTTPS への転送は GitHub Pages の設定から Enforce HTTPS を選べば自動で行われます。また icrc2023.org への www.icrc2023.org への転送も自動で行われます。

DNS レコードの設定

お名前.com の「ドメインDNS 設定」

お名前.com の「DNS レコード設定」のページで以下の内容を登録します。

ホスト名 TYPE TTL VALUE 優先 状態
icrc2023.org NS 86400 01.dnsv.jp 有効
icrc2023.org NS 86400 02.dnsv.jp 有効
icrc2023.org NS 86400 03.dnsv.jp 有効
icrc2023.org NS 86400 04.dnsv.jp 有効
icrc2023.org A 3600 185.199.108.153 有効
icrc2023.org A 3600 185.199.109.153 有効
icrc2023.org A 3600 185.199.110.153 有効
icrc2023.org A 3600 185.199.111.153 有効
form3.icrc2023.org CNAME 3600 form3.maildeliver.jp 有効
redirect3.icrc2023.org CNAME 3600 redirect3.maildeliver.jp 有効
www.icrc2023.org CNAME 3600 icrc2023.github.io 有効
icrc2023.org MX 3600 mx20.gmoserver.jp 10 有効
icrc2023.org TXT 3600 google-site-verification=XXX 有効
icrc2023.org TXT 3600 v=spf1 include:_spf.maildeliver.jp ~all 有効
maildeliver._domainkey.icrc2023.org TXT 3600 v=DKIM1;k=rsa;t=s;p=YYY 有効

なんだかよく分かっていませんが、理解の範囲で(未来の自分に)解説。

最初の 4 つ、0X.dnsv.jp の NS レコードは、そこに行くと icrc2023.org の IP アドレスは何かを教えてくれます。ここはお名前.com のユーザー自身では変更できない設定項目です。

次の 4 つ、185.199.1XX.153 はホスト名と実際の IP アドレスの対応関係ですね。この 185.199.1XX.153 は GitHub Pages の WWW サーバーです。これは GitHub Pages の解説にそう書いてあるので、そう設定しました。例えば www.icrc2023.org に ping を打つとこれらの IP アドレスが応答するようになります。
docs.github.com

GitHub では現在プライベート設定ですが、ICRC2023/icrc2023.github.io というレポジトリを登録しています。
https://github.com/ICRC2023/icrc2023.github.io
外部ドメインを使用しない場合、この中身は https://icrc2023.github.io で公開されます。しかし custom domain の設定を GitHub Pages の設定で www.icrc2023.org で追加しているので、185.199.10X.153 を A レコードに追加することで、この GitHub 管理下の WWW サーバーに接続してくれるようになるわけです。

その次の form3.maildeliver.jp と redirect3.maildeliver.jp の 2 つは、一斉メール配信の配信登録・解除用のページが用意されるサーバーと、メール中のリンクを踏んだかどうかのアクセス解析をするためのリダイレクトサーバーです。前者は新規にメール配信を望む同業者(特に最近大学院生になったような人たち)および配信をもう望まない同業者(研究職を離れてしまったような人たち)に向けて必要です。後者は国際会議だとどうでもいいです。設定はしていますが使っていません。Google Analytics も利用していますが、それを見てどうこうするわけでも一喜一憂するわけでもありません。

そして icrc2023.github.io の行は、www.icrc2023.org の実際の中身は icrc2023.github.io で公開しているからそれを見に行ってねということです。

mx20.gmoserver.jp の行は、icrc2023.org 宛のメールを実際にはどのサーバーに送れば良いかの設定です。icrc2023.org 自体は専用のメールサーバーを物理的に持っているわけではなく、裏では「お名前メールライト」が GMO のサーバーで動いているわけです。したがって、icrc2023.org に届いたメールは GMO のこの mx20.gmoserver.jp で処理されることになります。

google-site-verification の行は、自分のドメインGoogle Analytics や Search Console を使うときに必要な設定です。Google Analytics を埋め込んだサイトが確かに自分のアカウントのものであると確認する役割を果たします。XXX の部分はユーザーごとに異なる長い文字列です。

そして最後の 2 つが、「お名前メールライト」の設定で必要な項目です。SPFDKIM の設定をすることで送信元サーバーの認証が行われるため、受信サーバー側でスパム判定される可能性が下がります。この 2 つの設定項目は、「メールマーケティング」のコントロールパネルの「DNS 設定情報」に記載があるのでこれをコピペしました。YYY はユーザーごとに異なる長い文字列です。

お名前メールライトの「独自ドメイン設定」

さて、お名前メールライトのほうでも DNS の設定をする必要があります。この設定はメールマーケティングと併用するユーザーはやる必要があると電話窓口で説明を受けましたが、自分はなんだかよく分かっていません。

ホスト名 指定先 レコードタイプ 優先度 ポート 重さ
(なし) 185.199.108.153 A
www icrc2023.github.io. CNAME
ftp 標準 A
(なし) 標準 TXT
form3 form3.maildeliver.jp. CNAME
redirect3 redirect3.maildeliver.jp. CNAME
maildeliver._domainkey v=DKIM1;k=rsa;t=s;p=XXX DKIM(TXT)
(なし) google-site-verification=YYY TXT

最初はこの辺りの設定を空欄にしていたのですが、info@icrc2023.org などからメールを送信すると Gmail に弾かれる場合があったので電話窓口で相談したところ、ここでも設定しないと SPF 認証が有効にならず spf=softfail という結果が Google から返ってきてしまいます。

ただし、ここの設定には SPF の設定があるわけではなく、また DKIM の設定をここでしていても info@icrc2023.org などからのメールには DKIM 関係のヘッダーが存在せず SPF のみが存在します。メールマーケティングの一斉配送の場合には、SPFDKIM もヘッダーに書き込まれます。