0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Terraformで「EC2消し忘れ防止」のアラート機能を自作してみた

0
Posted at

1. はじめに

現在、AWS SAA(ソリューションアーキテクト - アソシエイト)の資格取得に向けて学習しています。
AWSのハンズオン学習で最も怖いのが、リソースの消し忘れによる予期せぬ課金です。

「せっかくなら、消し忘れたら教えてくれる仕組み自体を自分で構築してしまおう!」と考え、触りたかったTerraformを使ってコスト削減のためのアラート機能を構築しました。

2. 今回構築した構成

毎日 20:00(JST)に起動中のEC2をチェックし、1台でも稼働していればAmazon SNSを通じてメール通知を飛ばす仕組みです。

  • Amazon EventBridge: スケジュール実行(毎日20時)
  • AWS Lambda: Python 3.14 を使用。EC2の状態を取得し、SNSへ通知
  • Amazon SNS: メール通知のハブ

aws_ec2_notification.png

3. ソースコード

インフラの定義(Terraform)と、Lambdaのロジック(Python)を分離して管理しています。コードの全文はGitHubに公開しました。

aws_ec2_notification

4. 構築で意識したポイント・学んだこと

実務ではオンプレの設計・構築がメインでIaCにも触れたことありませんでしたが、今回AWSやTerraformに触れてみて、以下の気づきがありました。

クラウドの権限管理の再認識

SAAでも頻出のところですが、構築の過程で、IAMポリシーの最小権限(ReadOnly等への絞り込み)を改めて見直しました。SAAではそれぞれの権限で何ができるかまでは問われないので、触ってみると意外と設定が難しかったです。

差分管理(Plan)の安心感

コンソール操作だと「どこをどう変えたか」が記憶頼みになりがちですが、Terraformは plan コマンドで実行前に変更箇所をすべて可視化してくれます。意図しない設定変更や削除を防げるこの安心感は、IaCならではの大きなメリットだと感じました。

コードがそのまま最新の設計書になる

今まではExcelなどでパラメータシートを作成していましたが、Terraformならコードそのものが最新の構成を正しく表す設計書になります。パラメータの修正もコードを1箇所書き換えるだけで完結し、管理の効率が劇的に上がると確信しました。

5. おわりに

SAA試験に向けてハンズオン学習をほぼやってなかったですが、試行錯誤しながらやると頭に入ってきやすく感じました。クラウドの勉強のつもりでやってましたが、どちらかというとIaCの便利さの方が強く感じたので、今後も触っていきたいです。


実行環境

  • Terraform v1.x
  • AWS Provider v5.x
  • Python 3.14
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?