初めてのLambdaによる運用自動化 ~ 不要リソース削除大作戦 ~
by
Kento Suzuki
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
初めてのLambdaによる運用自動化 ~ 不要リソース削除大作戦 ~ Kento Suzuki 2022.07.28.Thu JAWS-UG 初心者支部勉強会#49
Slide 2
Slide 2 text
自己紹介 名前 鈴木 健斗 (@k_suzuki_pnx) 所属 アイレット株式会社 業務 ・インフラの構築/運用 ・オンプレからAWSへの移行 経歴 ・20新卒で3年目 ・エンジニア歴 = 社会人歴 (入社前はサーバという言葉を聞いたことある程度) ・2022 APN ALL AWS Certifications Engineer ・2022 APN AWS Top Engineer
Slide 3
Slide 3 text
不要リソース削除大作戦に 至るまで
Slide 4
Slide 4 text
新卒インフラエンジニア3年目の悩み 開発っておもしろそう プログラミング言語分からない (新卒研修くらいでしか触ってない) 仕事の幅広げないとな
Slide 5
Slide 5 text
2、3ヶ月くらい悶々としていた日々 とりあえず、AWSの公式セミナー JAWSのコミュニティイベントを視聴してた 「AWSで何ができるの?」 「自分が作りたいモノって何??」
Slide 6
Slide 6 text
そんなところに... 関連づけられていない EIP 11体 (約2500円/月) 関連づけられていない EBS 59体 (約2000円/月)
Slide 7
Slide 7 text
無限に湧く不要なリソースたち EBS 「終了時に削除」が有効化されていないAMIからEC2インスタンスを作成 ⇒作成者の意図しないところで湧く(生き残る) EIP NatGatewayやEC2を削除した際に消し忘れる
Slide 8
Slide 8 text
AWSのセミナーやJAWSに参加して得た知識が繋がる 不要なリソースを 定期的に削除 Lambda EventBridge Python boto3 EBS EIP AWS CLI (= AWSのAPI) LOVE
Slide 9
Slide 9 text
実際に作ってみる
Slide 10
Slide 10 text
その前に LambdaとEventBridgeについて 簡単な解説
Slide 11
Slide 11 text
Lambda ● コードを設定するだけで プログラムが実行できる ● Java、Go、Node.js、Pythonなど 多様な言語が使える ● サーバーの管理が不要
Slide 12
Slide 12 text
Event Bridge AWSのイベントをトリガーに 別のAWSリソースに対して処理を実行できる 例) Lambdaの処理が完了後、別のLambdaを実行 定時にAWSのリソースに対して処理を実行できる ※今回使用する機能 例) 毎日13:00にLambdaを実行する
Slide 13
Slide 13 text
仕様 ● 検証環境に存在する何も紐づけられていないEBS/EIPをSlack通知・削除(全リージョン) ● Amazon EventBridgeと組み合わせて毎日定時で実行 ● 容赦ない削除、慈悲はない ● 削除されたくない場合、以下で回避可能 ○ EC2に紐づけておく ○ スナップショットを取得しておく(EBSのみ) ● 以下のようなSlack通知
Slide 14
Slide 14 text
作ってみた 関連づけられてないEIPをSlack通知 & 削除するLambda https://qiita.com/suzuki_kento/items/6adb5e7e70bb17148699 関連づけられてないEBSをSlack通知 & 削除するLambda https://qiita.com/suzuki_kento/items/b94b893f6729b828caf1
Slide 15
Slide 15 text
最終的に 1. 検証環境の費用が毎月5000円ほど削減 2. スクリプト(Python)を書くことへの抵抗が減る 3. LTのネタができた
Slide 16
Slide 16 text
苦労した点 1. boto3のドキュメントに慣れるのが大変 2. ライブラリーを事前にコードと一緒にZip化する必要があった 3. Qiita記事を書く上でライブラリーをパッケージ化する部分を どう書けばいいか → Cloud9を使用した ライブラリー
Slide 17
Slide 17 text
まとめ ● めちゃ便利 ● 構成がシンプル ● 実装も簡単 ● プログラミングの練習になる Lambda + EventBridge