運用上の優秀性
運用上の優秀性 の柱には、 開発をサポートし、ワークロードを効率的に実行し、運用に関する洞察を得て、ビジネス価値をもたらすためのサポートプロセスと手順を継続的に改善する能力。 が含まれます。
運用上の優秀性の柱では、設計原則、ベストプラクティス、質問の概要について説明します。実装に関する規範的なガイダンスについては、「運用上の優秀性の柱」のホワイトペーパーを参照してください。
設計原則
クラウドでの 運用上の優秀性 には、5 つの設計原則があります。
-
運用をコードとして実行する: クラウドでは、アプリケーションコードに使用しているものと同じエンジニアリング原理を環境全体に適用できます。ワークロード全体 (アプリケーション、インフラストラクチャ) をコードとして定義し、コードを使用して更新できます。運用手順をコードとして実装し、イベントに対応してそのコードをトリガーすることで自動的に実行できます。運用をコードとして実行することで、人為的なミスを抑制し、イベントへの一貫性のある対応を実現できます。
-
小規模かつ可逆的な変更を頻繁に行う: コンポーネントを定期的に更新できるようにワークロードを設計します。変更は、失敗した場合に元に戻すことができるように小規模に行います (可能な場合は、顧客に影響がないようにします)。
-
運用手順を定期的に改善する: 運用手順を実施するときに、改善の機会を探します。ワークロードを改良するときに、手順もそれに応じて改良します。定期的なゲームデーを計画し、すべての手順が効果的で、チームがその手順を熟知していることを確認および検証します。
-
障害を予想する: 障害の考えられる原因を除去または軽減できるように、原因を特定する「プレモータム」演習を実施します。障害シナリオをテストし、その影響に関する理解を検証します。対応手順をテストし、手順が効果的で、チームが手順の実行を十分に理解していることを確認します。定期的なゲームデーを計画し、ワークロードと、シミュレートされたイベントに対するチームの応答をテストします。
-
運用上のすべての障害から学ぶ: 運用上のすべてのイベントと障害から教訓を学び、改善を促進します。チーム間と組織全体で教訓を共有します。
定義
クラウドでの 運用上の優秀性 には、4 つのベストプラクティスの分野があります。
組織のリーダーシップは、ビジネス目標を定義します。組織は、要件と優先順位を理解し、これらを使用してビジネスの成果を達成するための作業を整理し、指導する必要があります。ワークロードはサポートに必要な情報を送出する必要があります。ワークロードの統合、デプロイ、提供を可能にするサービスを実装することで、反復プロセスが自動化され、本番環境への有益な変化の流れを増やすことができます。
ワークロードの運用に固有のリスクが存在する可能性があります。本番環境へ移行するためにこれらのリスクを理解し、十分な情報に基づく決定を下す必要があります。チームがワークロードをサポートできる必要があります。希望するビジネス上の成果から得られたビジネスおよび運用上のメトリクスにより、ワークロードの状態や運用上のアクティビティを把握し、インシデントに対応できます。優先順位はビジネスニーズやビジネス環境の変化に応じて変化します。これらをフィードバックループとして使用して、組織とワークロードの運用を継続的に改善します。
ベストプラクティス
組織
チームは、ビジネスの成功を実現する優先順位を設定するために、ワークロード全体、その役割、共有されるビジネス目標に関する理解を共有する必要があります。優先順位を明確に定義することで、努力を通じて得られるメリットが最大限に活かされます。ビジネス、開発、運用チームなど、主要な利害関係者が関わる社内外の顧客のニーズを評価し、重点領域を決定します。顧客ニーズを評価することにより、ビジネス成果を達成するために必要なサポートについて十分に理解できるようになります。組織のガバナンスによって定義されたガイドラインや義務、および特定の重点領域の必須化や重視が必要となる可能性のある規制コンプライアンス要件や業界標準などの外部要因をしっかりと認識します。内部ガバナンスおよび外部コンプライアンス要件への変更を識別するメカニズムがあることを検証します。要件が特定されていない場合は、必ずこの決定にデューデリジェンスが適用されていることを確認します。ニーズの変化に応じて更新できるように、優先順位を定期的に確認します。
ビジネスに対する脅威 (たとえば、ビジネスリスクと負債や情報セキュリティの脅威) を評価し、この情報をリスクレジストリに保持します。リスクの影響を評価し、競合する利益のトレードオフや代替アプローチを評価します。たとえば、新しい機能の市場投入までの時間を短縮することは、コストの最適化よりも重視されます。または、非リレーショナルデータ用にリレーショナルデータベースを選択すれば、リファクタリングなしで、システムの移行が簡素化されます。メリットとリスクを管理し、重点領域を決定する際に十分な情報に基づいて意思決定を下せるようにします。一部のリスクや選択肢は、一定期間許容される可能性があり、関連するリスクを軽減できる場合もあれば、リスクが残るのを容認できない場合もあります。その場合、リスクに対処するための措置を講じることになります。
チームはビジネスの成果を達成するうえでの役割を理解する必要があります。チームは他のチームが成功するためのそれぞれの役割を理解し、自分たちのチームが成功するための他のチームの役割を理解し、目標を共有する必要があります。責任、所有権、意思決定方法、意思決定を行う権限を持つユーザーを理解することは、労力を集中的に投入し、チームの利点を最大化するのに役立ちます。チームのニーズは、サポートする顧客、組織、チームの構成、およびワークロードの特性によって形成されます。1 つの運用モデルで組織内のすべてのチームとそのワークロードをサポートできると思うのは不合理です。
アプリケーション、ワークロード、プラットフォーム、インフラストラクチャの各コンポーネントの所有者が特定されていること、および各プロセスと手順の定義を担当する所有者、およびそのパフォーマンスに責任を持つ所有者が特定されていることを確認します。各コンポーネント、プロセス、手順のビジネス価値、それらのリソースが配置されている理由やアクティビティが実行されている理由、所有権が存在する理由を理解することで、チームメンバーのアクションが明らかになります。チームメンバーの責任を明確に定義することで、当該メンバーが適切に行動し、責任と所有権を識別するメカニズムを持つことができます。イノベーションを制約しないように、追加、変更、例外をリクエストするメカニズムを備えます。チームがどのように連携して相互にサポートするのか、また、ビジネスの成果について、チーム間の合意を定義します。
チームメンバーにサポートを提供することで、チームメンバーがより効果的に行動し、ビジネスの成果をサポートできるようにします。業務を委嘱された上級リーダーは、目標値を設定し、成功を測定する必要があります。上級リーダーは、ベストプラクティスの採用と組織の進化の協賛者、支持者、および推進者である必要があります。影響を最小限に抑えるために、結果にリスクがある場合は措置を講じるようにチームメンバーの意識を高めるとともに、リスクに対処し、インシデントを回避できるようにするため、リスクがあるとチームメンバーが考える場合は、意思決定者や利害関係者にエスカレーションすることを推奨します。チームメンバーがタイムリーで適切な措置を講じることができるように、既知のリスクと計画されたイベントについて、適時かつ明確で実用的なコミュニケーションを行います。
学習を加速するための実験を奨励し、チームメンバーが関心と当事者意識を持ち続けるようにします。チームは、新しいテクノロジーを採用し、需要と責任の変化をサポートするために、スキルセットを強化する必要があります。専ら学習のために設けられた時間を提供することで、これをサポートし、奨励します。チームメンバーが成功し、ビジネスの成果をサポートするためにスケールできるように、ツールとチームメンバーの両方のリソースを持っていることを確認します。組織間の多様性を活用して、複数のユニークな視点を追求します。この視点を使用して、イノベーションを高め、想定に挑み、確証バイアスに傾くリスクを軽減します。チーム内のインクルージョン、多様性、アクセシビリティを向上させ、有益な視点を得ます。
組織に適用される外部の規制やコンプライアンスの要件がある場合は、AWS クラウドコンプライアンスが提供するリソースを使用して、優先順位に与える影響を判別できるようにチームを教育する必要があります。Well-Architected フレームワークは学習、測定、改善に重点を置いています。アーキテクチャを評価し、時間の経過とともにスケールする設計を実装するための一貫したアプローチを提供します。AWS では、開発前のアプローチ、本番稼働前のワークロードの状態、本番稼働中のワークロードの状態などを確認するのに役立つ AWS Well-Architected Tool を提供しています。最新の AWS アーキテクチャのベストプラクティスと比較して、ワークロードの全体的なステータスをモニタリングし、潜在的なリスクについてインサイトを得ることができます。AWS Trusted Advisor は、最適化を推奨する中心的なチェックのセットへのアクセスを提供するツールであり、優先順位を決定するのに役立ちます。ビジネスおよびエンタープライズサポートの顧客は、優先順位をさらに高めることができるセキュリティ、信頼性、パフォーマンス、コストの最適化に重点を置いた追加のチェックにアクセスできます。
AWS は、AWS とそのサービスについてチームを教育し、選択がどのようにワークロードに影響を与えるかを深く理解するのに役立ちます。チームを教育するには、AWS サポート (AWS ナレッジセンター、AWS ディスカッションフォーラム、AWS サポートセンター) および AWS ドキュメントが提供するリソースを使用する必要があります。AWS に関する質問の支援を受けるには、AWS サポートセンターを利用して AWS サポートに連絡してください。また、AWS は Amazon Builders' Library の AWS の運用を通じて学んだベストプラクティスとパターンも共有しています。AWS ブログと公式の AWS ポッドキャストでは、その他のさまざまな有益な情報を入手できます。AWS トレーニングと認定では、AWS の基礎に関するセルフペースデジタルコースを通じて無料のトレーニングを提供しています。また、インストラクターが実施するトレーニングに登録して、チームの AWS スキルの開発をさらにサポートすることもできます。
AWS Organizations など、アカウント間で環境を集中管理できるツールまたはサービスを使用して、運用モデルの管理に役立てる必要があります。AWS Control Tower などのサービスでは、この管理機能が拡張され、アカウントのセットアップに関する設計図 (運用モデルのサポート) を定義し、AWS Organizations を使用して進行中のガバナンスを適用し、新しいアカウントのプロビジョニングを自動化できます。AWS マネージドサービス、AWS マネージドサービスパートナー、または AWS パートナーネットワークのマネージドサービスプロバイダをはじめ、各種のマネージドサービスプロバイダは専門的な実装型のクラウド環境を提供し、セキュリティとコンプライアンスの要件、ビジネスの目標をサポートします。マネージドサービスを運用モデルに追加すると、時間とリソースを節約でき、新しいスキルや能力を開発するのではなく、戦略的成果に集中して社内チームを維持できます。
以下の質問は、 運用上の優秀性 に関するこれらの考慮事項に焦点を当てています。
OPS 1: 優先順位はどのように決定すればよいでしょうか? |
OPS 2: ビジネスの成果をサポートするために、組織をどのように構築しますか? |
OPS 3: 組織の文化はビジネスの成果をどのようにサポートしますか? |
ある時点で、優先順位の小さなサブセットに注力したい場合に遭遇するかもしれません。必要な機能の開発とリスクの管理を確実にするために、長期的にバランスのとれたアプローチを使用します。優先順位は定期的に見直して、 変更が必要な場合は優先順位を更新します。責任と所有権が未定義または不明な場合、必要な活動をタイムリーに処理せず、これらのニーズに対応するために重複し、競合する可能性のある取り組みが発生するリスクがあります。組織文化は、チームメンバーのジョブに対する満足度と定着率に直接影響します。チームメンバーのやる気と能力を引き出して、ビジネスの成功につなげます。イノベーションを起こし、アイデアを成果に変えるには、実験が必要です。望ましくない結果は、成功につながらないパスを特定することに成功した実験であると認識します。
準備
運用上の優秀性を準備するには、ワークロードと期待される動作を理解する必要があります。そうすることでワークロードの状況を把握し、ワークロードをサポートする手順を構築するように設計できます。
ワークロードを設計する際には、可観測性と問題調査への対応においてすべてのコンポーネントにわたって内部状態 (メトリクス、ログ、イベント、トレースなど) を理解するために必要な情報が送出されるようにします。ワークロードの稼働状態を監視し、結果にリスクがあった場合にそれを特定し、効果的な対応を可能にするために必要なテレメトリの開発を繰り返します。ワークロードを計測する際は、フィルターを使用して時間の経過とともに最も有用な情報を選択できるので、状況認識を可能にする幅広い情報 (状態の変化、ユーザーのアクティビティ、権限アクセス、使用量のカウンターなど) を取得します。
リファクタリング、品質についてのすばやいフィードバック、バグ修正を可能にし、本番環境への変更のフローを改善するアプローチを採用します。これらは、本番環境移行時における有益な変更を促進し、デプロイされた問題を制限するとともに、お客様の環境において、デプロイメントアクティビティを通じて生じた問題、または検出された問題をすばやく特定し、修正できるようにします。
品質に関する迅速なフィードバックを提供し、望ましい結果をもたらさない変更から迅速に復旧できるようにするアプローチを採用します。これらを実践することにより、変更のデプロイメントによって生じる問題の影響が軽減されます。変更が失敗した場合の計画を立てて、必要な場合は迅速に対応し、変更をテストして検証できるようにします。環境で計画されたアクティビティに注意して、計画されたアクティビティに影響する変更のリスクを管理できるようにします。頻繁で小さく可逆的な変更に重点を置いて、変更の範囲を制限します。これにより、トラブルシューティングが容易になり、修復がすばやくできるようになります。また、変更をロールバックすることもできます。また、より頻繁に重要な変更の恩恵を受けることができることを意味します。
ワークロード、プロセス、手順、および従業員の運用準備状況を評価し、ワークロードに関連する運用上のリスクを理解します。一貫性のあるプロセス (手作業または自動化によるチェックリストを含む) を使用して、いつワークロードまたは変更を本稼働する準備ができるかを知る必要があります。また、これにより、対処する計画を立てる必要がある領域を見つけることもできます。日常的な活動を文書化したランブックと、問題解決のためにプロセスを導くプレイブックを備えます。メリットとリスクを理解し、十分な情報に基づく決定を下して、変更が本稼働環境に入ることを可能にします。
AWS では、ワークロード全体 (アプリケーション、インフラストラクチャ、ポリシー、ガバナンス、運用) をコードとして表示できます。すべてコードで定義し、更新できます。つまり、アプリケーションコードに使用しているのと同じエンジニアリング規律をスタックのあらゆる要素に適用し、チームや組織間でこれらを共有することで、開発作業のメリットを拡大できます。クラウド上でコードとしてオペレーションを使用するとともに、安全に実験を行う機能を使用して、ワークロードや運用手順を開発し、障害に備えた練習を実施します。AWS CloudFormation を使用すると、テンプレート化された整合性のあるサンドボックスの開発環境、テスト環境、本番環境を構築することができ、運用制御のレベルを向上できます。
以下の質問は、 運用上の優秀性 に関するこれらの考慮事項に焦点を当てています。
OPS 4: どのようにワークロードを設計して、その状態を理解できるようにするのですか? |
OPS 5: どのように欠陥を減らし、修正を容易にして、本番環境へのフローを改善するのですか? |
OPS 6: どのようにデプロイのリスクを軽減しますか? |
OPS 7: ワークロードをサポートする準備が整っていることはどうすれば確認できるでしょうか? |
運用アクティビティをコードとして実装することに投資することにより、運用担当者の生産性を最大に引き上げ、エラーの発生を最小限に抑え、自動応答を可能にします。「事前予測」のアプローチで、失敗を予測し、必要に応じて手順を作成します。一貫したタグ付け戦略に従って、リソースタグと AWS リソースグループを使用してリソースを識別できるようにします。組織、原価計算、アクセスコントロールのリソースにタグを付け、自動化された運用アクティビティの実行に的を絞ります。クラウドの伸縮性を活用したデプロイ方法を導入し、開発活動を促進し、システムの事前デプロイを促進して実装を高速化します。ワークロードを評価するために使用するチェックリストに変更を加える場合は、準拠しなくなった本番システムで行うことを計画します。
運用
ワークロードの運用の成功は、ビジネスの成果と顧客の成果の達成度によって評価されます。予想される成果を定義し、成功を評価する方法を決定します。また、ワークロードおよび運用が成功したかどうかを判断するための計算で使用するメトリクスを特定します。運用状態には、ワークロードの状態と、そのワークロードのサポートにおいて実行されるオペレーション活動の状態と成功 (デプロイとインシデント対応など) の両方を含みます。改善、調査、介入のためのメトリクスのベースラインを確立し、メトリクスを収集して分析し、オペレーションの成功と経時的な変化について理解していることを検証します。収集したメトリクスを使用して、顧客とビジネスのニーズを満たしているかどうかを確認し、改善の余地がある分野を特定します。
運用上の優秀性を実現するには、運用上のイベントを効率的かつ効果的に管理する必要があります。計画的および予期しない運用イベントの両方に適用されます。十分に把握しているイベントには既定のランブックを使用し、問題の調査および解決にはプレイブックを使用します。ビジネスと顧客への影響に基づいてイベントへの応答に優先順位を付けます。イベントへの応答でアラートが発生する場合、実行する関連プロセスがあり、所有者が具体的に指名されていることを確認します。イベントを解決する担当者を事前に決めておき、緊急性および影響に基づき、必要に応じて他の担当者を関与させるためにエスカレーションするトリガーを含めます。以前に処理したことがないイベント応答によってビジネスに影響が及ぶ場合は、アクションの方針を決定する権限を持つ担当者を特定し、関与させます。
対象 (顧客、ビジネス、開発者、運用など) に合わせたダッシュボードと通知によってワークロードの運用状況が伝えられるため、適切なアクションの実行や予測の管理、通常の運用が再開される時期の把握を行うことができます。
AWS では、ワークロードおよび AWS からネイティブに収集したメトリクスのダッシュボードビューを作成できます。CloudWatch またはサードパーティのアプリケーションを活用し、運用アクティビティについて、ビジネス、ワークロード、運用レベルのビューをまとめて表示できます。AWS では、AWS X-Ray、CloudWatch、CloudTrail、VPC フローログなどのログ機能によって、ワークロードを深く理解することができます。この機能を使用すると、ワークロードの問題を特定することができ、根本原因の分析や修正に役立ちます。
以下の質問は、 運用上の優秀性 に関するこれらの考慮事項に焦点を当てています。
OPS 8: ワークロードの正常性をどのように把握しますか? |
OPS 9: オペレーションの正常性をどのように把握しますか? |
OPS 10: ワークロードと運用イベントはどのように管理しますか? |
収集するすべてのメトリクスは、ビジネスニーズとサポートする結果に合わせて調整する必要があります。十分に理解されたイベントに対するスクリプト化されたレスポンスを開発し、イベントを認識した場合のパフォーマンスを自動化します。
進化
運用上の優秀性を維持するには、学び、共有し、継続的に改善する必要があります。継続的かつ段階的な改善を行うために専用の作業サイクルを作成します。顧客に影響を与えるすべてのイベントについて、インシデント後の分析を実行します。反復を制限または防止する要因と予防措置を特定します。必要に応じて、影響を受けたコミュニティと貢献要因を伝達します。ワークロードと運用手順の両方について、改善の機会 (機能のリクエスト、問題の修正、コンプライアンス要件など) を定期的に評価し、優先順位を付けます。手順にフィードバックループを取り入れ、改善が必要な分野をすばやく特定し、実際に運用して教訓を学びます。
チーム間で学んだ教訓を共有し、その教訓の利点を活用します。学んだ教訓に見られる傾向を分析し、運用のメトリクスに関してチーム間で遡及的分析を行い、改善の機会とその方法を特定します。改善をもたらす変更を実施し、結果を評価して成功の判断を行います。
AWS では、ログデータを Amazon S3 にエクスポートしたり、ログを直接 Amazon S3 に送信して、長期保存したりできます。AWS Glue を使用すると、分析のために Amazon S3 でログデータを検出して準備し、関連するメタデータを AWS Glue データカタログに保存できます。Amazon Athena は Glue とのネイティブな統合により、ログデータを分析し、標準 SQL を使用してクエリを実行できます。Amazon QuickSight のようなビジネスインテリジェンスツールを使用して、データの可視化、調査、分析を行うことができます。改善を促進する傾向や関心のあるイベントを発見します。
以下の質問は、 運用上の優秀性 に関するこれらの考慮事項に焦点を当てています。
OPS 11: オペレーションを進化させる方法 |
運用の進化を成功させるためには、頻繁な小規模の改善、実験と開発およびテストの改善のための安全な環境と時間、失敗から学ぶことを推奨する環境が重要です。運用では、サンドボックス、開発、テスト、本番の各環境をサポートします。運用管理レベルが向上し、開発を促進します。また、本番環境にデプロイした変更の成果に関する予測可能性が向上します。
リソース
運用上の優秀性 に関する AWS のベストプラクティスの詳細については、以下のリソースを参照してください。
Operational Excellence PillarDevOps and AWS
DevOps at Amazon