omuronの備忘録

個人的な備忘録

「AWSの基礎を学ぼう 第五十三回 Amazon CodeGuru」 #awsbasics 受講メモ

awsbasics.connpass.com

CodeGuru 良さげですよね。
対応言語増えるといいのですが。

セッション

Amazon CodeGuru

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

Amazon CodeGuru

  • ソースコードの改善提案
    • バグ修正ではない
    • 無駄な部分の改善提案
    • セキュリティな改善
      • 暗号ライブラリが弱いとか
      • SQL インジェクションの可能性とか

Amazon CodeGuru Reviewer / Profiler

  • Amazon CodeBuru Reviewer
    • ソースコードのクリティカルな問題や発見が困難なバグを特定
      • AWS API のベストプラクティス
      • 並列処理、セキュリティ対応、リソースリーク防止
      • 機密データの漏洩、コーディングベストプラクティス、リファクタリング
      • インプットバリデーション、コードクオリティ
    • Java, Python に対応
    • 3種類のワークフロー
  • Amazon CodeBuru Profiler
    • パフォーマンス状況を可視化
      • 実行コストが高い行を特定
    • Java, Python に対応
    • エージェントを埋め込んで利用

セキュリティ

  • CodeGuru は一度ソースを AWS にコピーして解析する
    • AWS の責任で漏洩などは守る
      • 規約は確認しておいてください
    • PR のタイミングなどで解析
    • Profiler をいれるとパフォーマンスとコストを計測できる
      • 本番環境で解析して提案

X-Ray or CodeGuru

  • X-Ray との違いは?
    • X-Ray はログを元にパフォーマンスを可視化
    • CodeGuru Profiler はアプリの中に入って実際の値をサンプリングして可視化

対応リポジトリ

  • CodeCommit
    • GitLab 利用時は CodeCommit 経由にすることで利用可能
  • GitHub
    • CodeStar が裏で連携
  • Bitbucket
    • CodeStar が裏で連携

Amazon CodeGuru Security Detector

Amazon CodeBuru Profiler

  • 3種類のモード
    • Overview
    • Hotspots
      • プロファイリングデータをトップダウンで表示
      • CPU 使用時間が長いものから順に表示
    • Inspect
      • 全体で複数箇所に存在するフレームを集約して表示
  • ビジュアライゼーションはスタックトレースのサンプリング
  • CPU ベース or レイテンシーベース
  • メモリプロファイリング
    • どのオブジェクトがどれぐらい使っているか可視化
  • 異常検知
    • 過去のプロファイルと比べていつもと違うメモリの使い方をした場合
    • SNS に通知可能

所感

JavaPython は、メインプロダクトのコアな処理では使ってないこともありすぐに活躍することはなさそうです。
いくつかのプロダクトでは利用している言語なので試してみたいですが、お値段がそこそこしそうなのがきになるところ。
Profiler 入れるのはすぐにはできなさそうなので、まずは Reviewer から試すのがお手軽ですかね。