主なポイント
- バックアップとリカバリを「Infrastructure as Code(IaC)」として管理することで、構成のドリフトを低減し、データ保護を最新のクラウド導入手法に整合させることができます。
- ClumioのTerraformプロバイダーを利用することで、AWSアカウント、ポリシー、および保護ルールを宣言的に定義し、バージョン管理を行うことが可能になります。
- タグベースの保護機能は、既存および将来のリソースを自動的に保護するように設計されており、手動による介入を削減し、環境全体で効率的にスケールできるようにします。
- Terraform でバックアップポリシーを定義することで、標準的なプルリクエストワークフローを通じて、可視性、再現性、およびガバナンスの向上に役立ちます。
- このアプローチは、マルチアカウントの AWS 環境や、すでに Terraform を標準化している組織にとって特に有益です。
クラウドインフラストラクチャは、ますます「コードとして定義される」ようになってきています。EC2 インスタンス、IAM(Identity and Access Management)ロール、仮想プライベートクラウド、データベースは、現在ではバージョン管理されたリポジトリに格納され、IaC を通じて予測可能な形でデプロイされています。
しかし、バックアップおよびリカバリポリシーは、依然としてWebコンソールで手動設定されることが多くあります。このギャップがリスクを生み出します。インフラストラクチャが宣言型であるにもかかわらず、データ保護がそうではない場合、チームは次のようなリスクにさらされます:
- 構成のドリフト。
- アカウント間の保護に一貫性がない。
- 手動によるミス。
- 実際に何が保護されているかについての可視性の欠如。
すでにTerraformを利用している組織においては、バックアップと復旧も、スタックの他の部分と同様に、コードを通じて管理されるべきです。
ClumioのTerraformプロバイダーを使用すれば、AWSのデータ保護をインフラストラクチャと併せて宣言的に定義できます。このプロバイダーとそのドキュメントについては、こちらからご確認いただけます:https://registry.terraform.io/providers/clumio-code/clumio/latest/docs/guides/getting_started。
本記事では、TerraformとCommvaultのClumioを使用してAWSワークロードの保護を自動化する方法、およびそのアプローチが現代のクラウドチームにとってより効果的にスケーリングできる理由について解説します。
コンソールベースのバックアップ設定が抱える問題
従来の設定では、AWSリソースを保護するために以下が必要でした:
- AWSアカウントの連携。
- 複数のAWSサービスごとに個別に保護設定を行うこと。
- バックアップポリシーの作成。
- 保護ルールの定義。
- リソースを手動で割り当てる。
- 各アカウントまたは環境ごとにそのプロセスを繰り返します。
管理が行き届いた環境であっても、これにより以下の問題が生じます:
- 反復的な手動設定。
- ポリシーの適用に一貫性がない。
- 新規に作成されたリソースに対する保護の遅延。
- バージョン管理の制限。
Terraformはすでに、インフラストラクチャにおいてこの問題の解決に貢献しています。Clumio Terraformプロバイダーは、そのモデルをデータ保護の分野へと拡張します。
ゼロから保護まで – 4つのファイルで実現
複数の AWS サービスを保護するための設定は、手動での UI 操作を繰り返し行うのではなく、少数の Terraform ファイルを使用して定義できます。
構成はシンプルな構造になっています。
- プロバイダーの定義(AWS + Clumio)
最初のステップは、プロバイダーを宣言することです。
Terraformには以下の情報が必要です:
- AWSを使用していること。
- Clumio プロバイダーを使用していること。
これにより、Terraformは両方のプラットフォームに接続されます。
公式のプロバイダードキュメントの「はじめに」ガイドでは、この設定手順が詳しく解説されています。
- AWSアカウントをClumioに接続する
次に、ClumioモジュールがAWSとClumio間の接続を確立します。これにより、データ保護に必要なIAMロールの設定が抽象化されます。ロールや権限を手動で設定する代わりに、モジュールが統合処理を再現可能な方法で処理します。
プロバイダーのソースコードはGitHubで公開されています。
つまり、統合設定はコードで定義され、バージョン管理されており、環境を問わず再現可能です。
- バックアップポリシーをコードとして定義
バックアップポリシーの定義は、IaCが真価を発揮する場面です。Terraformベースの構成では:
- リソースの種類ごとに異なる復旧時点目標(RPO)を設定できます。
- 同一のポリシー内で複数の保存期間階層を定義できます(例:短期保存と長期保存)。
- 定義された条件に基づいて、同じポリシーを自動的に適用できます。
複数のコンソールを切り替える代わりに、単一のTerraform構成で頻度、保存期間、リソースの範囲を定義できます。そのポリシーは、他のインフラストラクチャ構成と同様に再利用可能であり、レビューも可能です。
- タグベースの自動保護
このアプローチにおいて最もスケーラブルな要素の 1 つが、タグベースの保護です。特定のキー/値のペアでタグ付けされたリソースを自動的に保護するように、保護ルールを設定できます。例:
created_by = demo_script
これにより、
- そのタグに一致する既存のリソースが保護されます。
- 今後、そのタグが付与されたリソースは自動的に保護対象に含まれます。
- 手動による介入は不要です。
特にS3の場合、保護グループもタグを使用して数百のバケットを単一の論理単位として管理し、大規模なポリシー変更を一元的に行うことを可能にします。これにより、設定のドリフトを軽減できます。
構成の適用
定義が完了すると、Terraform は作業ディレクトリを初期化し、計画された変更内容をプレビューして、構成を適用します。Terraform は、リソース間の依存関係を考慮し、正しい順序でリソースを作成するように設計されています。
この構成により、AWSアカウントの連携、ポリシーの有効化、保護ルールの適用、およびタグ付けされたリソースの保護が可能になります。そして最も重要な点として、保護戦略全体がバージョン管理されたコードとして存在します。
これがクラウドアーキテクトにとって重要な理由
IaC(Infrastructure as Code)の原則に基づいて運用するチームにとって、バックアップ構成もインフラのプロビジョニングと同じ規律に従うべきです。
Terraformでバックアップを定義することには、いくつかの実用的な利点があります:
- バージョン管理:バックアップポリシーはコードで定義されるため、標準的なプルリクエストワークフローを通じてレビュー、バージョン管理、承認を行うことができます。
- 再現性:開発、ステージング、本番の各アカウントに、同じ構成を一貫してデプロイできます。
- ドリフトの低減:Terraform構成を再適用して宣言された状態を強制できるため、手動またはアウトオブバンドでの変更を、意図した構成に再び整合させることができます。
- 明確な可視性:保護ロジックは、UI設定の中に埋もれることなく、コード上で可視化されます。
- 構成とインターフェースの分離:バックアップの状態は宣言的に定義され、コンソールの状態に依存しません。
このアプローチが有効な場合
Terraform によるバックアップの自動化は、特に次のような場合に有用です。
- 複数のアカウントを持つ AWS 環境。
- 監査可能な設定が求められる規制業界。
- 共有インフラストラクチャを管理するプラットフォームチーム。
- すでにTerraformを標準化している組織。
インフラストラクチャが「コードとして定義」されているのであれば、データ保護戦略も同様に「コードとして定義」されるべきです。
はじめに
このアプローチについてさらに詳しく知りたい場合は:
- Clumio Terraform プロバイダーのドキュメントをご確認ください。
- GitHubでプロバイダーのソースコードをご覧ください。
- 上記のクイックスタートデモ動画をご覧ください。
また、AWS Marketplaceを通じてClumioを評価することもできます。
よくある質問
Q: なぜバックアップポリシーを「コードとして」管理すべきなのでしょうか?
A: インフラストラクチャがコードとして定義されているにもかかわらず、バックアップポリシーが手動で設定されていると、不整合や矛盾が生じる可能性があります。バックアップをコードとして管理することで、保護とデプロイのワークフローを整合させ、手動によるミスを減らし、バージョン管理されたデータ保護戦略の可視性を確保できます。
Q: Clumio Terraform プロバイダーにはどのような機能がありますか?
A: Clumio Terraform プロバイダーを使用すると、アカウント接続、バックアップポリシー、保護ルールなどの AWS データ保護リソースを宣言的に定義できます。これにより、チームはインフラストラクチャと同様に、バックアップ構成を同じ Terraform ワークフロー内で管理できるようになります。
Q: タグベースの保護は、どのようにスケーラビリティを向上させますか?
A: タグベースの保護は、指定されたキー/値のペアに一致するリソースにポリシーを自動的に適用するように設計されています。これにより、手動での割り当てなしに既存および将来のリソースを保護でき、アカウントやサービス全体にわたる大規模な保護管理が容易になります。
Q: Terraformは、バックアップ環境における構成のドリフトをどのように軽減しますか?
A: Terraformは、インフラストラクチャおよび保護ポリシーの宣言された状態を維持します。構成を再適用することで、手動またはアウトオブバンドでの変更を意図した状態に再整合させ、環境全体の一貫性を向上させることができます。
Q: Terraform によるバックアップの自動化は、どのようなシナリオで最も有効ですか?
A: このアプローチは、特に、複数のアカウントを持つ AWS 環境、監査可能な構成が求められる規制業界、共有サービスを管理するプラットフォームチーム、およびすでに Terraform を IaC の標準として採用している組織において有益です。
Q: チームはどのようにして Terraform ベースの AWS データ保護を開始すればよいですか?
A: まずは、Clumio Terraform プロバイダーのドキュメントを確認し、プロバイダーの GitHub ソースコードを調査し、クイックスタートのデモ動画を視聴することから始められます。また、AWS Marketplace を通じて Clumio を評価することも、実用的な次のステップとなります。
ローレンス・チャン氏は Clumio の最高技術責任者(Chief Engineering Officer)であり、ヴィル・チョクシ氏は Commvault のプリンシパル・プロダクト・マーケティング・マネージャーです。