type
status
date
slug
summary
tags
category
icon
password
 

理論

AWS CloudFormationとリソース削除

AWS CloudFormationは、インフラストラクチャをコードとして管理できるサービスで、リソースの作成、更新、削除を自動化します。CloudFormationスタックは、関連するAWSリソースを一度に管理するためのテンプレートに基づいています。

CloudFormationのリソース削除

CloudFormationスタックを削除すると、デフォルトで作成されたリソースも削除されます。ただし、削除の挙動はリソースによって異なり、いくつかのリソースは手動で削除する必要がある場合もあります。
  • DeletionPolicy属性: CloudFormationでは、DeletionPolicy属性を設定することで、リソース削除時の挙動を指定できます。
    • Delete: リソースが削除される。
    • Retain: リソースが削除されない。
    • Snapshot: リソースのスナップショットを作成し、その後削除する。

S3バケットの削除問題

S3バケットをCloudFormationで管理する際、バケット内にオブジェクトが残っていると、バケット削除に失敗することがあります。これを回避するためには、オブジェクトを削除する方法を事前に設定しておく必要があります。

解決方法

  • Lambda関数によるオブジェクト削除: S3バケット内のオブジェクトを削除するために、CloudFormationのカスタムリソースとしてLambda関数を使用することが有効です。Lambda関数を使うことで、オブジェクトの削除を自動化し、スタック削除時にオブジェクトが削除されるようにします。
  • DependsOn属性: CloudFormationのDependsOn属性を使用して、特定のリソースが削除される前にLambda関数を実行するように順序を指定できます。これにより、S3バケット内のオブジェクトが確実に削除されてからバケット自体が削除されます。

まとめ

CloudFormationを使用する場合、リソースの削除順序や削除方法を適切に管理することが重要です。Lambda関数やDependsOn属性を活用することで、スタック削除時の問題を防ぐことができます。

実践

一問道場

質問 #498
企業は、Amazon EC2およびAWS Lambda上でアプリケーションを実行しています。このアプリケーションは、Amazon S3に一時的なデータを保存します。S3のオブジェクトは24時間後に削除されます。
会社はAWS CloudFormationスタックを使って新しいバージョンのアプリケーションをデプロイします。スタックは必要なリソースを作成します。新しいバージョンの検証が完了すると、古いスタックを削除しますが、最近、古い開発スタックの削除に失敗しました。
ソリューションアーキテクトは、大きなアーキテクチャの変更なしでこの問題を解決する必要があります。
どのソリューションがこの要件を満たすでしょうか?
A. S3バケットからオブジェクトを削除するLambda関数を作成し、このLambda関数をCloudFormationスタックのカスタムリソースとして追加します。そして、DependsOn属性でS3バケットリソースを指定します。
B. CloudFormationスタックを変更して、S3バケットにDeletationPolicy属性を追加し、その値をDeleteに設定します。
C. CloudFormationスタックを更新して、S3バケットリソースにDeletionPolicy属性を追加し、その値をSnapshotに設定します。
D. CloudFormationテンプレートを更新して、一時ファイルを格納するためにAmazon Elastic File System(Amazon EFS)を作成し、Lambda関数をEFSファイルシステムと同じVPC内で実行するように設定します。

解説

この問題は、AWS CloudFormationスタックの削除に関する問題です。具体的には、CloudFormationスタックを削除しようとしたときに、S3バケットのオブジェクトが削除されなかったため、スタック削除が失敗しました。この問題を解決する方法を求めています。以下は、各選択肢に関する解説です。

選択肢 A: Lambda関数を使ったカスタムリソースの追加

  • 概要: S3バケットからオブジェクトを削除するためにLambda関数を作成し、このLambda関数をCloudFormationスタックのカスタムリソースとして追加します。DependsOn 属性を使って、Lambda関数の実行をS3バケットリソースの削除に依存させます。
  • 解説: この方法では、CloudFormationのカスタムリソースとしてLambda関数を使い、S3バケット内のオブジェクト削除を自動化できます。DependsOn 属性を使って、リソース削除の順序を制御することができます。この方法は、スタック削除時にオブジェクト削除を確実に実行するための良いアプローチです。

選択肢 B: DeletionPolicy属性をDeleteに設定

  • 概要: CloudFormationスタックで、S3バケットに対して DeletionPolicy 属性を設定し、その値を Delete に設定します。
  • 解説: DeletionPolicy 属性は、CloudFormationスタック削除時にリソースの削除方法を制御するためのものです。Delete を設定すると、CloudFormationはリソースを削除しますが、S3バケット内のオブジェクトは削除されません。この方法ではオブジェクト削除が行われないため、問題解決には不適切です。

選択肢 C: DeletionPolicy属性をSnapshotに設定

  • 概要: CloudFormationスタックで、S3バケットに対して DeletionPolicy 属性を設定し、その値を Snapshot に設定します。
  • 解説: Snapshot 設定は、リソースの削除前にスナップショットを作成する設定ですが、S3バケットに対しては意味を持ちません。スナップショットが取られるのは、主にEBSボリュームやRDSインスタンスなどです。このため、S3バケットに対して Snapshot を設定してもオブジェクト削除には影響を与えないため、問題解決には不適切です。

選択肢 D: Amazon EFSを使用する

  • 概要: 一時ファイルを格納するためにAmazon EFS(Elastic File System)を使用し、Lambda関数がEFSと同じVPC内で実行されるように設定します。
  • 解説: EFSは分散型のファイルストレージで、EC2インスタンスやLambda関数がアクセスできます。しかし、S3バケットのオブジェクト削除問題とは直接的な関係はなく、この方法では根本的な問題は解決できません。AWS LambdaをEFS内で実行しても、S3のオブジェクト削除問題を解決することにはなりません。

最適解: 選択肢 A

  • Lambda関数を使ってS3バケットのオブジェクト削除を行う方法が、CloudFormationのスタック削除時にオブジェクト削除を確実に行うための最適な方法です。カスタムリソースとしてLambda関数を設定し、DependsOn 属性で順序を制御することで、S3オブジェクト削除を適切に実行できます。

結論

選択肢 A がこの要件を最も適切に解決する方法です。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
499-AWS SAP AWS 「理論・実践・一問道場」Amazon S3497-AWS SAP AWS 「理論・実践・一問道場」空間データ
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签