『朝日新聞デジタル』の公式アプリ全面リニューアルに際し
コンテンツマスタ DB に Amazon DocumentDB を採用
カテゴリ検索など操作性の向上によりユーザーの利用頻度が 20 %向上
2020
全国紙の『朝日新聞』やニュースサイトの『朝日新聞デジタル』などの媒体を通して、幅広い報道活動を展開する株式会社朝日新聞社。同社は 2020 年 4 月に朝日新聞デジタルの公式アプリを全面リニューアルするにあたり、アプリの配信基盤をアマゾン ウェブ サービス(AWS)で構築。過去記事を保存するコンテンツマスタ DB に、MongoDB 互換の Amazon DocumentDB を採用しました。パフォーマンスの高さと可用性の高さ、メンテナンスの容易さを備えた Amazon DocumentDB の活用により、記事のカテゴリ検索などに柔軟性を持たせながら、運用コストの低減を実現しています。
過去記事を蓄積するDBに Amazon DocumentDB を採用することで、ユーザーの関心に応じた記事をピンポイントで表示できるようになりました。旧アプリの仕組みと比べて、DB の運用コストは月額で 30% 削減できています
守安 克二 氏
株式会社朝日新聞社
デジタル・イノベーション本部
カスタマーエクスペリエンス部 次長
ドキュメントデータの抽出が容易なコンテンツマスタ DB の導入を検討
「ともに考え、ともにつくる」を企業理念に、豊かな暮らしに役立つ総合メディア企業へと進化を続ける朝日新聞社。同社が運営する『朝日新聞デジタル』は、インターネット黎明期の 1995 年から続く老舗のニュースサイトです。会員数は PC 版とアプリ版を合わせて約 375 万人、月間 PV は約 2 億、アプリ版の 1 日あたりのユニークユーザー数(DAU)は 6 万人ほどに達しています(2020年5月時点)。
アプリ版の朝日新聞デジタルは、2012 年のサービス開始以来、リニューアルを重ねてきました。しかし時が経つにつれてユーザーから使い勝手向上を求める声が届くようになりました。「そこで UI と UX を向上させるため、約 6 年ぶりに公式アプリを全面リニューアルすることにしました。外部ベンダーに委託していた開発体制も見直し、内製化を進めることにしました」と語るのは、デジタル・イノベーション本部 カスタマーエクスペリエンス部 次長の守安克二氏です。
UX 向上を目指すにあたり、旧アプリの基盤では記事配信の設計に課題がありました。デジタル・イノベーション本部 カスタマーエクスペリエンス部の西川哲矢氏は次のように語ります。
「これまで記事のマスタには、一定期間・ジャンルごとの記事をバッチ処理によって ZIP 形式ファイルで蓄積させた、Amazon S3 を用いていました。そしてアプリへは、Amazon CloudFront 経由のそれらのエンドポイントを Web API を通して配信することしかできませんでした。そのため、過去記事がピンポイントで検索できず、ユーザー特性に応じた記事を呼び出せない制約がありました。その問題を解決すべく、新アプリではドキュメントデータの抽出や容易な機能開発が可能なコンテンツマスタ DB を導入することを決定しました。」
Read 性能とフルマネージドを評価し Amazon DocumentDB を採用
コンテンツマスタ DB として NoSQL DB を検討した同社は、ドキュメント指向を徹底するため、構造化された記事の保存が簡単で、導入実績が豊富な MongoDB に着目。MongoDB の互換 DB として 2019 年 5 月に東京リージョンで利用が可能になった Amazon DocumentDB の採用を決めました。選定の理由は、パフォーマンスの高さ、スケーラブルかつ高可用性のフルマネージド型サービスであること、インデックスの作成が容易なことの 3 点にありました。デジタル・イノベーション本部 カスタマーエクスペリエンス部の岡本樹氏は次のように語ります。
「Amazon DocumentDB は、Read の参照性能が高く、100 万単位のリクエストに耐えられる高い性能を保持しています。加えてフルマネージドによって、スケーリング、バックアップ、パッチ適用といった運用からも解放されることから、開発・運用コストの軽減につながると判断しました」
実装に際しては、DB への記事登録から、API による取り出しまでを検証する PoC を 2019 年 9 月末から約 3 週間にわたって実施。そこで浮き彫りになったパフォーマンスの問題などを解決してから開発に着手し、2019 年 12 月までに完了しました。その後、単体テスト、フロント側との結合テストなどを経て 2020 年 3 月に本番環境を立ち上げ、2020 年 4 月 13 日より新アプリに切り替えました。
「DB に記事を蓄積するバッチ処理では、AWS Lambda、AWS Step Functions、AWS Kinesis Data Streams によるサーバレスアーキテクチャを採用しました。API は AWS Fargate でコンテナ化し、Amazon Elastic Container Service (Amazon ECS) で管理しています」(岡本氏)
バックエンド側の内製開発は、12 名のエンジニアで対応し、バッチ処理、API、インフラの 3 チーム体制としました。独自のロジックは避け、データの流れに従いながら AWS のマネージドサービスで完結する方針を貫いたといいます。
「特にワークフローの作成を支援する AWS Step Functions を採用したことで、スクリプトを書く手間が減りました。AWS のソリューションアーキテクトからもバッチ処理やイベントの使い方などについて適宜アドバイスを受けたこともあり、内製化による開発はスムーズに進みました」(西川氏)
過去記事の検索性が飛躍的に向上
ユーザーの関心に応じた記事を表示
新アプリでは、Amazon DocumentDB を搭載したことで検索性が飛躍的に向上し、ユーザーの関心に応じた過去記事を表示できるようになりました。運用コストも旧アプリの仕組みと比べて、月額で 30% 削減できています。
「メモリ容量が制限内ならデータ量が増えても同一価格で利用できます。今後、蓄積される記事の量が増えていく中、テキストデータを扱う限りは制限内のメモリ容量で対応ができ、定額料金を維持したままサービスの改善が続けられることは大きなメリットです」(岡本氏)
開発環境についてもコンテナの採用によってローカル環境、検証環境などそれぞれ単体でテストが実行できるため、短期間で改善サイクルを回すことが可能になりました。内製化によってシステムのブラックボックス化も解消され、開発スピードの大幅な向上が期待されています。
「マネージドサービスやサーバレスアーキテクチャの導入で、ソースコードの作成を省き、負荷がかからない開発環境を手に入れることができました。エンジニアがスピード感を持って新機能を追加したり、不具合を改修できるなど内製化のメリットを実感しています」(守安氏)
ユーザーに寄り添うアプリを目指してクラウドネイティブなアーキテクチャへ
リニューアルした公式アプリは、より直感的に記事を見つけられるようなったり、起動時や操作時のレスポンスが向上したりと、操作性が大きく向上。その結果、ユーザーの利用頻度が増え、1 日あたりの平均起動回数は 1.9 回から 2.3 回へと、従来比で約 20% 向上しています。今後もユーザーに寄り添うアプリを目指して、クラウドネイティブなアーキテクチャへと改善を図っていく考えです。
「日々改善を進めていくことが、結果として機能強化やランニングコストの削減につながると考えています。PC 版のプラットフォームも含めて、AWS には引き続き最新情報を提供いただきながら改善を進めていきます」(守安氏)
一方で今回のアプリ開発で採用した AWS Kinesis Data Streams には大きな可能性を見出しており、ストリームデータを活用した新機能の実装も構想中です。西川氏は「位置情報やヘルスケア情報等、リアルタイムデータを活用した機能提供やユーザーのログデータを活用した品質改善など、お客様により大きな安心感を届けられるよう、AWS サービスのさらなる活用を検討していきます。」と語ります。
守安 克二 氏
岡本 樹 氏
西川 哲矢 氏
カスタマープロフィール:株式会社朝日新聞社
- 創刊: 1879 年 1 月 25 日
- 資本金: 6 億 5,000 万円
- 社員数: 4,439 名(2019 年 9 月現在)
- 事業内容:日刊新聞『朝日新聞』の発行、ニュースサイト『朝日新聞デジタル』の運営、展覧会等文化活動の企画・運営、スポーツイベントの主催、不動産事業
AWS 導入後の効果と今後の展開
- 過去記事の検索性の大幅な向上
- 過去記事の抽出に関する運用コストを月額で 30% 削減
- 改善サイクルの短縮化とデバッグ工数の削減
- 開発体制の内製化による開発スピードの向上
- アプリの利用頻度がリニューアル前より約 20% 向上
ご利用中の主なサービス
Amazon DocumentDB
Amazon DocumentDB (MongoDB 互換) は、MongoDB のワークロードをサポートする、高速でスケーラブルかつ高可用性の完全マネージド型ドキュメントデータベースサービスです。
AWS Lambda
AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。料金は、コンピューティングに使用した時間に対してのみ発生します。
AWS Step Functions
AWS Step Functions は、AWS Lambda 関数および AWS の複数のサービスを、ビジネスに不可欠なアプリケーション内に簡単に配列することができるサーバーレスの関数オーケストレーターです。
Amazon Kinesis Data Streams
Amazon Kinesis Data Streams (KDS) は、大規模にスケーラブルで持続的なリアルタイムのデータストリーミングサービスです。
朝日新聞株式会社の編集者向け記事・画像検索システム』のプロトタイプの構築に関する導入事例はこちら ≫