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

システム運用の基本

Avatar for sstn sstn
June 03, 2025

 システム運用の基本

2025年新卒研修資料

Avatar for sstn

sstn

June 03, 2025
Tweet

Other Decks in Technology

Transcript

  1. システムは勝⼿に⽌まるの? “Everything fails, all the time” ーWerner Vogels. Amazon CTO

    直感的には、プログラムは正しく書けば動き続ける。 → プログラムは論理的には壊れないが、 実⾏環境は常に壊れ得る。 ソフトは永遠に正しくても、 ハード‧通信‧⼈間はそうじゃない。 →だから「壊れる前提」で守る必要がある。
  2. なぜ分散させるのか 可⽤性向上(障害の局所化) → ⼀部のサービスが落ちても全体が⽌まらない スケーラビリティ(⽔平分散が可能) → ボトルネックとなる機能だけをスケールアウト 開発とデプロイの独⽴性 → チームごとに独⽴して開発‧リリースできる

    テクノロジー選択の⾃由度 → サービスごとに適切な⾔語‧DBなどを選択可能 変更のリスク最⼩化 → マイクロサービス単位でのロールバックやA/Bテスト 分散は複雑にすることではなく、複雑な世界に柔軟に適応するための選択肢。 → コスト‧複雑さは増すが、信頼性‧柔軟性‧スピードという価値が得られる。= トレードオフ
  3. 代表的な3つのシグナルタイプ ログ タイムスタンプ付きのテキストレコー ド(構造化‧⾮構造化両⽅あり) - ⼈が読める - イベントの記録に適する - 検索‧フィルタしやすい

    エラーメッセージ、スタックトレー ス、ログインイベント → 出来事を追う メトリクス 実⾏時に取得される統計処理可能な数値 的な測定値 - 構造化 - 時系列データ - 集約‧⽐較しやすい CPU使⽤率、HTTPリクエスト数、DB接続 数、レイテンシ(p95など) → 状態を⾒る トレース 分散環境におけるリクエストの流れの 可視化 リクエスト単位での因果関係 - 遅延分析に最適 - 複雑な依存関係に強い ユーザーリクエスト→API→DBの処理 経路とレイテンシ → つながりを追う
  4. 4つのゴールデンシグナル Googleは、分散システムの健全性を評価するために、以下の4つの主要な指標を提唱 ‧レイテンシ(Latencty) → リクエストの処理にかかる時間。遅延が⼤きいとユーザー体験を損ねる。使いづらさ ‧トラフィック(Traffic) → システムに流れるリクエストやデータの量(例:QPS、帯域幅など)。処理しきれなさ ‧エラー率(Errors) →

    失敗したリクエストの割合(HTTP 5xxやアプリケーションエラーなど)。信⽤できなさ ‧飽和度(Saturation) →ステムが限界にどれだけ近づいているか(CPU使⽤率、キュー⻑など)。リソース逼迫の近さ “If you can only measure four metrics of your user-facing system, focus on these four.” (Google SRE Book, Chapter 6: Monitoring Distributed Systems) → 「もしあなたが4つしか監視できないとしたら、この4つを選べ」というくらい、優先度が⾼い。
  5. メトリクス収集⼿法の違い Pull型 と Push型 メトリクスを「どのように収集するか」という仕組みの違いであり、設計⽅針‧スケーラビリティ‧セキュリティなどに影響を与え る 仕組み 主なツール例 データ形式 Pull型

    収集側が対象サービスへ定期的にリクエストを送って取りに⾏く Prometheus, Zabbix (⼀部) 主にHTTPエンドポイント(例: /metrics)からテキストで Push型 アプリケーションやエージェントが、メトリクスを収集先に送信する StatsD, collectd, Cloud Monitoring, Datadog Agent 独⾃プロトコルまたはHTTP経由で送信 導⼊の容易さ セキュリティ エンドポイントを⽤意すればすぐ収集可能 エージェントやライブラリの組み込みが必要なことが多い 監視側からの通信が必要、FWやネットワーク設定が課題になることも アプリから外へ送信するため、ネットワークの制約が少ない スケーラビリティ 多数のターゲットをポーリングする負荷が収集側に集中 各サービスが分散して送信するためスケーラブルになりやすい 障害時の特性 監視対象が落ちていたらメトリクスが取れない(空⽩) メトリクスが送られなくなる → 収集側が気づかないこともある
  6. “Good intentions never work, you need good mechanisms to make

    anything happen” — Jeff Bezos. Amazon CEO 良い意図だけではうまくいかない。何かを成し遂げるには、良い仕組みが必要 だ
  7. イベントのライフサイクル 検知 記録 フィルタリングと逸脱 検知 分類と優先度付け 通知とエスカレーショ ン 対応‧記録‧クローズ イベントはモニタリングツールやエージェントなどから発⽣

    イベントを記録(ログ)として保存 対応が必要かを判断 また複数のイベントを相関づけて1つの事象としてまとめる 情報‧警告‧例外のどれかに分類 イベントに応じて⾃動通知や⼿動エスカレーションを実施 例外イベントであればオンコールエンジニアにページング 対応内容を記録し、クローズ
  8. イベントのライフサイクル 検知 記録 フィルタリングと逸脱 検知 分類と優先度付け 通知とエスカレーショ ン 対応‧記録‧クローズ イベントはモニタリングツールやエージェントなどから発⽣

    イベントを記録(ログ)として保存 対応が必要かを判断 また複数のイベントを相関づけて1つの事象としてまとめる 情報‧警告‧例外のどれかに分類 イベントに応じて⾃動通知や⼿動エスカレーションを実施 例外イベントであればオンコールエンジニアにページング 対応内容を記録し、クローズ 運⽤が成熟したら⾃動化
  9. インシデントのライフサイクル 検知と登録 分類と優先度判定 エスカレーション 調査と初動対応 解決と復旧 クローズ 監視‧問い合わせ/通報‧エンジニアの気づきやオペレーション時のエラー チケットの起票 分類やカテゴリ付け(ネットワーク障害

    / ハードウェア / アプリケーション / 外部要因など) 優先度の決定(影響度 × 緊急度) 技術エスカレーション:解決不能‧不明 → 上位技術者、別チームへ 管理エスカレーション:重⼤度に応じてマネジメントや他部署へ通知 情報収集:ログ、監視データ、再現⽅法、直前の変更履歴など 回避策の検討:恒久対策が不明でも、⼀時的にサービスを回復させる⼿段 恒久対策があれば適⽤ 復旧の確認 通報者‧関係者に確認を取り、「解決済み」で合意
  10. インシデントのライフサイクル 検知と登録 分類と優先度判定 エスカレーション 調査と初動対応 解決と復旧 クローズ 監視‧問い合わせ/通報‧エンジニアの気づきやオペレーション時のエラー チケットの起票 分類やカテゴリ付け(ネットワーク障害

    / ハードウェア / アプリケーション / 外部要因など) 優先度の決定(影響度 × 緊急度) 技術エスカレーション:解決不能‧不明 → 上位技術者、別チームへ 管理エスカレーション:重⼤度に応じてマネジメントや他部署へ通知 情報収集:ログ、監視データ、再現⽅法、直前の変更履歴など 回避策の検討:恒久対策が不明でも、⼀時的にサービスを回復させる⼿段 恒久対策があれば適⽤ 復旧の確認 通報者‧関係者に確認を取り、「解決済み」で合意 調査を始める前に エスカレーション! 初動は原因不明でも 復旧すれば良い!
  11. イベントとアラートとページ Event Alert Page 📘 Event:システム内で発⽣した事象の記録(例: CPU使⽤率80%) → 発⽣条件:すべての状態変化 →対応必要性:モニタリングや分析⽤途。通常は対応不要

    ⚠ Alert:事前に定義した条件に合致した通知(例: CPU使⽤率が90%以上) → 発⽣条件:SLI/SLO違反の兆候 →対応必要性:対応を検討する状態。⼈間への通知もあり 🚨 Page:重⼤なインシデント時に即時対応を求める通知(例: サービスダウ ン) → 発⽣条件:クリティカルな障害 →対応必要性:今すぐ⼈が対応すべき状態。On-callが起こされる
  12. プロブレムのライフサイクル 識別 記録と分類 調査と診断 回避策の提供 既知のエラーの登録 恒久的な解決策の実装 インシデントの傾向や関係者からの報告や監視ツール、予防的分析を通じて問題を特定 問題チケットを作成し、影響度‧緊急度で優先順位を設定。 根本原因分析を実施。

    恒久的な解決策がまだない場合は、 サービスの影響を緩和するために⼀時対応(暫定対応)を⽤意する。 原因が特定されたら既知のエラーとして管理。 修正案を変更管理のプロセスに提出し、正式に展開。 恒久対応完了後にクローズ
  13. プロブレムのライフサイクル 識別 記録と分類 調査と診断 回避策の提供 既知のエラーの登録 恒久的な解決策の実装 インシデントの傾向や関係者からの報告や監視ツール、予防的分析を通じて問題を特定 問題チケットを作成し、影響度‧緊急度で優先順位を設定。 根本原因分析を実施。

    恒久的な解決策がまだない場合は、 サービスの影響を緩和するために⼀時対応(暫定対応)を⽤意する。 原因が特定されたら既知のエラーとして管理。 修正案を変更管理のプロセスに提出し、正式に展開。 恒久対応完了後にクローズ 未知のエラー 既知のエラー
  14. サービスを維持するためには サービスは様々な要因で継続困難な状況になる。 • ハードウェアが壊れる • ディスクフルでデータの書き込みができない • 地震‧⽕事‧⽔害などの⾃然災害が起きる • システムに侵⼊されて暗号化される

    → 故障や災害やクラッカーを無くすことはできないが予測し、備えることはできる。 ここではサービスを維持するための可⽤性、キャパシティ、災害復旧、セキュリティ のプラクティスを紹介する
  15. よく使われる可⽤性⽬標の⽬安 可⽤性 年間停⽌時間 99.9% ("three nines") 99.99% ("four nines") 8.76

    hour 99.999% ("five nines") 52.56 min 5.26 min ⽉間停⽌時間 43.2 min 4.32 min 25.9 sec サービス SaaS、クラウドサービス CRM、ERP、Multi-AZ 医療‧⾦融‧航空
  16. 依存関係のある可⽤性 ワークロードの可⽤性は全ての依存関係の可⽤性(a)の積になる。 Server Database Client 99.5% 99.9% サービスA 99.4% ×

    従ってサービスAの理論上の最⼤可⽤性は(0.995 × 0.999) ×100 = 99.4% 誤って99.5%を⽬標にしてサービスを提供すると、絶対に達成できない可⽤性になってしまうので注意。
  17. 単⼀障害点を減らす Server Database Client 99.9975% 99.9% サービスA 99.8975% それが壊れるとシステム全体が停⽌してしまう構成要素を 単⼀障害点(SPOF,

    Single Point of Failure)という。 可⽤性設計におけるSPOFの放置は、あえて地雷の上にインフラ を築いているようなもの。 Server ❌ ❌ ❌ 🟢 ❌
  18. 冗⻑化はコストとの相談 SPOFを減らすことで可⽤性を上げることができますが、冗⻑性を上げるとコストも増加するので注意 Server Database Client Server Database Client 99.9975% 99.9%

    サービスA 99.8975% Server 99.9975% 99.9999% サービスA 99.9986% Server Database サービスAでは年間で約8時間51分のダウンする可能性を削減できるが、DBのコストが2倍になる。 → ⾮機能要件としてビジネス⾯での判断が必要 ❌ ❌ ❌ ❌ 🟢 🟢 🟢 ❌ ❌ 🟢 🟢
  19. 事業継続計画と災害復旧計画 BCP:Business Continuity Plan(事業継続計画)= ビジネス⾯での復旧計画 DRP:Disaster Recovery Plan(災害復旧計画)= システム⾯での復旧計画 内容

    対象 例 BCP(事業継続計画) 災害‧障害時でも事業を⽌めないための総合的な計画 ⼈‧拠点‧通信‧物流‧システムなど広範囲 代替オフィスの確保、BC通話網の整備、⼿動業務への切替など DRP(災害復旧計画) システム障害などからITサービスを復旧させるための具体策 システム‧データ‧インフラに特化 バックアップポリシー、DRサイトへのフェイルオーバー → DRPはBCPという全体計画の⼀部であるべき。
  20. 対象 測定対象 単位 可⽤性(Availability) 通常運⽤中のサービスの状態 MTBF、MTTR 時間平均(例:1ヶ⽉、1年など) 災害復旧(Disaster Recovery) ⼀度限りのイベント(災害‧障害など)

    RTO、RPO 単発のインシデントに対する応答 ⽬的 例 常時にサービスを常に使える状態に保つこと 異常時にサービスを復旧すること 年間稼働率99.9%を維持する 災害後にバックアップから復旧する 可⽤性と災害復旧の違い どちらも回復⼒戦略の⼀部であるが可⽤性と災害復旧は測定、焦点、⽬的などが異なる。
  21. 復旧戦略:Pilot Light パイロットライト 概要: 最⼩限のインフラ(DBや基本サービス)を常時稼働 させておき、障害時に必要なアプリケーションやフロント エンドをスケールアウトして復旧する戦略。 メリット: コストと可⽤性のバランスが取れている。 デメリット:

    完全復旧までにやや時間がかかる。 例: 常時起動のRDS + 停⽌中のEC2群 → 障害発⽣時にEC2を 起動して復旧。 出典:AWS Whitepaper「クラウド内での災害対策オプション」より図を引用
  22. 復旧戦略:Warm Standby ウォームスタンバイ 概要: サービスの簡易版を常にセカンダリサイトで稼働させ ておき、障害時には切り替えてトラフィックを流す戦略。 アプリは動いているが処理能⼒は制限されていることが多 い。 メリット: ⽐較的短いRTO/RPO。

    デメリット: パイロットライトよりコスト⾼。 例: 東⻄2リージョンで⽚⽅にリードレプリカと縮⼩構成の アプリが常時待機。 出典:AWS Whitepaper「クラウド内での災害対策オプション」より図を引用
  23. 復旧戦略:Multi-site Active/Active マルチサイト‧アクティブ/アクティブ 概要: 複数のサイトで本番トラフィックを常時処理してお り、⼀⽅に障害が発⽣しても即座にもう⼀⽅が処理を継続 できる戦略。 メリット: ⾼可⽤性‧短いRTO/RPO。 デメリット:

    ⾮常に⾼コスト、設計と整合性管理が難しい。 例: 東京‧⼤阪に同構成のシステムを配置し、DNSやロード バランサで分散。 出典:AWS Whitepaper「クラウド内での災害対策オプション」より図を引用
  24. 待機系の扱い⽅の違い システムやサービスの冗⻑構成や災害復旧において、どのように待機系を扱うかを2つに分類する。 active/passive戦略 通常時:⼀⽅だけが稼働、もう⼀⽅は待機 障害時:待機系を起動‧切り替え(⼿動 or ⾃動) 構成例:メインDB+レプリカ、アプリ待機ノードなど RTO:中程度(数分〜) コスト:低〜中(待機系の分だけ節約可能)

    運⽤の複雑さ: 低〜中(シンプルな設計が可能) active/active戦略 通常時:両系が稼働し、負荷分散される 障害時:⽚系に⾃動でフェイルオーバー(処理継続) 構成例:マルチAZ構成で両⽅のサーバーがリクエストを処理 RTO:⾮常に短い(ほぼゼロ) コスト:⾼い(常時2系統動作) 運⽤の複雑さ:⾼い(整合性管理が難しい) →「待機系がいるかどうか」ではなく、「待機系が通常時に処理するかどうか」という観点
  25. セキュリティを考える ITIL ISO/IEC 27001 NIST SP 800 シリーズ 基準/ フレームワーク

    主な⽤途‧背景 ITサービス運⽤全体に対するフレームワーク 情報セキュリティ管理の国際標準(認証⽬的で採⽤されやすい) ⽶国政府‧軍向けのガイドライン、⺠間にも普及中 CIS Controls ゼロトラストモデル 実⽤的なセキュリティ対策のチェックリスト 境界防御を前提としない設計思想 SOC 2 OWASP SaaS企業がよく使う、内部統制レポート Webアプリケーションの脅威対策に特化 セキュリティのプラクティスは複数のフレームワークや基準が共存している → 分野‧業種‧国‧会社の規模によって「参照すべき基準」が異なる
  26. CVEとは? CVE(Common Vulnerabilities and Exposures) とは 既知の脆弱性に⼀意の識別番号を割り振ったデータベースのこと CVEの⽬的 • 世界中で報告されるソフトウェアやハードウェアの脆弱性を⼀元管理する

    • 各ベンダー‧セキュリティベンダー‧管理者の間で共通⾔語として使えるようにする • 脆弱性管理、リスク評価、⾃動スキャンツールとの連携を可能にする CVEの命名形式 CVE-年(脆弱性が登録された年)-番号(ユニークな通し番号) 例: CVE-2021-44228(Apache Log4j の深刻な脆弱性) この他にもCVSS、NLB、JVN、OSVなどや、ベンダー独⾃のデータベースがある。
  27. ⼿作業でのインフラ構築は⼤変 サービスの実⾏環境であるインフラを構築するのは⼤変 従来はパラメーターシート‧作業⼿順書などを作成し、1つ1つ⼿動で構築していた 設計 ネットワーク設定 マシン設定 OS/MW設定 ランタイム設定 アーキテクチャ決定 命名規則作成

    インフラ定義書作成 etc.. 仮想ネットワーク作成 セキュリティ設定 ルーティング設定 etc.. VM作成 ストレージ作成 ロードバランサー作成 etc.. OS設定 Kernel更新 ミドルウェア設定 etc… ランタイムのインストール 環境変数の設定 ログ設定 etc.. ‧複雑なシステムは⼿順が多く、構築に⽇数がかかる。 ‧⼈間はミスをする、担当者に属⼈化する。 ‧構築に時間がかかるというのは壊せないということ。→ 変更‧更新が困難。
  28. コード化し、再現性と⼀貫性を担保 設計 ネットワーク設定 マシン設定 OS/MW設定 ランタイム設定 アーキテクチャ決定 命名規則作成 インフラ定義書作成 etc..

    仮想ネットワーク作成 セキュリティ設定 ルーティング設定 etc.. VM作成 ストレージ作成 ロードバランサー作成 etc.. OS設定 Kernel更新 ミドルウェア設定 etc… ランタイムのインストール 環境変数の設定 ログ設定 etc.. Terraform, CloudFormation, CDK, Pulumi Ansible, Chef, Docker, Puppet Vagrant, Packer IaC(Infrastructure as Code)によって、プログラムと同様にインフラ構成もコードによって管理する →ソースコード開発と同じ開発フローで設定や構築⽅法を管理できる。 ‧簡単に構築でき、簡単に破棄できる再現可能なインフラ環境を構築できる。 ‧構築の冪等性が担保され、標準化‧⾃動化できる。 ‧可読性‧レビュー可能性‧バージョン管理ができ、ロールバックができる。 → 変更‧更新が容易
  29. コンテナ化 特徴: • アプリケーションとその依存関係をパッケージ化して移植性を⾼めたもの • 実⾏環境として Docker などを使⽤ • Kubernetes

    や ECS などでオーケストレーションされることが多い 代表例: Docker、Podman、Kubernetes 利点: • 開発環境と本番環境の差異を⼩さくできる • ⼤規模‧⻑時間稼働のアプリケーションに向いている • 複数のサービスをまとめてデプロイ‧管理できる 設計 ネットワーク設定 コンテナ設定 マシン設定
  30. サーバーレス 特徴: • サーバー管理が不要(インフラはクラウド側が全⾃動で管理) • イベント駆動で動く(例:HTTPリクエスト、S3にファイルがアップロードされたなど) • 処理が完了すればリソースは解放され、使った分だけ課⾦される 代表例: AWS

    Lambda、Cloud Run Functions、Azure Functions 利点: • スケーリングが⾃動 • ⼩さな処理単位(マイクロ関数)に適している • 初期コストやオーバーヘッドが少ない 設計 サーバーレス設定
  31. 変更を分類し、プロセスを分ける すべてに⼀律のプロセスを適⽤のではなく、変更をリスクや緊急度によって分類し、レビューや承認のプロセ スを分ける。 ITILによる分類の例 標準変更(Standard Change) :リスクが低く繰り返し発⽣する変更  事前承認や⾃動化が可能 通常変更(Normal Change)

    :リスクの評価と承認が必要な変更  重⼤度や影響度に応じて承認レベルを変える 緊急変更(Emergency Change) :サービス中断を避けるため、迅速に実施すべき変更 簡略化された承認プロセスや事後レビューで対応 セマンティックバージョニングやGit Flow, GitHub Flowなど
  32. 段階的なデプロイ ステージング環境 本番に近い条件での検証 開発環境 機能開発や初期テスト 本番環境 ユーザーへのサービス提供 新機能の実装やバグ修正 単体テストやローカル確認 本番環境と同等の構成‧

    データ(仮)で動作確認 統合テスト、受け⼊れテス ト、負荷試験 SLA/SLOを満たすか確認 本番環境に変更を最初からデプロイするのではなく、複数の環境を⽤いて試験を⾏い、段階的に適⽤していく。
  33. 変更を⼩さく、早く、頻繁に届ける リスクの影響を⼩さくするためには、変更を⼩さく、早く、頻繁にデプロイしたい。 → ⼿動プロセスでは限界がある。変更‧デプロイ作業から⼿動作業の排除し、⼀貫性のある⾃動化をする。 これを実現するのが CI(継続的インテグレーション) および CD(継続的デリバリー / デプロイメント)

    継続的インテグレーション(Continuous Integration) 継続的デリバリー/デプロイメント (Continuous Delivery/Deployment) BUILD TEST MERGE RELEASE TO REPOSITORY DEPLOY TO PRODUCTION 継続的インテグレーション 継続的デリバリー 継続的デプロイ 「誰でも‧いつでも‧安全にリリースできる」⽂化 → デリバリーの⺠主化
  34. デプロイ戦略の紹介 停⽌ LB 旧version 新version 新version LB 旧version 新version ❌

    ビックバンデプロイ ローリングデプロイ Blue-Greenデプロイ
  35. デプロイとリリースの違い デプロイ 意味:コードや構成を環境に配置する 主体:開発者‧インフラチーム‧CI/CD タイミング:技術的に配置された瞬間 例:機能は配置済だが⾮表⽰(Feature Flag OFF) リスク:サービスに即影響しない場合もある リリース

    意味: 配置された機能をユーザーに公開する 主体:プロダクトオーナー‧サービスマネージャー タイミング:ビジネス都合に合わせて調整される 例:機能がUIに反映される、Feature Flagを有効化 リスク:ユーザーが使い始めるため影響が⼤きい ほぼ同じ意味に⾒えるが、なぜ分けるのか?
  36. Feature Flag ”Feature Toggles (often also referred to as Feature

    Flags) are a powerful technique, allowing teams to modify system behavior without changing code.” - Pete Hodgson フィーチャーフラグとは、コードを変更することなく システムの振る舞いを変えることができる強⼒なテクニックである 出典:Pete Hodgson「Feature Toggles (aka Feature Flags)」より引用
  37. Tips:クラウドに移しても、すべての責任は移らない 出典:AWSブログ「GxP ソリューションへの AWS 共有責任モデルの適用」より引用 © Amazon Web Services, Inc.

    クラウドに移しても、全ての運⽤責任がなくなるわ けではない。 クラウドプロバイダーが出している責任共有モデル を確認し、クラウドの責任境界を理解した上でサー ビス提供をする必要がある。
  38. Tips:多要素認証(MFA)でログインする クラウドは不正に侵⼊されると、⼀瞬で数千万円を消費できるため、ログインはセキュアに⾏う。 Microsoft Entra による実際の攻撃データに基づく最近の研究では、MFA が侵害のリスクを 99.2% 低減する。 Multi-Factor Authentication(MFA):多要素認証

    異なるカテゴリの認証要素を2つ以上組み合わせる認証⼿法 主な認証要素の3分類: 知識要素:知っているもの(例:パスワード、PIN) 所持要素:持っているもの(例:スマホ、セキュリティキー) ⽣体要素:⾝体的特徴(例:指紋、顔、声) 出典:Microsoft「2023 年 Microsoft デジタル防衛レポート」より引用 出典:akamai「クラウド MFA ソリューションでアプリケーションを保護」より引用
  39. 誤解 開発初期は広い権限でいい 管理者権限が楽 最⼩権限=作業効率が落ちる 正しい理解 初期こそ境界を明確にするべき 楽=危険、トラブル時に責任が集中 適切なRBAC設計で回避可能 ベストプラクティス •

    RBAC(ロールベースアクセス制御)を活⽤ • 権限の定期レビューと棚卸し • ⼀時的な権限昇格にはログと期限を必ず設定 • サービスアカウントと⼈間ユーザーを明確に区別 よくある誤解と対策
  40. Tips:アカウントを分割する リスクを⼩さく、責任を明確にするため、アカウントは分割して管理する。 • 開発 / ステージング / 本番 環境ごとに •

    組織や部署 ごとに • プロジェクト ごとに • アセットの性質(インフラ/ML/データ)ごとに 分割することで以下のようなメリットがある。 • 本番での操作ミスを未然に防ぎ、影響範囲を限定できる • 各アカウントに権限‧予算‧SLOを分離責任の所在が明確になる • プロジェクトや組織ごとのコスト集計が簡単になりコストの⾒える化が進む • アクセス制御やログの分離、ゼロトラストにも対応しやすくセキュリティの強化
  41. Tips:サポートを使うべきタイミング • ⾃⼒での調査が限界(公式ドキュメントにも解決策なし) • サービスのステータスは正常だが、⾃分の環境だけおかしい • 有償サポート契約をしている • SLA違反の疑いがある、課⾦トラブルが発⽣した →

    「まずは調べる、でも抱え込まない」。正しい情報で早く相談すれば、回復も早い。 効率的な問い合わせのコツ • 正確な再現⼿順や時刻を記録(ログ‧リクエストIDなど) • 試したこと‧想定される原因も共有 • 影響範囲(本番/開発)と緊急度を明記 • スクリーンショットよりログや構成ファイルが有効
  42. DevOps Engineering ⽬的: 開発と運⽤の連携を促進し、ソフトウェアのデリバリ速度と品質を向上させる。 主な特徴: • CI/CD パイプラインの構築‧運⽤ • Infrastructure

    as Code(IaC)の活⽤ • ⾃動化と監視による反復可能な運⽤ • 「開発チームが運⽤責任を持つ」⽂化の推進 代表ツール: GitHub Actions / Jenkins / Terraform / Ansible / Argo CD
  43. Observability Engineering ⽬的: システムの内部状態を外部から把握可能にし、迅速なトラブルシュートと改善を⽀援する。 主な特徴: • メトリクス、ログ、トレースの収集と活⽤ • SLI/SLOの設計と運⽤ •

    ダッシュボードとアラート設計 • 根本原因分析(RCA)を⽀える基盤 代表ツール: Prometheus / Grafana / OpenTelemetry / Loki / Jaeger 出典:O'Reilly Japanより画像を引⽤
  44. Chaos Engineering ⽬的: 障害を意図的に発⽣させることで、システムの回復⼒(Resilience)を評価‧強化する。 主な特徴: • 実環境またはステージング環境での実験実施 • 「仮説 →

    実験 → 観測 → 学習」のサイクル • 依存関係‧障害ドメインの可視化 • SLOを維持できる範囲の⾒極め 代表ツール: Chaos Mesh / Gremlin / LitmusChaos / Steadybit 出典:O'Reilly Japanより画像を引⽤
  45. Platform Engineering ⽬的: 開発者が⾃律的かつ安全にプロダクトを開発‧運⽤できる共通基盤を提供する。 主な特徴: • 内製 PaaS や Internal

    Developer Platform(IDP)の構築 • 標準化されたデプロイ‧モニタリング⼿法の提供 • セキュリティ‧ガバナンスの組み込み • 開発者体験(DevEx)の向上 代表ツール: Backstage / Crossplane / Kubernetes / Terraform / Argo CD
  46. 運営するためのプラクティス 維持するためのプラクティス 変化するためのプラクティス Observability Engineering Chaos Engineering Platform Engineering DevOps

    Engineering 紹介したプラクティスとの関係 複数のエンジニアリングに似たような考え⽅が出てくる ※図はあくまでもイメージ より深くその領域を上⼿に扱いたい時、体系化された知識を得たい時、それぞれのエンジニアリングに⼊⾨するのが良い。