【事例紹介】国立国会図書館・全国の図書館等の所蔵を検索できるシステムを統合・リニューアルしAWS上に構築


国立国会図書館は「真理がわれらを自由にする」という理念の下、国会の活動を補佐するとともに、行政・司法及び国民に図書館奉仕を提供されています。
平成24年1月6日より稼働していた、国立国会図書館及び全国の図書館の資料検索を提供する「(旧)国立国会図書館サーチ」、平成30年1月5日より稼働していた、国立国会図書館内の資料への検索と各種申込みサービスを提供する「(旧)国立国会図書館オンライン」の二つを統合・リニューアルし、新たに「国立国会図書館サーチ」として稼働を開始しました。
「国立国会図書館サーチ」は前身となるシステム両者のサービスを継承し、国立国会図書館の資料やデジタル資料の検索、各種サービスの申込み、都道府県立図書館及び政令指定都市立図書館が所蔵する和図書の書誌・所在情報の検索、その他全国の公共・大学・専門図書館や学術研究機関等が提供する資料やデジタル資料の検索が可能なサービスです。

統合・リニューアルで解決すべき課題として、前身となるシステムの長期稼働から、相対的に古くなったサービスのUI/UXの刷新、大量のメタデータを処理するための強力なバッチ基盤の再構築、開館時間帯に増加するサービスの利用に応えるための可用性の確保、及び昼夜にアイドルするリソースの効率的な利用等を挙げ、改善を提案しました。
UI/UXの検討・実装は明確なゴールを定めにくいため、アジャイル開発によるプロジェクト進行を提案しました。CI/CDによる開発の高速化を図ることができ、かつクラウドサービスとして柔軟なスケーラビリティと安定性を持ち、国立国会図書館様の別システムでの利用実績もあることからアマゾン ウェブ サービス(AWS)での構築を提案しました。

システム開発・稼働を支える基盤としてのAWS
アジャイル開発により進めたシステム開発では、機能修正やデザインの調整、およびそのフィードバックのサイクルを繰り返しました。CI/CD 基盤としてAWS CodePipeline、AWS CodeBuildを活用し、テストを並列実行することで効率化を図りました。
次期システムの構成としては、大量のメタデータを処理するためのバッチ基盤としてAmazon EC2、アプリケーション領域はコンテナ環境を前提に、セキュアで信頼性が高く、かつ拡張性が高いという要件に応えられるコンテナオーケストレーションサービス(EKS)を活用したアーキテクチャとしました。
バッチ管理にはAWS Batch、Amazon Managed Workflows for Apache Airflow(MWAA)を活用し、ユースケースに応じてAmazon EC2を基盤とした処理、Amazon EKS上でのバッチタスク処理の何れかを選択する可能な構成としました。これにより、高スペックなマシンリソースが必要な場合はAWS Batch管理のもと、Amazon ECS on Amazon EC2でリソースを確保し、同時に常時起動としないことでリソースの確保を必要最低限にしました。また、メンテナンス用の処理等、短時間小さいリソースで稼働する処理は夜間帯のEKS上で実施することで、リソースを有効に活用できるバッチ基盤としました。
アプリケーションについてはEKSを基盤として、認証、検索の情報をキャッシュし、システムへの負荷が軽減されるようAmazon ElastiCacheを構成しました。また、アプリケーションに係る情報の格納先としてAmazon DynamoDBを構成し、利用者の増減に対するデータ保有のスケーラビリティを確保しています。また、EKS上でアプリケーションPodのスケールを定義し、開館時間帯のアクセスの増加に対し高い可用性を確保しています。

BTCは、今後もクラウドネイティブなアプリケーション開発やクラウドマイグレーションなどの支援を通じて、公共部門でのクラウド導入の動きに寄り添い、技術力で貢献してまいります。