AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

JAWS-UG CLI専門支部 CloudWatch Logs入門 オンライン参加

いくつか間(ハンズオンも、感想書いてる日も)があきましたが、先日CloudWatch Logsのハンズオンに参加させてもらいました。

Lambda使ってると、裏でたまってくので、ちゃんと把握しておきたいなと思い。

※遅れての参加だったので、冒頭の概念説明を聞けなくて、片手落ちな説明あるかもしれません。。

#163R CloudWatch Logs入門

jawsug-cli.connpass.com


構造としては、Logs の中に ロググループ。

ロググループの中に、ログストリームとあります。

CloudWatch Logs を扱うときは、収集・ログ書込み か 取得・ログ読込み なのかの視点で考えると理解しやすいとの話。

  • 収集・ログ書込み
    • 細やかに扱うので、ログストリームに対して操作
    • 逆に、ロググループに対しての操作はできない
  • 取得・ログ読込み
    • 大きなわくで、ざっくり扱うので、ロググループに対して操作
    • こちらは、逆にログストリームに対しての操作不可


なるほど、なんとなく友達になれそうな設計。

ハンズオン

今回実施したのは、こんな概要です (資料の当日バージョンより抜粋)。



f:id:hidehara:20200714195335p:plain
#163R CloudWatch Logs

  • 3.1, 3.3 : 矢印がログストリームまでいってるのがポイント (書込み)
  • 3.2, 3.4 : 矢印がロググループまでくっついてるのがポイント (読込み)

ドキュメントと範囲

公式ドキュメントは 160ページと、(他に比較して)少ない方とのこと。


現在 CloudWatch LogsをサポートするAWSサービスも、公式ドキュメントにあるので、参照しておくと設計に便利(現在20程度がリストされてる)。

CloudWatch Logs ポイント

保持期間を設定しよう

ロググループに設定される保持期間 (Retantion) は、デフォルトだと 失効しない(Never Expire) なので、用途に応じて設定しておきましょう。

f:id:hidehara:20200714200343p:plain
Loggroup - retantion

長期保存?1年前との比較でOK?作ってみただけなら7日間。など

なお、GUIだとプルダウンメニューにある設定しか選べないが、CLIだと好きな期間が設定可能です。



サブコマンドとオプションの組み合わせに注意

次のような違いがあるので、結果のソート順を意識しておく。

get-log-events + --limit オプション

新しいものから取得される

$ aws logs get-log-events --log-group-name ${LOGS_GROUP_NAME} --log-stream-name ${LOGS_STREAM_NAME} --limit ${LOGS_EVENT_MAX_ITEMS}

filter-log-events + --max-items オプション

古いものから取得される

$ aws logs filter-log-events --log-group-name ${LOGS_GROUP_NAME} --max-items ${LOGS_EVENT_MAX_ITEMS}
<<


その他

一週間ぐらいたったけど、内容覚えててよかったぁ。

毎月開催いただけるハンズオン、感謝です!