Skip to content
Latchkey

ドリフト検知とは?

ドリフト検知とは、インフラの実際の状態を、宣言された意図された状態と定期的に比較し、あらゆる乖離 - コンフィギュレーションドリフト - が問題を引き起こす前に表面化させる実践です。

見えないドリフトは修正できません。ドリフト検知は、実際に稼働しているものと、インフラのコードが稼働しているべきだと言っているものとを比較することで乖離を可視化し、インシデントの最中に発見するのではなく、意図的にギャップを見つけて修正できるようにします。

どのように機能するか

ドリフト検知は、リソースの実際の状態を照会し、それをコードやstate fileに記述された望ましい状態と比較します。あらゆる差異 - 余分なファイアウォールルール、変更されたインスタンスサイズ、手作業で編集された設定 - はドリフトとして報告されます。この比較により、目に見えない乖離が、明示的でレビュー可能なリストへと変わります。

いつ実行すべきか

検知は、時折ではなく、継続的にあるいはスケジュールに沿って実行されるときに最も役立ちます。定期的に実行することで、変更が最近のもので理解しやすいうちに、ドリフトが現れた直後に捉えられます。多くのチームは、開始時点の状態が期待通りであることを確認するために、変更を適用する前にCIでも実行します。

結果を読み解く

すべてのドリフトが同じではありません。一部は危険な不正な変更を示し、一部は単にコード化が必要な正当な緊急修正を反映し、一部はプラットフォーム自身が管理するフィールドから生じる無害なノイズです。検知されたドリフトのトリアージとは、項目ごとに、現実をコードに戻すのか、それともコードを現実に合わせて更新するのかを判断することを意味します。

是正

ドリフトが見つかったら、再収束させます。インフラのコードを再適用すると、ドリフトした状態が上書きされ、宣言された構成が復元されます。あるいは、手作業の変更が正しかった場合は、将来のapplyがそれを保持するように、その変更をコードに取り込みます。いずれの方法でも、コードと現実が再び一致します。

検知と防止

ドリフト検知はセーフティネットであり、治療法ではありません。ドリフトに対する最も強力な防御は、それを防止すること - イミュータブルインフラと規律あるInfrastructure as Codeのワークフローを通じて - です。検知は、残ったあらゆる隙間をすり抜けるドリフトを捉えることで防止を補完し、システム全体を正直に保ちます。

重要なポイント

  • ドリフト検知は、実際のインフラを宣言された状態と比較します。
  • 継続的に実行することで、修正が容易なうちに乖離を早期に捉えます。
  • コードを再適用するか、正当な変更をコード化することで是正します。

関連ガイド