Upgrade to Pro — share decks privately, control downloads, hide ads and more …

日経電子版の BCP への取り組みについて/mediajaws1121

日経電子版の BCP への取り組みについて/mediajaws1121

2025/11/21 開催、Media-JAWS #mediajaws【第20回】InterBEEに合わせて幕張開催の勉強会イベントにて、日本経済新聞社の千葉さんが発表しました。

https://media-jaws.connpass.com/event/369833/

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. #mediajaws 今日お話すること 2 - 日経電子版の BCP とは? - 有事の際でも報道機関の責務を果たすべく最低限の報道を継続する -

    日経電子版の BCP 環境 - 東京リージョンとは別のリージョンにある簡易日経電子版環境 - データは常に東京リージョン(メイン環境)と同期 - システムを切り替えても過去の記事を提供可能 - 日経電子版の BCP 訓練とは? - 実際にシステムを切り替え、サービス提供し続けられることが重要 - 訓練を行うことで、構築したシステム・手順・体制等の実効性を確認する - BCP 訓練の内容とそこから得た学び - 訓練では実際に東京🗼↔ 別リージョンの切り替えを実施 - コミュニケーション、システム構成、体制・環境といった部分で課題を確認
  2. #mediajaws 自己紹介 3 • 名前: 千葉 尚彬(Chiba Naoaki) • 経歴:

    2021年9月にジョイン ◦ 前職では Kubernetes 周りを中心としたクラウドネイティブ技術の 研究・案件支援を担当 • 担当業務: ◦ 主: 日経電子版のバックエンド開発をサポート ◦ 副: 日経グループ横断の技術イベントの企画 • 好きな AWS サービス: Lambda, S3 • 󰑔re:Invent 参加歴: 2023年, 2024年 ◦ 🎰スロットに預けた金額: 500$💸
  3. #mediajaws 12 Business Continuety Planning(事業継続計画) とは? Business Continuety Planning(事業継続計画) 企業が自然災害、大火災、テロ攻撃などの緊急事態に遭遇した場合におい

    て、....、平常時に行うべき活動や緊急時における事業継続のための方法、手 段などを取り決めておく計画のことです。* [*] 1.1 BCP(事業継続計画)とは
  4. #mediajaws 日経電子版の BCP とは? 15 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。
  5. #mediajaws 日経電子版の BCP とは? 16 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。 どう実現するか?🤔
  6. #mediajaws アクセス制御 - 一部のパス以外は全て500で返す 23 - 「最低限の報道」に必要なコンポーネント のみ構築 - コンポーネントが無い

    API へ対してアク セスが来ても、タイムアウトまでリクエスト が詰まってしまう 👉コンポーネントが存在しない API パスは ALB レイヤーで即座に500(Internal Server Error)を返すルールを設定
  7. #mediajaws データの同期 - RDS Amazon Aurora を活用したレプリケーション機構を構築 レプリケーション 手法 メリット[+]/デメリット[-]

    適用したDB Aurora Global DB ・レプリケーション遅延が小さい[+]* ・切り替え・切り戻しが容易[+]** ・一定サイズ以上のインスタンスサイズが必要[-] ※Aurora Global DB の場合、 db.r5 以上が推奨*** 記事 DB 👉既に Global DB で必要なインスタンスサイズより 大きいサイズで稼働していた Cross Region Replication (CRR) ・Global DB と比較すると遅延がある[-]* ・切り替え後、元の構成へ戻るにはクラスター の再作成が伴う[-]**** ・小規模インスタンスタイプが使える[+] API クライアント情報 DB 👉使用リソースは少ない・書き込み頻度も低い 👉後述する運用を取ることで、切り戻しが発生する頻 度を低減できる 24 [*] AWS Prescriptive Guidance - Comparing Amazon Aurora Replicas, Aurora cross-Region Replicas, and Aurora global databases [**] Using switchover or failover in Amazon Aurora Global Database [***] Amazon Aurora Global Database の構成要件 [****] リードレプリカの Aurora MySQL DB クラスターへの昇格
  8. #mediajaws データの同期 - RDS 2段階のフェイルオーバー - 障害発生直後では、 API クライアント情報 DB

    をライターへ昇格させない - 基本的に API クライアントの認証・認可ができればいいので、書き込める必要はない - 一度昇格させたあとに、元の構成に戻すのが結構大変 - 障害が長期化し、BCP 環境でも新しく API クライアントを作成する必要が 出てきて、初めて昇格させる 25
  9. #mediajaws 余談1: Aurora Global DB の Headless 運用 - Aurora

    Global DB の場合、セカンダリクラスターに一台もインスタンスが なくてもデータがレプリケーションされる - この機能を活用することで、コストを抑えつつ可用性を向上 - もちろん、インスタンスがある場合と比べるとフェイルオーバー時の 切り替え作業時間は伸びるので、その部分とのトレードオフ - 現状、開発環境の記事情報 DB でのみ採用 - 本番環境では作業時間の短縮が最優先 26 画像: https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-db-headless-secondary.png インスタンスが0
  10. #mediajaws 余談2: Aurora Global Database(MySQL)の更新が辛い 27 - Database Engine を更新する際にセカンダリクラスターを再作成する

    必要がある 💥 - PostgreSQL では起きないらしい...💡 画像: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.Patching.ModifyEngineVersion.html
  11. #mediajaws データの同期 - S3 S3 Cross Region Replication を利用 -

    記事画像や記事並び順情報等をレプリケーションしている - 東京リージョン ➡ 別リージョンのレプリケーションだけではなく、 対象となるほぼ全てのバケットで逆向きのレプリケーションも設定済み 👉 双方向レプリケーションにすることで、切り戻ししやすくする - 一方、障害発生後に全てのオブジェクトが東京へレプリケーションされる 保証は無いので、別途手動でデータをコピーする手順も用意している 28
  12. #mediajaws 日経電子版の BCP とは? 30 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。 再掲
  13. #mediajaws 日経電子版の BCP とは? 31 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。 再掲 ✅ システム構築完了 ✅ 手順もまとめた
  14. #mediajaws 日経電子版の BCP とは? 32 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。 再掲 👈 😼 ヨシ!!!
  15. #mediajaws 日経電子版の BCP とは? 33 関東全域が被災するなどし、関東エリアの Amazon Web Service・Google Cloud

    のシステム、 日経所有の DC が稼働できない状態になった場合でも、最低限の報道を 継続し報道機関の責務を果たす。 再掲 👈 😼 ヨシ!!!
  16. #mediajaws BCP 訓練の体制 36 役職名 役割 誰がやる? 何人? インシデントコマンダー (Incident

    Commander/IC) インシデント対応全体の統括責任者。関係者を 統一チャネルに集め、状況を把握・意思決定を 行う。 開発部門のマネージャー (部長・グループ長) 1名 書記官(Scribe) インシデント対応中の全ての重要な決定事項、 アクション、状況報告をタイムラインとして記録 する。 開発部門の準マネージャー 1名 対象分野の専門家 (Subject Matter Expert/SME) 担当サービスの技術的問題を診断・解決する実 務担当者。サービス固有の問題を迅速に特定 し、インシデント中の修正を実行する。 各エンジニアチームの実務者 Web: 3名 SRE: 3名 API: 4名 CMS: 3名 訓練事務局 ※オリジナル BCP 訓練全体のプランニング作業を行う。 当日は仮想編集・カスタマーサクセス(CS)も行 う(後述) 複数回以上訓練を経験した人 (マネージャー、 準マネージャー、実務者) 3名 Incident Command System をもとにした体制を構築 https://response.pagerduty.co.jp/before/different_roles/ を元に作成 私はここ
  17. #mediajaws BCP 訓練の進め方 37 [キックオフ] 前回の振り返りと今回の 訓練テーマを検討 [事前準備] テーマをもとに 訓練の詳細内容を整理

    [事後作業] 訓練実施後は振り返り会 を実施 - 訓練実施の1ヶ月半前に開催 - 各チームのリーダーレベルに 参加してもらう - 前回の振り返りと今回の訓練 で確認したいことを確認 - 確認したい詳細項目 - 当日の参加者・体制 - 事前/当日/事後作業 - 当日の一連の流れ - 訓練の1週間後に実施 - 各チームの気づきを共有 - 次回訓練の Next Action を整理
  18. #mediajaws BCP 訓練の振り返り: 見つかった主な課題(1/3) 41 1. 報告・コミュニケーションがうまく行かなかった • 個別チームの状況が良くわからなかった ◦

    逆も然りで、個別チームも全体の状況をうまく把握できていなかった • 会議ツール(Google Meet)やチャットツール(Slack)を使う際のルールが 曖昧だった ◦ e.g. どのチームがどの会議ルームを利用するか、メンションの仕方、... • 作業開始前の全体ブリーフィングといったコミュニケーションも抜けていた ◦ 今回の BCPの定義、全体手順の確認、...
  19. #mediajaws BCP 訓練の振り返り: 見つかった主な課題(2/3) 42 2. 切り替え時間が長かった • 訓練の主目的が「手順の確認」ではあったが、それでも時間がかかっていた •

    原因としてはシステム構成の問題 ◦ 一部システムがコールドスタンバイに近い状態を取っている ▪ 👉 事前に一部でも起動させておくことを検討(経費との天秤💸) ◦ リソース使用率の逼迫により、切り替え時にエラーが発生した
  20. #mediajaws BCP 訓練の振り返り: 見つかった主な課題(3/3) 43 3. ツール・人に依存したオペレーションになってしまっている • 現在、Slack, Google

    Meet, Notion, (Miro)を前提とした作業フローに なっている • が、大規模障害時にこれらが生きている保証はどこにもない😇 • 人も同じで、「切り替えるぞ!」となった際に各システムの担当者がその場に いる保証は無い
  21. #mediajaws BCP 訓練の振り返り: Next Action 44 • コミュニケーションルールの策定 ◦ どのコミュニケーションチャネルを利用するのか、といったツールに依存しないとこ

    ろも意識しつつ策定 • 切り替え速度を意識した訓練 ◦ 手順の確認も重要だが速度も重要なので、より RTO を意識した訓練を行う ◦ 具体的には目標復旧時間について事前に認識合わせをしたうえで各チームそれを 守れるように準備してもらう • 人・ツールによらない体制 ◦ 次回訓練では、今まで使っているツールが無くても作業できるように訓練する ◦ また、他のチームの人が読んでも作業できるように手順書を整備しておく ▪ 実際に手順書を入れ替えるのは次々回の訓練を想定
  22. #mediajaws まとめ 46 - 日経電子版の BCP とは? - 有事の際でも報道機関の責務を果たすべく最低限の報道を継続する -

    日経電子版の BCP 環境 - 東京リージョンとは別のリージョンにある簡易日経電子版環境 - データは常に東京リージョン(メイン環境)と同期 - システムを切り替えても過去の記事を提供可能 - 日経電子版の BCP 訓練とは? - 実際にシステムを切り替え、サービス提供し続けられることが重要 - 訓練を行うことで、構築したシステム・手順・体制等の実効性を確認する - BCP 訓練の内容とそこから得た学び - 訓練では実際に東京🗼↔ 別リージョンの切り替えを実施 - コミュニケーション、システム構成、体制・環境といった部分で課題を確認