運用上の優秀性の柱 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

運用上の優秀性の柱

AWS Well-Architected フレームワークの運用上の優秀性の柱は、システムの実行とモニタリング、プロセスと手順の継続的な改善に焦点を当てています。これには、開発をサポートし、ワークロードを効果的に実行し、運用に関するインサイトを得て、ビジネス価値を提供するためのサポートプロセスと手順を継続的に改善する機能が含まれます。自己修復ワークロードは、人間の介入なしにほとんどの問題を検出して修復することで、運用の複雑さを軽減できます。このセクションで説明されているベストプラクティスに従って、この目標を達成し、Amazon Neptune Analytics のメトリクス、APIs、メカニズムを使用して、ワークロードが予想される動作から逸脱した場合に適切に対応できます。

運用上の優秀性の柱に関するこの説明では、以下の主要分野に焦点を当てています。

  • Infrastructure as code (IaC)

  • 変更管理

  • レジリエンシー戦略

  • インシデント管理

  • コンプライアンスに関する監査レポート

  • ログ記録とモニタリング

IaC アプローチを使用してデプロイを自動化する

IaC を使用して Neptune へのデプロイを自動化するためのベストプラクティスは次のとおりです。

運用のための設計

Neptune Analytics グラフの操作方法を改善するアプローチを採用します。

  • 開発、テスト、本番稼働用に個別の Neptune Analytics グラフを維持します。これらのグラフには、データセット、ユーザー、運用コントロールが異なる場合があります。

  • さまざまな用途に合わせて個別の Neptune Analytics グラフを維持します。たとえば、2 つの分析ユーザーのグループで、タイムライン、モデル、パフォーマンスと可用性の SLAs、使用パターンが異なる個別のグラフが必要な場合は、グループごとに個別のグラフを維持します。

  • Neptune Analytics メンテナンス更新のためにユーザーと運用スタッフを準備します。

小規模で可逆的な変更を頻繁に行う

以下の推奨事項は、複雑性を最小限に抑え、ワークロードの中断の可能性を減らすために実行できる小規模で可逆的な変更に焦点を当てています。

  • IaC テンプレートとスクリプトを GitHub や GitLab などのソースコントロールサービスに保存します。

    重要

    AWS 認証情報をソース管理に保存しないでください。

  • IaC デプロイでは、 AWS CodeDeployや などの継続的インテグレーションおよび継続的デリバリー (CI/CD) サービスを使用する必要がありますAWS CodeBuild。本番稼働用以外の Neptune Analytics 環境でコードをコンパイル、テスト、デプロイしてから、本番稼働用グラフに昇格させます。

実用的なインサイトのためのオブザーバビリティを実装する

ワークロードの動作、パフォーマンス、信頼性、コスト、ヘルスを包括的に把握できます。以下の推奨事項は、Neptune Analytics でそのレベルの理解に役立ちます。

  • Neptune Analytics の Amazon CloudWatch メトリクスをモニタリングします。これらのメトリクスから、グラフのサイズ (ノード数、エッジ数、ベクトル数、合計バイトサイズ)、CPU 使用率、クエリリクエストとエラー率を判断できます。

  • NumQueuedRequestsPerSec、、NumOpenCypherRequestsPerSec、、 などの主要なメトリクスとGraphSizeBytes、アプリケーションログにある CPUUtilization Neptune GraphStorageUsagePercentクライアントレスポンスの CloudWatch ダッシュボードとアラームを作成します。

  • 通知を設定して、グラフサイズ、リクエストレート、CPU 使用率がしきい値を超えたときなど、Neptune Analytics グラフの状態をモニタリングします。例えば、グラフで GraphStorageUsagePercentが 90% まで大幅に拡大する場合は、メモリ最適化 Neptune キャパシティユニット (m-NCU) 容量を増やすかどうかを決定します。現在の m-NCU が 128 の場合、256 に増やすとストレージが約 45% 減少します。NumQueuedRequestsPerSec が 0 より大きいことが多い場合は、m-NCU 容量を増やしてコンピューティング容量を増やすことを検討してください。または、クライアント側の同時実行数を減らすこともできます。

すべての運用上の障害から学ぶ

自己修復インフラストラクチャは、まれな問題が発生したり、対応が意図したほど効果的でなくなったりすると、反復して発生する長期的な労力です。以下のプラクティスを採用することで、その目標に焦点を当てることができます。

  • すべての障害から学習することで、改善を推進します。

  • チームや組織全体で学んだことを共有します。組織内の複数のチームが Neptune を使用している場合は、共通のチャットルームまたはユーザーグループを作成して、学習とベストプラクティスを共有します。

ログ記録機能を使用して、不正または異常なアクティビティをモニタリングする

ログ記録を使用して、異常なパフォーマンスとアクティビティパターンを監視します。以下のベストプラクティスを考慮します。

  • Neptune Analytics は、 を使用してコントロールプレーンアクションのログ記録をサポートします AWS CloudTrail。詳細については、「 を使用した Neptune Analytics API コールのログ記録 AWS CloudTrail」を参照してください。この機能を使用すると、Neptune Analytics リソースの作成、更新、削除を追跡できます。堅牢なモニタリングとアラートのために、CloudTrail イベントを Amazon CloudWatch Logs と統合することもできます。Neptune Analytics サービスアクティビティの分析を強化し、 のアクティビティの変更を特定するには AWS アカウント、Amazon Athena を使用して CloudTrail ログをクエリできます。例えば、クエリを使用して傾向を識別したり、アクティビティを属性 (ソース IP アドレスやユーザーなど) でさらに分離したりできます。

  • CloudTrail を使用して、クエリ実行などの Neptune Analytics データプレーンアクティビティのログ記録を有効にすることもできます。実行中のクエリ、その頻度、およびソースを表示できます。デフォルトでは、CloudTrail はデータイベントをログ記録しません。追加の変更がイベントデータに適用されます。詳細については、AWS CloudTrail 料金表を参照してください。

  • コントロールプレーンまたはデータプレーンのいずれかで、Neptune Analytics へのアプリケーション呼び出しを記録することもできます。たとえば、 を使用してクエリAWS SDK for Python (Boto3)を行う場合、デバッグレベルのログ記録を有効にして、コンソールまたはファイルへのクエリのトレースを取得できます。これは開発時に便利です。また、アプリケーションから例外をキャッチしてログに記録することをお勧めします。