四国情報管理センターでは、地方自治体が利用する住民情報システム・健康管理システムをSaaSとして提供しています。
新型コロナウイルスに対する待望のワクチン接種がいよいよ始まる見込みとなった2020年12月に、同社では健診予約システム開発・運用のノウハウを生かしたワクチン接種予約システムの開発に乗り出しました。
同社では、従来の健診予約システムは自社データセンターサーバー上に構築していましたが、アクセス集中時の高負荷への対応や、予測が立てづらい感染症拡大の状況などを鑑みて、AWSをインフラとすることを決めたそうです。
その上で、情報セキュリティ対策や高負荷の軽減、スケールアウトへの対応について、万全を期すためにクラスメソッドへAWSコンサルティングを依頼いただきました。
社会的重要性も高い予約システム開発の背景や、特に考慮を重ねたポイント、クラスメソッドのサポート内容などについて、同社のシステム部 ソリューション・プロジェクト 松浦様、営業3課の坂本様にお話をうかがいました。
健診予約システムの知見を生かし、ワクチン接種予約システムの迅速な提供を目指す
四国情報管理センターは、かねてより自社で保有するデータセンターのサーバー上に地方自治体向けのシステムを構築し、SaaSとして提供しています。住民情報や健康管理等の個人情報を数多く取り扱うシステムも手掛けており、スマートフォンで健診予約や問診票記入ができるシステムも提供してきました。
2020年12月10日、厚生労働省から新型コロナワクチン接種について、住民票のある市区町村で予約・接種を実施するという方針が発表されました。
同社の健診予約システムは汎用性の高い構造になっており、アプリケーション部分をそのまま生かして、内容を新型コロナワクチン接種に特化させることで、迅速にシステムを提供できると考えたそうです。
同社の健診予約システムは、個人情報を同社で開発した健康管理システム(LOGHEALTH21/ADⅡ)で管理する仕組みとなっており、予約システムにはランダムな文字列で作成されたIDと予約情報のみが登録されています。そのため、予約システムが万が一ハッキングを受けたとしても、情報漏洩のリスクはほとんどない設計になっています。こうした情報漏洩への対策も、今回の新型コロナワクチン接種予約システムには適していました。
しかし、従来の健診とは対象者の規模がまったく違うことから、インフラが課題として浮上してきたそうです。
高負荷に耐え、円滑なサイトアクセスを実現するためにクラウドを採用
新型コロナのワクチン接種は、全国民が対象となります。健康管理の分野では前例のない特殊なケースです。さらに感染症の拡大状況などの社会情勢も常に変わるため、接種の予約方針が変更になる可能性も低くはないとみていました。
同社がこれまでに開発・運用してきた住民情報や健康管理システムは、利用ユーザー数に急激な変動が起きないことが特徴です。システムを利用する自治体の人口が短期間で大きく変わることもなく、また、医療機関への受診予約が一度に集中することもまずないため、システムにかかる負荷のピークは想定できるものでした。
しかし、新型コロナワクチンの予約は、自治体内でワクチン接種対象となったほぼ全員から、短期間に集中して予約申込みが行われることが想定されます。また、2021年3月時点では、各自治体のワクチン接種のタイミングが同時になるのか、段階的に行われるのかなどの見込みも立っていませんでした。
地域住民の全員がワクチン接種の対象になるという事態は、従来の予防接種などのワクチン接種への対応とは全く規模が異なり、予測不能の要素が多かったと松浦さんは語ります。
そのため、システム負荷のピーク見積もりを事前に行うのは、非常に難しい状態でした。
さらに、サービス提供の基盤が自社データセンターのままでは、ピークの想定がついたとしても環境の調達が間に合う確証がありません。仮に想定される最大ピークに合わせてリソース調達をした場合には、ワクチン接種が一巡した後、インフラ関連のコストに無駄が発生してしまう可能性があります。
そこで、同社では必要に応じてスケールアウト/スケールインができるクラウドを活用することを決めました。
松浦さんはもともとAWSに関心があり、JAWSなどのAWSのユーザーコミュニティにも参加して情報収集に努めていました。高負荷対策とコスト最適化を実現できる、AWSでのオートスケール実装についても、ある程度の知識があったそうです。
とはいえ、自治体ごとの予約システムの必要性が明らかになり、システムの構築を開始したのは2021年1月。日本におけるワクチン接種は4月から始まるという話もあり、非常に限られた時間内で開発を行う必要がありました。
また、クラウドのオートスケール機能を利用する必要性について疑いはなかったものの、 AWSの同機能の利用経験が十分にあるとは言えず、社内のスキルだけでの構築には懸念もあったそうです。
「開発期間が短い、オートスケールを行うための標準的な構成もわからない、技術的な調査をするにも適切なキーワードがわからなければ検索もままならない、といった不安がありました」(坂本さん)
そこで、クラスメソッドメンバーズの請求代行サービスを契約するとともに、AWSコンサルティングサービスを開発中の1ヶ月間だけスポットで利用することを決めて依頼いただきました。
オートスケール設計とセキュリティ周りへの集中アドバイス
ワクチン予約システムの元となる健診予約システムは、コンテナ技術をベースに構築していました。
そこで、AWSでもフルマネージドのコンテナオーケストレーションサービスであるAmazon ECS(Amazon Elastic Container Service)を使って運用することは決めていました。リレーショナルデータベースとしてはAmazon Auroraを使い、トラフィックの負荷分散にはElastic Load Balancing(ELB)を用いる設計までを同社で行っていました。
それぞれ、適切なサービスを選択し設計してはいましたが、詳細な設定については経験不足を感じて心配な部分もあったと言います。
また、従来のアプリケーションについてもオートスケールした際にはセッション情報を共有させるなど、並列で稼働させるためのコード変更を行っていましたが、実運用に移行した時に適切にスケールするかどうか、検証するのは簡単ではありません。
そこで、クラスメソッドのエンジニアは、コンサルティングに入った1ヶ月のうちにオートスケール実装をはじめとする高負荷対策と、社会インフラとして特に重要となるセキュリティ周りを集中的に確認し、アドバイスを行いました。
「当初はスケールアウトさせるのは簡単だと思っていたのです。しかし、アクセス数がどのタイミングに集中し、どのように増加していくのかが想定できなければ、設定は困難なものになることを教えていただきました。例えば、想定以上に短い時間に集中するような『エッジの立った』アクセスがあった場合、その検出と対応は難しくなります。クラスメソッドのエンジニアからは、アクセスの上昇率など、スケールアウトの判断に使えるパラメーターを教えてもらいました。」(松浦さん)
さらに AWSの各サービスがプライベートクラウドに適切なアクセス権限で配置されているかもチェックし、外部からの不正アクセスなどが起こらないよう確認しています。
当初の目的はシステムのオートスケール機能の実装のためでしたが、オンプレミスからクラウドにインフラを換えたことにより、運用・監視もしやすくなったという評価も聞いています。
「当社が提供する自治体向けのサービスは個人情報が含まれるため、通常であれば厳重に立ち入り制限を行う自社データセンターのサーバー上にシステムを構築します。そのため、システムのメンテナンスはセンター内で行う必要がありました。
しかし、今回のワクチン予約システムは、個人情報を除く予約情報のみを取り扱う仕様のため、物理的なアクセス制限を緩和し、自席から保守作業を行っています。
自席からAWSのダッシュボードで状態をすぐに確認できることは、不測の事態に備えるという点でシステムの運用効率を高めることができたと思います。」(松浦さん)
フルマネージドサービスであるだけでなく、状態監視しやすいことが、運用に際しての安心感となっているようです。
AWS活用のスキルアップと内製化に向けた伴走型コンサルティング
クラスメソッドの伴走型コンサルティングについて、松浦さん、坂本さんには、限られた時間の中で優先順位をつけて集中的に解決策を示した点に加えて、AWSスキル習得への手助けになった点を評価いただきました。
「『正解』を指示してもらうのではなく、こちらからの相談に対してキーワードを教えてもらい、自分たちで解決してスキルを上げる。そのための伴走をしてくれたことに感謝しています。」(坂本さん)
「一方的に押し付けるスタイルのコンサルティングもありますが、クラスメソッドでは要件をヒアリングしたあとに成長できる対応を採ってくれました。限られた時間の中で、要件を満たすために優先度の高いものから解決策を提示していただけたことがありがたかったです。」(松浦さん)
短期間の集中コンサルティングをうまく活用いただき、2021年3月末、無事にサービスのリリースにこぎつけることができました。
四国情報管理センターは、今後も自治体向けのシステム開発に取り組み、ITによる社会インフラ円滑化への貢献を目指しています。クラスメソッドは、このたびのワクチン接種予約システムの開発・運用に取り組む企業をAWS技術をはじめとする各種サービス提供を通じて支援してまいります。