Amazon Web Services ブログ
AWS Backup の新機能 – CloudFormation スタックの保護と復元
アプリケーションのデータ保護ポリシーを定義するには、アプリケーションのコンポーネントを調べて、保護が必要なデータを格納しているコンポーネントを見つける必要があります。これらは、データベースやファイルシステムなど、アプリケーションのステートフルコンポーネントです。他のコンポーネントにはデータが保存されませんが、問題が発生した場合は復元する必要があります。これらは、コンテナやそのネットワーク設定などのステートレスコンポーネントです。
Infrastructure as Code (IaC) を使用してアプリケーションを管理すると、これらすべてのコンポーネントが記述された 1 つのリポジトリが作成されます。この情報はアプリケーションの保護に役立ちます。 AWS Backup は、AWS CloudFormation スタックをお客様のデータ保護ポリシーにアタッチすることをサポートするようになりました。
CloudFormation をリソースとして使用すると、AWS Backup がサポートするすべてのステートフルコンポーネントがほぼ同時にバックアップされます。バックアップには、AWS Identity and Access Management (IAM) ロールや Amazon Virtual Private Cloud (Amazon VPC) セキュリティグループなど、スタック内のステートレスリソースも含まれます。これにより、アプリケーションスタックや必要な個別リソースのリカバリに使用できる単一のリカバリポイントが得られます。リカバリの場合は、自動化されたツールとカスタムスクリプトや手動アクティビティを混在させなくても、アプリケーションスタック全体をリカバリして元に戻すことができます。CloudFormation で管理されているアプリケーションを最新化および更新すると、AWS Backup で自動的に変更が追跡され、データ保護ポリシーが更新されます。
CloudFormation での AWS Backup のサポートは、データ保護ポリシーへのコンプライアンスを証明するのにも役立ちます。アプリケーションリソースを AWS Backup Audit Manager でモニタリングできます。AWS Backup Audit Manager は、データ保護ポリシーへのコンプライアンスに関する監査と報告を可能にする AWS Backup の機能です。AWS Backup Vault Lock を使用して、コンプライアンス義務の要件に応じてバックアップの不変性を管理することもできます。
ここからは、実際にどのように機能するのかを見ていきましょう。
CloudFormation スタックで AWS Backup サポートを使用する
まず、AWS Backup の CloudFormation リソースタイプを有効にする必要があります。AWS Backup コンソールのナビゲーションペインで [Settings] (設定) を選択し、次に [Service opt-in] (サービスのオプトイン) セクションで [Configure resources] (リソースを設定) を選択します。そこで、CloudFormation リソースタイプをオンに切り替えて、[Confirm] (確認) を選択します。
CloudFormation のサポートが有効になったので、ナビゲーションペインで [Dashboard] (ダッシュボード) を選択し、[Create backup plan] (バックアッププランを作成) を選択します。[Start with a template] (テンプレートで開始する) オプションを選択し、次に [Daily-35day-Retention] (毎日 – 35 日保持) テンプレートを選択します。名前が示すように、このテンプレートでは毎日バックアップが作成され、35 日間保持してから自動的に削除されます。バックアッププランの名前を入力し、[Create plan] (プランを作成) を選択します。
これで、バックアッププランにリソースを割り当てることができます。リソース割り当て名を入力し、正しいアクセス許可で自動的に作成されるデフォルトの IAM ロールを使用します。
[Resource selection] (リソース選択) で、[Include all resource types] (すべてのリソースタイプを含める) を選択すると、アカウントで有効になっているすべてのリソースタイプを自動的に保護できます。CloudFormation サポートの仕組みを説明したいので、[Include specific resource types] (特定のリソースタイプを含める) を選択し、次に [Select resource types] (リソースタイプを選択) ドロップダウンメニューで [CloudFormation] を選択します。[Choose resources] (リソースを選択) メニューでは、[All supported CloudFormation stacks] (サポートされているすべての CloudFormation スタック) オプションを使用して、すべてのスタックを保護できます。説明を簡単にするために、保護するスタックは my-app
スタックの 1 つだけにします。
他のオプションはデフォルト値のままにして、[Assign resources] (リソースを割り当てる) を選択します。これで完了です! これで、選択した CloudFormation スタックは、毎日バックアップされて 35 日間保持されます。これは何を意味するのでしょうか。 CloudFormation スタックのオンデマンドバックアップを作成するとどうなるかを見てみましょう。
CloudFormation スタックのオンデマンドバックアップを作成する
ナビゲーションペインで [Protected resources] (保護されたリソース) を選択し、次に[Create on-demand backup] (オンデマンドバックアップを作成) を選択します。以下の手順は、以前にバックアッププランにリソースを割り当てるときに行ったことと似ています。CloudFormation リソースタイプと my-app
スタックを選択します。[Create backup now] (今すぐバックアップを作成) オプションを使用して、1 時間以内にバックアップを開始します。7 日間の保持期間と Default
のバックアップボールトを選択します。バックアップボールトとは、バックアップを保存および整理する論理的なコンテナです。デフォルトの IAM ロールを選択し、[Create on-demand backup] (オンデマンドバックアップを作成) を選択します。
数分以内に、バックアップジョブが実行されます。[Backup jobs] (バックアップジョブ) リストの [Backup job ID] (バックアップジョブ ID) を展開して、バックアップ対象のリソースを確認します。ステートフルリソース (Amazon DynamoDB テーブルや Amazon Relational Database Service (RDS) データベースなど) は、バックアップジョブの現在の状態とともに一覧表示されます。スタック内のステートレスリソース (IAM ロール、AWS Lambda 関数、VPC 設定など) は、CloudFormation リソースタイプのジョブによってバックアップされます。
バックアップジョブが完了したら、[Protected resources] (保護されたリソース) ページに戻って、現在復元できるリソースのリストを確認します。リストには、ステートフルリソース (この場合は 2 つの DynamoDB テーブルと 1 つの Aurora データベース) と CloudFormation スタックの ID が表示されます。ステートフルリソースをそれぞれ選択すると、そのリソースがバックアップされたさまざまな時点に対応する利用可能なリカバリポイントが表示されます。
CloudFormation スタックを選択すると、複合リカバリポイントのリストが表示されます。各複合リカバリポイントには、スタック内のすべてのステートレスリソースとステートフルリソースが含まれます。具体的には、ステートレスリソースは CloudFormation テンプレートのリカバリポイント (次のスクリーンショットの最後のもの) に含まれています。
クラウドフォーメーションバックアップを復元する
複合リカバリポイント内で、CloudFormation スタックのリカバリポイントを選択し、[Restore] (復元) を選択します。CloudFormation スタックのバックアップを復元すると、バックアップを表す変更セットを含む新しいスタックが作成されます。新しいスタックを入力してセット名を変更し、[Restore backup] (バックアップを復元) を選択します。数分後、復元ジョブは完了しました。
CloudFormation コンソールでは、新しいスタックがレビュー中です。変更セットを適用する必要があります。
新しいスタックを選択し、復元ジョブで作成された変更セットを選択して変更セットを適用します。
しばらくして、元のスタックのリソースが新しいスタックの中に再作成されました。ステートフルリソースは空で再作成されました。ステートフルリソースをリカバリするには、リカバリポイントのリストに戻り、必要なリカバリポイントを選択して、リストアを開始します。
可用性と料金
CloudFormation スタックの AWS Backup サポートは、AWS Backup が提供されているすべての AWS リージョンで、コンソール、AWS コマンドラインインターフェイス (CLI)、および AWS SDK を使用して今すぐご利用いただけます。AWS Backup によってバックアップおよび復元されるステートレスリソースに追加費用はかかりません。データベース、ストレージボリューム、ファイルシステムなどのステートフルリソースに対してのみお支払いいただきます。詳細については、「AWS Backup の料金」を参照してください。
これで、アプリケーションの作成と復元を簡単に行える自動化ソリューションが手に入り、カスタムスクリプトを管理する必要がなくなりました。
– Danilo
原文はこちらです。