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