$30 off During Our Annual Pro Sale. View details »

JAWS DAYS 2022/Osaka/プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕/20221008_X-Ray_LambdaPowertools

daiki.mori
October 08, 2022
49

JAWS DAYS 2022/Osaka/プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕/20221008_X-Ray_LambdaPowertools

https://jawsugosaka.doorkeeper.jp/events/142046
LTer
1. Yamahara
2. Otani
3. Ikeda
4. Yamashita
5. Hayashida
6. Mori
7. Ito
8. Kazenotani
9. Omuro
10. hamaaaan

daiki.mori

October 08, 2022
Tweet

Transcript

  1. プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕ JAWS DAYS 2022 –Osaka Satelites LT 森 ⼤樹

    2022/10/08
  2. 2 ⾃⼰紹介 ★ Who am I ? 所属・⽒名 株式会社サーバーワークス /

    アプリケーションサービス部 / ディベロップメントサービス1課 / 課⻑ 森 ⼤樹 (mori@serverworks.co.jp) キャリア 約20年、SIerでプログラマ/プロジェクトマネージャの実務経験後、 2017年1⽉にサーバーワークスへ⼊社 CICD環境の構築、運⽤などを⾏い、現在に⾄る 今は、Pythonでサーバーレス開発を実施 資格 PMP(Project Management Professional) 資格 趣味 スノーボード/お酒 好きなAWSサービス AWS Lambda/Amazon Connect
  3. 3 アイスブレイク

  4. 4 アイスブレイク やってもたーーー

  5. なぜ、プログラムは作ったあとが⼤事なのか︖

  6. 6 なぜプログラムは作ったあとが⼤事なのか︖ 普通に考えると… プログラムを作る プログラムをテストする リリースする

  7. 7 なぜプログラムは作ったあとが⼤事なのか︖ 普通に考えると… プログラムを作る プログラムをテストする リリースする え︖おわり︖

  8. 8 なぜプログラムは作ったあとが⼤事なのか︖ 普通に考えると… プログラムを作る プログラムをテストする リリースする え︖おわり︖

  9. 9 なぜプログラムは作ったあとが⼤事なのか︖ 普通に考えると… プログラムを作る プログラムをテストする リリースする え︖おわり︖ 運⽤しますよね︖

  10. 10 なぜプログラムは作ったあとが⼤事なのか︖ リリース後の運⽤について システムに対して保守する運⽤ 1 業務に対して保守する運⽤ 2

  11. 11 なぜプログラムは作ったあとが⼤事なのか︖ リリース後の運⽤について システムに対して保守する運⽤ 1 業務に対して保守する運⽤ 2

  12. 12 なぜプログラムは作ったあとが⼤事なのか︖ プログラムのログ 1 キャパシティー 3 リソース 2 その他のクォーター 4

    システムに 対して保守する 運⽤ (特に監視)
  13. 13 • プログラムはシステムのフローが書かれている • 問題がある箇所(例外処理)が書かれている • どんな例外が発⽣しているか明確にかかれている • 処理にどれだけの時間がかかっているか •

    etc… • リリースしてからうまく動いているかを⾒たい︕︕ なぜプログラムは作ったあとが⼤事なのか︖ Why Answer なぜプログラムは作ったあとが⼤事なのか︖
  14. AWS Lambda Powertools AWS X-Ray SDK

  15. 15 AWS Lambda Powertools & AWS X-Ray SDK AWS Lambda

    Powertools Java, Typescript, Python, .NETが利⽤可能 AWS Lambdaに特化したトレース、構造化ロギング、カスタムメトリクスを利⽤可能 Lambda Layerを使うもしくは、Pypiでインストールして使う あとは、インスタンスを作って使うだけ AWS X-Ray SDK Go, Java, Node.js, Python, .NET, Rubyが利⽤可能 各⾔語のインストールは、こちらから探してください
  16. 16 AWS Lambda Powertools & AWS X-Ray SDK AWS Lambda

    Powertools Java, Typescript, Python, .NETが利⽤可能 AWS Lambdaに特化したトレース、構造化ロギング、カスタムメトリクスを利⽤可能 Lambda Layerを使うもしくは、Pypiでインストールして使う あとは、インスタンスを作って使うだけ AWS X-Ray SDK Go, Java, Node.js, Python, .NET, Rubyが利⽤可能 各⾔語のインストールは、こちらから探してください
  17. AWS Lambda Powertoolsでどんなことができるのか︖

  18. 18 AWS Lambda Powertoolsでどんなことができるのか︖ トレース ロギング カスタムメトリクス

  19. 19 AWS Lambda Powertoolsでどんなことができるのか︖ 3つの機能があり、プログラムに埋め込むことで可視化できる👀 トレース (Tracer) どんなルートを通ってきたかを可視化できる 1 メトリクス

    (Metrics) 設定したメトリクスを取得して可視化 3 ロギング (Logging) JSONなどの構造化されたログを出⼒可能 2 詳しくは 次のページへ
  20. 20 AWS Lambda Powertoolsでどんなことができるのか︖ トレース/設定と実装 AWS SAMだと右のような感じで設定する Lambda Handlerではこんな感じ Resources:

    HelloWorldFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9 Tracing: Active Environment Variables: POWERTOOLS_SERVICE_NAME: trace-demo import json from aws_lambda_powertools import Tracer tracer = Tracer() @tracer.capture_lambda_handler def lambda_handler(event, context): return { “stattusCode”: 200, “body”: json.dumps({ ”message”: “hello world”, }) } 参考元 https://aws.amazon.com/jp/builders-flash/202204/lambda-powertools-python-2/?awsf.filter-name=*all
  21. 21 AWS Lambda Powertoolsでどんなことができるのか︖ トレース/結果 参考元 https://aws.amazon.com/jp/builders-flash/202204/lambda-powertools-python-2/?awsf.filter-name=*all

  22. 22 AWS Lambda Powertoolsでどんなことができるのか︖ ロギング/設定と実装 参考元 https://aws.amazon.com/jp/builders-flash/202205/lambda-powertools-python-3/?awsf.filter-name=*all Resources: HelloWorldFunction: Type:

    AWS::Serverless::Function Properties: ... Environment Variables: POWERTOOLS_SERVICE_NAME: trace-demo LOG_LEVEL: INFO from aws_lambda_powertools import Logger logger = Logger() @logger.inject_lambda_context def lambda_handler(event, context): logger.info(“start handler!”) ...
  23. 23 AWS Lambda Powertoolsでどんなことができるのか︖ ロギング/結果 (CloudWatch Logs) 参考元 https://aws.amazon.com/jp/builders-flash/202205/lambda-powertools-python-3/?awsf.filter-name=*all {

    "level": "INFO", "location": "lambda_handler:8", "message": "start handler!", "timestamp": "2022-03-25 07:25:54,563+0000", "service": "logger-demo", "cold_start": true, "function_name": "logger-demo-LoggerDemoFunction-xxxxxxxxxxx", "function_memory_size": "128", "function_arn": "arn:aws:lambda:us-west-2:xxxxxxxxxxxx:function:logger-demo-LoggerDemoFunc-xxxxxxxx", "function_request_id": "9c5a35c7-552d-46f1-a6a5-3a03a5153ff4", "xray_trace_id": "1-623d6e82-6dd0ea50736a04742a5ae904" }
  24. 24 AWS Lambda Powertoolsでどんなことができるのか︖ メトリクス/設定と実装 参考元 https://aws.amazon.com/jp/builders-flash/202207/lambda-powertools-python-4/?awsf.filter-name=*all Resources: HelloWorldFunction: Type:

    AWS::Serverless::Function Properties: ... Environment Variables: POWERTOOLS_SERVICE_NAME: metrics-demo POWERTOOLS_METRICS_NAMESPACE: MetricsDemoApp from aws_lambda_powertools import Metrics from aws_lambda_powertools.metrics import MetricUnit metrics = Metrics() @metrics.log_metrics def lambda_handler(event, context): metrics.add_metric(name=“SuccessfulCalling”, unit=MetricUnit.Count, value=1) ...
  25. 25 AWS Lambda Powertoolsでどんなことができるのか︖ メトリクス/結果 (CloudWatch Logs) { "_aws": {

    "Timestamp": 1654233601233, "CloudWatchMetrics": [ { "Namespace": "MetricsDemoApp", "Dimensions": [ [ "service" ] ], "Metrics": [ { "Name": "SuccessfulCalling", "Unit": "Count" } ] } ] }, "service": "metrics-demo", "SuccessfulCalling": [ 1 ] } 参考元 https://aws.amazon.com/jp/builders-flash/202207/lambda-powertools-python-4/?awsf.filter-name=*all
  26. 26 AWS Lambda Powertoolsでどんなことができるのか︖ メトリクス/結果 (CloudWatch Logs) 参考元 https://aws.amazon.com/jp/builders-flash/202207/lambda-powertools-python-4/?awsf.filter-name=*all

  27. まとめ

  28. 28 まとめ プログラムを作って、リリースしたら終わりではなく、はじまり いかに、可視化しやすくプログラミングしているかを考える Lambda PowertoolsやX-Ray SDKをうまく使おう︕︕

  29. 29 まとめ プログラムを作って、リリースしたら終わりではなく、はじまり いかに、可視化しやすくプログラミングしているかを考える Lambda PowertoolsやX-Ray SDKをうまく使おう︕︕ デモには魔物が︕

  30. 30 さいごに カメラで撮ってください📷

  31. 31 さいごに カメラで撮ってください📷 待ってます💕

  32. None