Slide 1

Slide 1 text

CloudWatch Logs入門 応用してみた Kento Suzuki 2022.07.21.Thu JAWS-UG CLI専門支部 #269R

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

やったこと AWS CLIをCloudShellで実行、 一定期間更新されていないロググループを一掃

Slide 4

Slide 4 text

動機 ● CLI支部でやったハンズオンを自分なりに応用してみたいと思った ● 検証環境のロググループの数が300を超えており、気持ち悪かった (ロググループの費用は50円/月ほどなので、そこまで重い訳ではない)

Slide 5

Slide 5 text

手順 1. CloudShellの起動 2. 全ロググループを抽出する 3. 削除対象とする期間を指定 4. 削除対象の抽出 5. ロググループの削除 コマンドは別途作成したQiitaを参照ください https://qiita.com/suzuki_kento/items/1c6a271ef50a7e4ce7df

Slide 6

Slide 6 text

前提 ● JAWS-UG CLI支部のハンズオン資料がベースとなっています ● 本手順では3ヶ月更新されていないロググループを削除する ● リージョン毎に実行する必要がある (= 全リージョンまとめて削除は現状できない) ● あまりシェルに詳しくない僕が書いているのでクオリティーは高くない

Slide 7

Slide 7 text

1. CloudShellの起動 もはやCLI支部で説明する必要はないであろう... ロググループを削除したいリージョンでCloudShellを起動

Slide 8

Slide 8 text

2. 全ロググループを抽出する ロググループが全て出力される (スペース区切り) 例: /aws/lambda/appmesh-xxxx /aws/lambda/no1 test-log-group test-log-group-2 test-log-group-3 (一行で出力されるので見づらい)

Slide 9

Slide 9 text

3. 削除対象とする期間を指定 ● dateコマンドで3ヶ月前のタイムスタンプを取得 ● AWS CLIで使える形式にするために000を追加 出力結果は以下のようになる 1649930797000

Slide 10

Slide 10 text

4. 削除対象の抽出 波田野さんに教えていただいた「aws logs filter-log-events」の 「--start-time」を使用して直近3ヶ月で更新されたのログイベントを抽出 ifの部分で変数に格納したロググループから該当するものをsedで削除

Slide 11

Slide 11 text

4. 削除対象の抽出 ロググループが少ないリージョンで試してみたところ、 3ヶ月間で更新されロググループが削除対象から消えていることを確認 (見やすさのために改行していますが、実際はスペース区切りの1行で出力)

Slide 12

Slide 12 text

5. ロググループの削除 forを使ってロググループを1つずつ削除

Slide 13

Slide 13 text

検証環境で実施後 🎉🎉300以上あったロググループが63に 🎉🎉

Slide 14

Slide 14 text

気づいたこと/思ったこと ● AWS CLIスクリプト → Lambda(python) + EventBridgeに書き換え、 自動化できそう ○ ただ増えても100円/月いくか怪しいので、作成する必要があるか微妙... ● ロググループが300以上あると、手順4の削除対象の抽出に10分程度かかる ● AWS CLIよりシェルで苦労した ○ 以前波田野さんが紹介していたシェルの書籍をポチった ■ 入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界 ■ 新しいシェルプログラミングの教科書

Slide 15

Slide 15 text

JAWS-UG CLI支部のハンズオン 最後までやろう!! 参加しているうちに応用したくなったり、 それができるだけのインプットが備わっています