AWS を運用しているエンジニアなら読んだ人も多いであろう,2015年10月に公開された "AWS Well-Architected Framework" に実は大幅なアップデートが入っていることに気付いた.時期的には AWS re:Invent 2016 の直前で,AWS re:Invent 2016 で発表された新サービスを見越していたんだろうと推測できる.
アップデート内容としては大きく2個ある.
今までの4本の柱のベストプラクティスが一部見直された
新たに5本目の柱 "Operational Excellence" が追加された
今回アップデートされた "AWS Well-Architected Framework" を理解するために活用した「AWS Well-Architected 研修」を紹介しつつ,実際に "Operational Excellence" を読んでみた感想をまとめておこうと思う.
無料で受講できる「AWS Well-Architected 研修」
以下のページにある "Training" からリンクを辿ると「AWS Well-Architected 研修」を受講することができる.しかも無料.ちゃんと "Operational Excellence" も含まれていて,最新版の "AWS Well-Architected Framework" に準拠した内容になっていた.
aws.amazon.com
カリキュラム
カリキュラムは6個あり,"AWS Well-Architected Framework" の全体概要を学ぶカリキュラムと,柱ごとの概要を学ぶカリキュラムがある.
AWS Well-Architected - Module 1: The AWS Well-Architected Framework
AWS Well-Architected - Module 2: The Security Pillar
AWS Well-Architected - Module 3: The Reliability Pillar
AWS Well-Architected - Module 4: The Performance Efficiency Pillar
AWS Well-Architected - Module 5: The Cost Optimization Pillar
AWS Well-Architected - Module 6: The Operational Excellence Pillar
全体的に良いなと感じたのは以下の3点だった.AWS 初学者にもオススメできる.
動画内に Knowledge Check があって理解度確認をしながら進められること
関連資料のリンクも多く紹介されていること
オンプレ環境など従来の環境とクラウドネイティブな環境の比較を学べること
学んだこと
"一般的な設計の原則" に "Improve through game days" が新たに追加されていた
本番環境と同等なリクエストでアーキテクチャをテストすることによって改善に役立てるべき(これを "Game Days" と表現している)
"Game Day" は AWS 主催のトラブルシューティングコンテストのようなもの(ISUCON 的な)
"パフォーマンス効率の柱" に "Mechanical sympathy" が新たに追加されていた
処理特性などを考えて,達成したいことに最適な技術を選択するべきということ
"コストの最適化の柱" の Key AWS Services(最も重要なサービスのこと)が "コスト配分タグ" だった
認定証
"Operational Excellence" を読んでみた
まだ日本語訳になった資料は公開されていないが,"Operational Excellence" は "運用上の優秀性" と訳されていた."Operational Excellence" をザッと読んでみた.あくまで個人的なコメントなので,是非実際に PDF を読んで頂きたい!
設計の原則
Perform operations with code
Align operations processes to business objectives
Make regular, small, incremental changes
定期的に/小さく/段階的に変更しよう!サービスのダウンタイムを取らないように運用手順を考えよう!
Test for responses to unexpected events
Learn from operational events and failures
Keep operations procedures current
ベストプラクティス(質問集)
OPS 1. What best practices for cloud operations are you using?
Operational Checklist
Proactive Plan
Security Checklist
チェックリストを作って確認できるプロセスにすることは確かに重要だなと思った.2013年から更新されていない点は気になるけど,AWS から公式に "Operational Checklists for AWS" が公開されていて,"AWS Well-Architected Framework" と似たような観点で確認するべきチェックリストが用意されている.
またビジネス的にインパクトのあるキャンペーンを実施するときなどは事前に計画して運用時に考慮するべきと書かれている.僕が担当してるシステムだと,テレビ砲や Yahoo! 砲が予定されているときは事前に共有をもらうようにしている.
OPS 2. How are you doing configuration management for your workload?
Resource Tracking
Documentation
Capture Operational Learnings
Immutable Infrastructure
Automated Change Procedures
Configuration Management Database (CMDB)
一言で言うと Infrastructure as Code を目指そうという内容だった.ドキュメント化(コード化)して,GitHub などで管理して,反映も自動化することが重要と書かれている.
OPS 3. How are you evolving your workload while minimizing the impact of change?
Deployment Pipeline
Release Management Process
Small Incremental Changes
Revertible Changes
Risk Mitigation Strategies
リリースの影響を小さくするために,デプロイフロー(継続的インテグレーション/継続的デリバリー)を整えたり,リリース戦略(Blue/Green デプロイメント/カナリアリリース/AB テスト)を適用したりするべきと書かれていた.特に "Revertible Changes" は実現できていないところもあって考えてみたい.ロールバックだけではなく,フィーチャートグルにも言及されていたのは良かった.
OPS 4. How do you monitor your workload to ensure it is operating as expected?
Monitoring
Aggregate Logs
Alarm-Based Notifications
Trigger-Based Actions
内部的な要因や外部的な要因で障害は発生してしまうため,適切にモニタリングして,異常値であればアラートを飛ばしたり,自動的にアクションを実施したりするべきと書かれていた.
OPS 5. How do you respond to unplanned operational events?
Playbook
RCA Process
Automated Response
障害が発生したときにどのように対応するかという話だった.Playbook の適切な日本語訳がわからないけど,オンコールプロセスを用意したり,障害の影響度に応じて組織内でエスカレーションしていくプロセスを決めておくなどが例として挙がっていた."Automated Response" も今後は考えたい.自動化できる対応は自動化して運用を楽にするべき.
OPS 6. How is escalation managed when responding to unplanned operational events?
Appropriately Document and Provision
Functional Escalation with Queue-based Approach
Hierarchical Escalation
External Escalation Path
Hierarchical Priority Escalation is Automated
OPS 5. と関連していて,エスカレーションをどのように管理するかという話だった.組織内でエスカレーションしていくプロセスを決めておくだけではなく,AWS サポートや外部サービスのサポートなど,影響する可能性のあるパートナーのエスカレーションパスも事前に用意しておくという話は参考になった.
Achieving Agility by Following Well-Architected Framework Principles (ARC203)
AWS re:Invent 2016 で "AWS Well-Architected Framework" に関するセッションがあった.
VIDEO www.youtube.com
まとめ
2016年11月に "AWS Well-Architected Framework" が大幅にアップデートされていた
無料で受けられる「AWS Well-Architected 研修」があった
5本目の柱 "Operational Excellence" を読むと,システムを安定稼働させるためのベストプラクティスと,障害時に迅速に対応するためのベストプラクティスが学べた
関連記事
kakakakakku.hatenablog.com