SlideShare ist ein Scribd-Unternehmen logo
1 von 64
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
Amazon CodeGuru
サービスカットシリーズ
[AWS Black Belt Online Seminar]
Solutions Architect
Yumiko Kanasugi
2020/8/4
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
自己紹介
Yumiko Kanasugi (金杉有見子)
 所属
アマゾン ウェブ サービス ジャパン株式会社
技術統括本部
ソリューションアーキテクト
 好きなAWSサービス
 リモートワークの過ごし方
毎日夕方愛犬と散歩 🐕🐕
AWS SupportAmazon CodeGuru
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Black Belt Online Seminar とは
「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ
ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。
質問を投げることができます!
• 書き込んだ質問は、主催者にしか見えません
• 今後のロードマップに関するご質問は
お答えできませんのでご了承下さい
① 吹き出しをクリック
② 質問を入力
③ Sendをクリック
Twitter ハッシュタグは以下をご利用ください
#awsblackbelt
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
内容についての注意点
• 本資料では2020年8月4日現在のサービス内容および価格についてご説明しています。最新の情
報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。
• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相
違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただきま
す。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is
subject to change in accordance with the AWS Customer Agreement available at
http://aws.amazon.com/agreement/. Any pricing information included in this
document is provided only as an estimate of usage charges for AWS services based on
certain information that you have provided. Monthly charges will be based on your
actual use of AWS services, and may vary from the estimates provided.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本セミナーの概要
• 本セミナーで学習できること
• Amazon CodeGuru の概要
• Amazon CodeGuru Reviewer と Profiler の詳細
• Amazon CodeGuru の始め方
• 対象者
• 技術者の方
• アプリケーション開発者の方
• コードレビュープロセスを効率化したい方
• アプリケーションパフォーマンスを最適化したい方
• IT 知識レベル:★★☆☆☆
• AWS 知識レベル:★★☆☆☆
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
開発における一般的なフロー
Logging Debugging
コーディング
+ レビュー
ビルド
+ テスト
デプロイ 計測 改善
アプリケーションコードとパフォーマンスを
継続的に改善する必要がある
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーション改善におけるチャレンジ
コード解析ツールはコー
ド品質と効率に対する標
準ベストプラクティスを
示さない
開発者がコードの問題を
特定するのに労力と時間
がかかる
実行コストが高くなって
いるコード箇所を特定し
改修することが困難
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru とは
Amazon CodeGuru ProfilerAmazon CodeGuru Reviewer
• アプリケーションのパフォーマンス状況を可視化
し、最も実行コストが高いコード行を特定
• 改善方法を提示することでインフラストラクチャ
費用の削減に繋がる
• 現時点で JVM ベースの言語に対応
• 機械学習を駆使し、ソースコードのクリティカル
な問題や発見が困難なバグを特定
• 改善方法を提示することでコード品質の維持に繋
がる
• 現時点で Java に対応
コードに欠陥がある部分やアプリケーションで最も実行コストが高い箇所を特定し、
改善方法含め推奨事項を生成する機械学習をベースとした開発者向けのサービス
2つの機能は独立しており、単体で使用可能
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS AI/MLスタック
VISION SPEECH TEXT SEARCH CHATBOTS PERSONALIZATION FORECASTING FRAUD DEVELOPMENT CONTACT CENTERS
Ground
Truth
Augmented
AI
ML
Marketplace
Neo
Built-in
algorithms
Notebooks Experiments
Model
training &
tuning
Debugger Autopilot
Model
hosting
Model Monitor
Deep Learning
AMIs & Containers
GPUs &
CPUs
Elastic
Inference
Inferentia FPGA
Amazon
Rekognition
Amazon
Polly
Amazon
Transcribe
+Medical
Amazon
Comprehend
+Medical
Amazon
Translate
Amazon
Lex
Amazon
Personalize
Amazon
Forecast
Amazon
Fraud Detector
Amazon
CodeGuru
AI SERVICES
ML SERVICES
ML FRAMEWORKS & INFRASTRUCTURE
Amazon
Textract
Amazon
Kendra
Contact Lens
For Amazon Connect
SageMaker Studio IDE
NEW
NEW! NEW! NEW!
Amazon SageMaker
NEW! NEW!
NEW!
2020年6月29日 GA!
Amazon CodeGuru はAIサービスとして位置付けられている
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
一般的な開発フローにおけるAmazon CodeGuru の立ち
位置
本番環境でパフォーマンス
とコストにおける改善点を
容易に特定
CodeGuru Profiler
最も実行コストが高
いコード行の検出お
よび最適化
実用的な推奨事項を
生成するビルトイン
のコードレビュー
CodeGuru Reviewer
コーディング
+ レビュー
ビルド
+ テスト
デプロイ 計測 改善
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェアデリバリーパイプラインにおける立ち位置
M O N I T O RD E P L O YT E S TB U I L D
S O U R C E /
A R T I F A C T
C O D I N G
AWS CodePipeline
AWS Cloud9
AWS IDE Toolkits
AWS CodeCommit
+ AWS CodeArtifact
AWS CodeBuild AWS CodeBuild
+ Third Party
AWS CodeDeploy AWS
X-Ray
Amazon
CloudWatch
AWS CloudFormation AWS SAMAWS Cloud Development KitM O D E L
AWS CodeStar
Amazon CodeGuru
Reviewer
Amazon CodeGuru
Profiler
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェアデリバリーパイプラインにおける立ち位置
M O N I T O RD E P L O YT E S TB U I L D
S O U R C E /
A R T I F A C T
C O D I N G
AWS CodePipeline
AWS Cloud9
AWS IDE Toolkits
AWS CodeCommit
+ AWS CodeArtifact
AWS CodeBuild AWS CodeBuild
+ Third Party
AWS CodeDeploy AWS
X-Ray
Amazon
CloudWatch
AWS CloudFormation AWS SAMAWS Cloud Development KitM O D E L
AWS CodeStar
Amazon CodeGuru
Reviewer Code Services と連携
Amazon CodeGuru
Profiler
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru 提供リージョン
利用可能なリージョン リージョンID
米国東部(バージニア北部) us-east-1
米国東部(オハイオ) us-east-2
米国西部(オレゴン) us-west-2
アジアパシフィック(シンガポール) ap-southeast-1
アジアパシフィック(シドニー) ap-southeast-2
アジアパシフィック(東京) ap-northeast-1
欧州(フランクフルト) eu-central-1
欧州(アイルランド) eu-west-1
欧州(ロンドン) eu-west-2
欧州(ストックホルム) eu-north-1
東京リージョンを含む以下リージョンにて利用可能 (2020年8月4日 本日時点)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コードレビュープロセスにおける課題
AWS CodeCommit
GitHubBitbucket
ローカルで
開発
コード
レビュー
AWS Cloud9
Branch
Pull Request
Merge
レビュアー
承認
大量のソースコード複数領域における専門知識ビジネスロジックの検証
十分なコードレビュー人材の確保は多くの企業にとっての課題である
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer の位置付け
AWS CodeCommit
GitHubBitbucket
ローカルで
開発
コード
レビュー
AWS Cloud9
Branch
Pull Request
Merge
レビュアー
承認
Amazon CodeGuru
Reviewer
Amazon CodeGuru Reviewer でコードレビューの負担を軽減
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru Reviewer とは
開発者は機械学習のメリットを享受し、自動的にベストプラクティに沿っていな
い問題箇所を特定することができ、本番環境に影響を与える可能性のある問題を
未然に防ぐことができる
コードの具体的な改善方法も推奨事項に含まれており、開発者はコード例や関連
ドキュメントを参照することが可能
開発者はAmazon CodeGuru Reviewerをレビュアーの一員としてみなすことが
でき、追加のソフトウェアインストール不要、通常の開発ワークフローに変更な
く簡単に利用を始められる
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer の動作イメージ
コードリポジトリ Amazon CodeGuru
リポジトリ
Pull Request
CodeGuru
Reviewer
管理者
1. リポジトリ関連付け
開発者
2. 変更点を Commit し Pull Request を作成
3. Pull Request に対し推奨事項をコメント
開発者
4. コードを修正し、コメントへフィードバック
5. フィードバックに基づいて改善
以降2 – 5 を繰り返し
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer の仕組み
開発者が
Pull Request を作成
インプット:
ソースコード
try (GZip gzip =
GZIPInputStream.create(
url.openStream())) {
use(gzip);
} catch (Exception e) {
handle();
}
機能やパターンの
意味を抽出
機能の抽出
gzip =
GZIPInputStream
.create(stream)
use(gzip)
ENTRY
EXIT
stream
url.openStream()
gzip.close()
handle()
throw
Exception
MLアルゴリズム + プログラム
解析 によりコードの欠陥を特定
機械学習による
処理
コード
コーパス
Pull Requestコメントとして
推奨事項を確認
アウトプット:
推奨事項
(レコメンデーション)
リソースリークの
可能性
url.openStream()
Use try-with-
resources
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru Reviewer の対応リポジトリ
GitHub
AWS CodeCommit
GitHub社が提供するGitベースのサービス
AWSマネージドサービスとしてのGitベースの
ソースコードリポジトリ
IAMによるアクセス制御と高い耐久性を提供
Bitbucket Cloud Atlassian社が提供するGitベースのサービス
GitHub Enterprise Server GitHub Enterprise のオンプレミス版
(AWS CodeStar Connection 経由)
以下のリポジトリに対応 (2020年8月4日 本日時点)
GitHub Enterprise Cloud GitHub Enterprise のクラウド版
(AWS CodeStar Connection 経由)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer のレコメンデーション
• AWSベストプラクティス
• 正しい AWS API の使い方 (例: ページネーションによる正確性の担保)
• 並列処理
• マルチスレッド処理の適切な実装 (例: 同期漏れによる意図しないデータ不整合)
• リソースリーク
• 正しいリソースの扱い (例: DBコネクション解放漏れによる可用性への影響)
• 機密データの漏洩
• 機密情報の不必要な公開を防止 (例: クレジットカード番号のロギング)
• 一般的なコーディングベストプラクティス
• コードの欠陥の発見 (例: オブジェクトが null かどうかの確認)
• リファクタリング
• 冗長なコードの特定 (例: 同じコードとロジックが複数箇所で使われている)
• インプットバリデーション
• 入力形式の確認 (例: インプットデータにバリデーションロジックが実装されていない)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer の始め方
AWSマネジメントコンソール > Amazon CodeGuru > Getting Started
AWS CLI/API AssociateRepository
AWS CodeCommit 及び AWS CodeStar Connection を介した Bitbucket、GitHub
Enterprise Server のリポジトリの関連付けに対応
https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_AssociateRepository.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer リポジトリの関連付け
• ソースプロバイダ及び関連付けるリポジトリ
を選択
• AWS CodeCommit の場合、対象リポジトリを直
接プルダウンから選択可能
• AWS CodeCommit または AWS CodeStar
Connection を介した接続の場合 (GitHub
Enterprise Server 及び Bitbucket が該当)
Amazon CodeGuru 用の IAM リソースが自動
的に作成される。IAM Role 名は
AWSServiceRoleForAmazonCodeGuruRevie
wer (Service Linked Role)
• IAM Policy には CodeGuru Reviewer が
CodeCommit, CodeStar Connection,
CloudWatch へアクセスする際に必要な権限
を定義している
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
27
CodeGuru Reviewer - CodeCommitの利用例
CodeCommit の場合、リポジトリ新規作成画面で CodeGuru Reviewer との
連携指定が可能 (後からの関連付けも可能)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
28
CodeGuru Reviewer – GitHub & GitHub Enterprise Cloud
の利用例
• ソースプロバイダにて GitHub を選択すると
GitHub へリダイレクトされ、サインインを
要求される
• CodeGuru Reviewer はこの時サインイン
したアカウントを使用して Pull Request に
コメントする
• 区別やメンテナンスがしやすいよう
CodeGuru Reviewer 専用の GitHubユー
ザーを作成することを推奨
• CodeGuru Reviewer アプリケーション (aws-
codesuite) からのアクセスを許可
• 接続後、コンソールから対象リポジトリを選択
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
29
CodeGuru Reviewer – CodeStar Connection の利用例
• ソースプロバイダが Bitbucket 又は
GitHub Enterprise Server の場合、AWS
CodeStar Connection を介した接続が
必要
• Bitbucketの場合、CodeStar Connection
作成時に CodeStar の Bitbucket アカウ
ントへのアクセスを許可し、Amazon
CodeGuru Reviewer を Bitbucket Cloud
apps としてインストール
• GitHub Enterprise Server の場合、
CodeStar Connection 及び Host を作成
する必要がある
• Host は任意でVPC内に作成しセキュリティ
グループを付与できる。GitHub Enterprise
Serever とは別VPCでも可
• GitHub Enterprise Server 側ではポート443
番を許可する必要がある
Amazon CodeGuru
Reviewer
AWS CodeStar
Atlassian
Bitbucket Cloud
Bitbucket の場合
GitHub Enterprise Server の場合
Connection
Amazon CodeGuru
Reviewer
AWS CodeStar
GitHub Enterprise
Server
HostConnection
VPC or No VPC
VPC or On-premises
443
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer のレコメンデーションサンプル
• リポジトリを関連付けた後は Pull Request に
対して CodeGuru Reviewer が自動的にコメ
ントを残す
• 通常 Pull Request が作成されてから15分
以内に完了
• 各レコメンデーションには Problem, Fix,
More info などといった改善方法や関連するド
キュメントへのリンクも含まれる
• コメントあるいはEmojiリアクションを通して
レコメンデーションへフィードバックすること
で CodeGuru Reviewer の精度向上に繋がる
• コードレビューやレコメンデーション一覧は
マネジメントコンソールあるいはAPIで取得可
能
例: リソースリークの可能性があるコードを指摘
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer コードレビュー結果
Pull Request のコメントだけでなく、コンソールの Code Reviews から過去
のレビュー結果を確認できる
マネジメントコンソール > Amazon CodeGuru > Reviewer > Code reviews
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer Code reviews
• コードレビューは Pull Request と1対1
で紐づいている
• マネジメントコンソールからレコメン
デーションに対し ポジティブ/ネガティ
ブ フィードバックが可能
• マネジメントコンソールから過去90日間
のコードレビュー結果を確認可能
(ListCodeReviews, DescribeCodeReview
API)
• コードレビューには以下3つのステータ
スが存在する
• Pending
• Completed
• Failed
Code Reviewの詳細画面
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Reviewer の特徴
• ルールベースおよび機械学習ベースのモデルの両方を使用してインテリ
ジェントなレコメンデーションを提供
• モデルはオープンソースプロジェクトや Amazon.com のアプリケーションコー
ド及びコードレビューによってトレーニングされている
• 並列処理などの発見が困難なバグやAWSベストプラクティスを含む幅広い
レコメンデーションを生成可能
• 精度の高い (即ちFalse Positive が少ない) レコメンデーションを提供
• 既存のデベロッパーワークフローに大きな変更なく利用を開始できる
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーションパフォーマンス解析における課題
パフォーマンスの課
題点の特定が困難
実用的な推奨事項
が欲しい
コード修正の優先順
位を付けたい
ベストプラクティスを
学習する必要がある
パフォーマンスエ
ンジニアリングの
深い知見が必要
継続的にパフォー
マンス解析を行う
必要がある
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler の動作イメージ
Profiler
スレッド
アプリケーション
Profiler
スレッド
アプリケーション
Profiler
スレッド
Lambda関数
Profiler
スレッド
Lambda関数
JVMベースのアプリケーション
Javaランタイム Lambda関数
Amazon CodeGuru Profiler
プロファイルデータのビジュアライゼーション
レコメンデーション 異常検知
ランタイムのプロファイリングデータを継続的に収集し、パフォーマンス改善のためのインサイトを提供する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru Profiler とは
Amazon CodeGuru Profilerにより、開発者は機械学習をベースとしたアプリケー
ションプロファイラを使用して最も実行コストが高いコード行を特定することがで
きる
JVMアプリケーションのプロファイルデータを継続的に収集し、ランタイムの
パフォーマンス解析のためのビジュアライゼーション及びインサイトを提供する
よりCPU使用効率を向上するための改善方法を含む推奨事項が提供される他、過去
のプロファイリングデータと乖離があった際に異常検知を行う
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler の始め方
1. CodeGuru Profiler プロファイリンググループの作成
CreateProfilingGroup API あるいは マネジメントコンソール
> Amazon CodeGuru > Profiler より作成
2. IAM権限の設定
Profilerエージェントが使用する IAM User/Role に CodeGuru
へプロファイルデータを送信するための権限を付与
3. Profiler エージェントをスタート
• エージェントは本番環境でアプリケーションを継続的にプ
ロファイルするよう設計されている
• エージェント起動後 5 - 15分 でアプリケーションデータが
送信される。以降は10分間隔で送信
• 2つの方法で起動:
1. JVMエージェントを使用 (推奨)
2. コードにProfilerを組み込む
プロファイリンググループの作成
IAM権限の設定
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler エージェント
方法1 JVM エージェントを使用 (推奨)
• コードの書き換えやコンパイルが不要
• 手順
• CodeGuru Profiler Agent JAR ファイルをダウンロードし配置
• Javaアプリケーション起動時に javaagent オプションで Profiler エージェントを指定
方法2 コードに Profiler を組み込む
• プロファイリングを柔軟に制御できる
• 手順
• Maven や Gradle の設定ファイルに依存関係を記述
• Main クラスにて Profiler エージェントを起動
java -javaagent:/path/to/codeguru-profiler-java-agent-standalone-
1.0.0.jar=profilingGroupName:<MyProfilingGroup>,region:<region-code> -jar MyApplication.jar
import software.amazon.codeguruprofilerjavaagent.Profiler;
class MyApplication {
public static void main(String[] args) {
Profiler.builder()
.profilingGroupName("MyProfilingGroup")
.build()
.start();
...
}
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Lambda における CodeGuru Profiler の使用 (1/2)
• 設定項目
• Lambda 環境変数に以下を追加
• Key = AWS_CODEGURU_PROFILER_GROUP_ARN, Value = <プロファイリンググループのARN>
• Key = AWS_CODEGURU_PROFILER_ENABLED, Value = TRUE
• Maven や Gradle の設定ファイルに依存関係を記述
• コードを変更し Lambda 内でプロファイリングを開始
• 次ページで以下3パターンを紹介
• AWS Lambda が提供する RequestHandler を使用している場合
• AWS Lambda が提供する RequestStreamHandler を使用している場合
• AWS Lambda が提供するハンドラーを使用していない場合
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Lambda における CodeGuru Profiler の使用 (2/2)
package example;
import java.util.Map;
import com.amazonaws.services.lambda.runtime.Context;
import software.amazon.codeguruprofilerjavaagent.RequestHandlerWithProfiling;
public class Handler extends RequestHandlerWithProfiling<Map<String,String>, String> {
@Override
public String requestHandler(Map<String, String> input, Context context) {
// Your function code here
}
}
AWS Lambda が提供する RequestHandler を使用している場合 AWS Lambda が提供する RequestStreamHandler を使用している場合
AWS Lambda が提供するハンドラーを使用していない場合
package example;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.amazonaws.services.lambda.runtime.Context;
import software.amazon.codeguruprofilerjavaagent.RequestStreamHandlerWithProfiling;
public class StreamHandler extends RequestStreamHandlerWithProfiling {
@Override
public void requestHandler(InputStream input, OutputStream output, Context context)
throws IOException {
// Your function code here
}
}
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import software.amazon.codeguruprofilerjavaagent.LambdaProfiler;
public class MyHandler implements RequestHandler<Input, Output>{
@Override
public Output handleRequest(Input input, Context context) {
return LambdaProfiler.profile(input, context, this::myHandlerFunction);
}
public Output myHandlerFunction(Input input, Context context) {
// your function code here
}
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler のビジュアライゼーション
• 稼働中のアプリケーションのスタッ
クトレースのサンプリングを集約し
たものであり、どの code path が
CPU時間を消費しているか把握する
ために役立つ (Flame Graph とも呼
ぶ)
• 各フレーム (frame) には関数やCPU
消費時間に関する情報が表示される
• 3種類のビジュアライゼーションを提
供: Overview, Hotspots, Inspect
• 3種類のビューを提供: CPU, Latency,
Custom
例: CodeGuru Profiler Overview モード, CPU ビュー
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ビジュアライゼーションがどのように生成されるか
ビジュアライゼーションはスタックトレースのサンプリングである
Thread main
java.lang.Thread.State: RUNNABLE
com.amazon.profiler.demo.Example.doOne()
com.amazon.profiler.demo.Example.doPlenty()
com.amazon.profiler.demo.Example.main(String[])
サンプル1
Thread main
java.lang.Thread.State: TIMED_WAITING
java.lang.Thread.sleep(long)
com.amazon.profiler.demo.Example.doPlenty()
com.amazon.profiler.demo.Example.main(String[])
サンプル2
Thread main
java.lang.Thread.State: RUNNABLE
com.amazon.profiler.demo.Example.doPlenty()
com.amazon.profiler.demo.Example.main(String[])
サンプル3
Thread main
java.lang.Thread.State: RUNNABLE
com.amazon.profiler.demo.Example.doOne()
com.amazon.profiler.demo.Example.main(String[])
サンプル4
サンプル数: 1
サンプル数: 2
サンプル数: 3
サンプル数: 4
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ビジュアライゼーションから得られる情報
doOne 関数は main 及び doPlenty 関数で呼び出
されている (doOne は main と doPlenty 両方のフ
レームの上に現れている)
doPlenty 関数の半分以上のCPU時間は doOne に
消費されている (doOne の幅は doPlenty の幅の半
分以上を占めている)
doPlenty 関数の中でもCPU時間を消費する処理が
行われている (doPlenty の上には空白が存在する)
正しい情報
main 関数の中で doOne 関数は doPlenty 関数よりも前
に呼び出されている (フレームはアルファベット順で表
示されており、関数の呼び出し順序とは無関係)
doOne 関数は random 関数よりも多く呼び出されてい
る (ビジュアライゼーションはCPU使用時間の割合を表
すものであり、関数の呼び出し頻度とは無関係)
doPlenty 関数は実行に XX 秒時間がかかっている (ビ
ジュアライゼーションはCPU使用時間の割合を表すも
のであり、関数単体の実行時間は計測できない)
誤った情報
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ビジュアライゼーション UI の解説 (Overview モード)
1. ビジュアライゼー
ションモードの切り替
え (Overview, Hotspots,
Inspect)
2. ビューの切り替え
(CPU, Latency, Custom)
3. 特定のフレームを検
索し、Inspect モードで
ドリルダウンできる
5. CodeGuru Profiler に
よるレコメンデーショ
ンを表示
6. My code とみなす
ネームスペースの選択、
すべてのレコメンデー
ションレポート表示な
どのアクション
7. ビジュアライゼー
ションの時間範囲
4. 自身のコードとライ
ブラリ/フレームワーク
のコードを区別
8. マウスオーバーすると
特定のフレームに関する情
報を表示する。年間のCPU
コスト試算はオンデマンド
価格に基づく
9. マウスオーバーしたフ
レームと同じ関数名のフ
レームはハイライトされる
1 2 3
4
5 6
7
8
9
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler 3種類のモード
1. Overview モード 2. Hotspots モード 3. Inspect モード
プロファイリングデータをボトムアップ
で表示
多くのIDEのスタックトレース同様に、
最下位がエントリポイントとなる
アプリケーション全体を理解したり、各
処理のCPU使用時間を把握するのに有用
プロファイリングデータをトップダウン
で表示
最もCPU使用時間が長い関数が上位に表
示される
CPU使用時間が長い (=実行コストが高
い) 処理を特定するのに有用。ただし
CPU使用時間が長いことが悪いこととは
限らない
ビジュアライゼーション全体で複数箇所
に存在するフレームを集約し表示
呼び出し元 (callers/親) は対象フレーム
の下部、呼び出し先 (callees/子) は対象
フレームの上部に集約される
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler 3種類のビュー
1. CPU View 2. Latency View
3. Custom View
スレッドステートが ’RUNNABLE’, ‘BLOCKED’ または
‘NATIVE’ のフレームを表示するデフォルトのビュー
アプリケーションのCPU使用率の解析に役立つ
色は視覚的にフレームを区別しやすくするため
スレッドステートが ‘IDLE’ 以外のフレームを表示する
ビュー (つまり、 ‘BLOCKED’, ’WAITING’ や
‘TIMED_WAITING’ も含まれる)
アプリケーションのレイテンシー (実行時間) に影響を与え
ている処理の特定に役立つ
色は異なるスレッドステートを区別するため
表示対象のスレッドステート及び色をカスタマイズできるビュー
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler レコメンデーションレポート
• 収集されたプロファイリングデータを
元に1時間おきにレコメンデーションレ
ポートを自動的に生成
• UIからは直近30日分のレポートを閲覧
可能 (CLI/APIからは更に古いレポート/
レコメンデーションを取得可能)
• レポートにはパフォーマンス改善に役
立つレコメンデーションと (検知された
場合) 異常事項が含まれる
レコメンデーションレポート一覧
レコメンデーションレポートのサンプル
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler レコメンデーション
• レコメンデーションは非効率的な処理
やライブラリの使用、不必要なオブ
ジェクト/スレッドの再作成など、CPU
リソースを無駄にするようなアンチパ
ターンに対して提示される
• レコメンデーションには以下内容が含
まれる
• What/Why: 課題と背景
• What/Why: オンデマンド価格に基づ
いた年間推定コスト
• How: 改善方法及び関連するドキュ
メントへのリンク
• Where: 対象となる関数名
例: ロギング処理のCPU使用率が高いことを示すレコメンデーション
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler 異常検知
• 過去のプロファイリングデータと比べ、
CPU使用率 または wall clock time (処理の実
測時間) の乖離が大きい場合、異常として判
定しレポートに出力される
• Amazon SNSへの通知をサポート
• レコメンデーションには以下内容が含まれる
• What: 対象のフレーム
• Why: 課題の背景およびグラフ
• Where: Inspectモードでの確認
• フィードバックの提出
• 異常検知は機械学習をベースとしており、
フィードバックすることで CodeGuru
Profiler の精度向上に繋がる
例: とある関数の実測時間が異常に長かった場合
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeGuru Profiler の特徴
• 既存のアプリケーションに対しても簡単にProfilerエージェントを起動することが可
能
• アプリケーションデータを継続的に収集し、柔軟なビジュアライゼーションを提供
• プロファイリングデータから、アクションを含むパフォーマンスを向上するためのレ
コメンデーションを提供
• 過去のプロファイリングデータと乖離がある場合、機械学習をベースとした異常検知
をレポート
• Profilerエージェントは最小限のフットプリントで、本番環境でアプリケーションを
継続的にプロファイルするよう設計されている
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru セキュリティ
Amazon CodeGuru
• Amazon CodeGuru により収集されたデータは Amazon S3 及び Amazon DynamoDB (Profiler
の場合Amazon Kinesisも含む) に保管されておりサーバーサイド暗号化が行われている
• データ転送には全てTLSを採用しており、全てのエンドポイントでは SHA-256 証明書が利用
されている
Amazon CodeGuru Reviewer
• CodeGuru Reviewer はリポジトリメタデータ、レコメンデーション、Pull Request メタデー
タ、お客様フィードバックを保持するが、ソースコードは保持されない
Amazon CodeGuru Profiler
• CodeGuru Profilerはスタックトレースを定期的に収集し、CodeGuru Profiler バックエンドに
送信する。CodeGuru Profiler エージェントはパラメーターの名前や値、変数の値などのアプ
リケーションデータへのアクセスはできない
https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/security.html
https://docs.aws.amazon.com/codeguru/latest/profiler-ug/security.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru サービスクォータ
Amazon CodeGuru Reviewer
AWS CodeCommit リポジトリにおけるリージョンごとの月間最大Pull Request数:
5,000 (デフォルト)
Amazon CodeGuru Profiler
リージョンごとの最大プロファイリンググループ数: 50 (デフォルト)
https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/quotas.html
https://docs.aws.amazon.com/codeguru/latest/profiler-ug/quotas.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CodeGuru 料金体系
継続的に評価いただくために90日間の無償期間を提供
Amazon CodeGuru Profiler
• 0.005USD/サンプリング時間
• プロファイリンググループあたり
36,000 サンプリング時間が上限
• AWS Lambda では Payer アカウン
トごとに500サンプリング時間が
無償利用枠
Amazon CodeGuru Reviewer
• 0.75USD/100行のコード
• Pull request 内に過去解析済みの
ファイルが含まれる場合、差分の
みが課金対象となる
• コメントやインポート文などの非
コード行は課金対象外
2020年8月4日時点 東京リージョンの価格
https://aws.amazon.com/codeguru/pricing/
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• 背景
• Amazon CodeGuru とは
• Amazon CodeGuru Reviewer
• Amazon CodeGuru Profiler
• セキュリティ
• サービスクォータ
• 料金体系
• まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
• Amazon CodeGuru はコードに欠陥がある部分やアプリケーションで最も実行コスト
が高い箇所を特定し、改善方法含め推奨事項 (レコメンデーション) を生成する機械
学習をベースとした開発者向けのサービス
• Amazon CodeGuru Reviewer は現状 AWS CodeCommit、GitHub、 GitHub
Enterprise Cloud、GitHub Enterprise Server、Bitbucket に対応しており、Pull
Request をトリガーに Java ソースコードに対しレコメンデーションを生成する
• Amazon CodeGuru Profiler は Profiler エージェントによって継続的に JVM ランタイ
ムのデータを収集し、リッチなビジュアライゼーションを提供し、パフォーマンス改
善に役立つレコメンデーションや異常検知をレポートする
• お客様のフィードバックを基にモデルを継続的に改善している
• 90日の無償期間を提供
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
(2020/8/5追記) CodeGuru Reviewer がリポジトリ解析に
対応• Pull Request ベースの解析に加え、リポジトリの特定ブランチ
に対するフルスキャンをサポート
• 開始方法
• 対象のリポジトリを関連付ける
• マネジメントコンソールから、Amazon CodeGuru > Code
reviews にて Create repository analysis を選択
(CreateCodeReview API でも可能)
• リポジトリを選択し、ブランチを指定する
• レビュー結果はマネジメントコンソールの Code Reviewes 配下
あるいはAPIで確認できる
• ユースケース
• 既存のリポジトリに対し CodeGuru Reviewer を導入する際の評
価用途
• 定期的にフルスキャンを実施し、CodeGuru Reviewer で新たに
追加された検知領域に対するレコメンデーションがないかの確認
• 料金体系
• 本資料の「料金体系」で紹介している Pull Request ベースの料
金体系とは異なる
• 毎月最初の1,500,000行に対して 0.50USD/100行のコード
• 毎月1,500,000行を超えた分に対し 0.40USD/100行のコード
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Q&A
お答えできなかったご質問については
AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて
後日掲載します。
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS の日本語資料の場所「AWS 資料」で検索
https://amzn.to/JPArchive
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
で[検索]AWS イベント
毎週”W-A個別技術相談会”を実施中
• AWSのソリューションアーキテクト(SA)に
対策などを相談することも可能
• 申込みはイベント告知サイトから
(https://aws.amazon.com/jp/about-aws/events/)
AWS Well-Architected 個別技術相談会
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
ご視聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

20200128 AWS Black Belt Online Seminar Amazon Forecast
20200128 AWS Black Belt Online Seminar Amazon Forecast20200128 AWS Black Belt Online Seminar Amazon Forecast
20200128 AWS Black Belt Online Seminar Amazon ForecastAmazon Web Services Japan
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway Amazon Web Services Japan
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation 20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation Amazon Web Services Japan
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...Amazon Web Services Japan
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems ManagerAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAmazon Web Services Japan
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMRAmazon Web Services Japan
 
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon AthenaAmazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeployAmazon Web Services Japan
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAmazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
20190313 AWS Black Belt Online Seminar Amazon VPC Basic
20190313 AWS Black Belt Online Seminar Amazon VPC Basic20190313 AWS Black Belt Online Seminar Amazon VPC Basic
20190313 AWS Black Belt Online Seminar Amazon VPC BasicAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrailAmazon Web Services Japan
 

Was ist angesagt? (20)

20200128 AWS Black Belt Online Seminar Amazon Forecast
20200128 AWS Black Belt Online Seminar Amazon Forecast20200128 AWS Black Belt Online Seminar Amazon Forecast
20200128 AWS Black Belt Online Seminar Amazon Forecast
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation 20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
20190313 AWS Black Belt Online Seminar Amazon VPC Basic
20190313 AWS Black Belt Online Seminar Amazon VPC Basic20190313 AWS Black Belt Online Seminar Amazon VPC Basic
20190313 AWS Black Belt Online Seminar Amazon VPC Basic
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 

Ähnlich wie 20200804 AWS Black Belt Online Seminar Amazon CodeGuru

CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateAmazon Web Services
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...Marcia Villalba
 
DevSecOps 的規模化實踐 (Level: 300-400)
DevSecOps 的規模化實踐 (Level: 300-400)DevSecOps 的規模化實踐 (Level: 300-400)
DevSecOps 的規模化實踐 (Level: 300-400)Amazon Web Services
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)Amazon Web Services Japan
 
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Amazon Web Services
 
Göteborg Reinvent 2023_Aritra_updated.pptx
Göteborg Reinvent 2023_Aritra_updated.pptxGöteborg Reinvent 2023_Aritra_updated.pptx
Göteborg Reinvent 2023_Aritra_updated.pptxAritra Nag
 
From Code to a Running Container | AWS Floor28
From Code to a Running Container | AWS Floor28From Code to a Running Container | AWS Floor28
From Code to a Running Container | AWS Floor28Amazon Web Services
 
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon NeptuneAmazon Web Services Japan
 
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018Bhuvaneswari Subramani
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelAmazon Web Services
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryAmazon Web Services
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryAmazon Web Services
 
Ci/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubCi/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubBoaz Ziniman
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarAmazon Web Services
 
DevConfZA 2020 : Automating your cloud: What are the building blocks
DevConfZA 2020 : Automating your cloud: What are the building blocksDevConfZA 2020 : Automating your cloud: What are the building blocks
DevConfZA 2020 : Automating your cloud: What are the building blocksCobus Bernard
 
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Vadym Kazulkin
 
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced SessionAmazon Web Services Japan
 

Ähnlich wie 20200804 AWS Black Belt Online Seminar Amazon CodeGuru (20)

CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
 
DevSecOps 的規模化實踐 (Level: 300-400)
DevSecOps 的規模化實踐 (Level: 300-400)DevSecOps 的規模化實踐 (Level: 300-400)
DevSecOps 的規模化實踐 (Level: 300-400)
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2
 
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
 
Göteborg Reinvent 2023_Aritra_updated.pptx
Göteborg Reinvent 2023_Aritra_updated.pptxGöteborg Reinvent 2023_Aritra_updated.pptx
Göteborg Reinvent 2023_Aritra_updated.pptx
 
From Code to a Running Container | AWS Floor28
From Code to a Running Container | AWS Floor28From Code to a Running Container | AWS Floor28
From Code to a Running Container | AWS Floor28
 
CI/CD@Scale
CI/CD@ScaleCI/CD@Scale
CI/CD@Scale
 
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune
 
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018
CI CD using AWS Developer Tools @ AWS Community Day Bengaluru 2018
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day Israel
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & Delivery
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & Delivery
 
Ci/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubCi/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO Club
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStar
 
DevConfZA 2020 : Automating your cloud: What are the building blocks
DevConfZA 2020 : Automating your cloud: What are the building blocksDevConfZA 2020 : Automating your cloud: What are the building blocks
DevConfZA 2020 : Automating your cloud: What are the building blocks
 
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022
 
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session
20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session
 

Mehr von Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 

Mehr von Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

20200804 AWS Black Belt Online Seminar Amazon CodeGuru

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive Amazon CodeGuru サービスカットシリーズ [AWS Black Belt Online Seminar] Solutions Architect Yumiko Kanasugi 2020/8/4
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介 Yumiko Kanasugi (金杉有見子)  所属 アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト  好きなAWSサービス  リモートワークの過ごし方 毎日夕方愛犬と散歩 🐕🐕 AWS SupportAmazon CodeGuru
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Black Belt Online Seminar とは 「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。 質問を投げることができます! • 書き込んだ質問は、主催者にしか見えません • 今後のロードマップに関するご質問は お答えできませんのでご了承下さい ① 吹き出しをクリック ② 質問を入力 ③ Sendをクリック Twitter ハッシュタグは以下をご利用ください #awsblackbelt
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 内容についての注意点 • 本資料では2020年8月4日現在のサービス内容および価格についてご説明しています。最新の情 報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相 違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただきま す。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本セミナーの概要 • 本セミナーで学習できること • Amazon CodeGuru の概要 • Amazon CodeGuru Reviewer と Profiler の詳細 • Amazon CodeGuru の始め方 • 対象者 • 技術者の方 • アプリケーション開発者の方 • コードレビュープロセスを効率化したい方 • アプリケーションパフォーマンスを最適化したい方 • IT 知識レベル:★★☆☆☆ • AWS 知識レベル:★★☆☆☆
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 開発における一般的なフロー Logging Debugging コーディング + レビュー ビルド + テスト デプロイ 計測 改善 アプリケーションコードとパフォーマンスを 継続的に改善する必要がある
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーション改善におけるチャレンジ コード解析ツールはコー ド品質と効率に対する標 準ベストプラクティスを 示さない 開発者がコードの問題を 特定するのに労力と時間 がかかる 実行コストが高くなって いるコード箇所を特定し 改修することが困難
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru とは Amazon CodeGuru ProfilerAmazon CodeGuru Reviewer • アプリケーションのパフォーマンス状況を可視化 し、最も実行コストが高いコード行を特定 • 改善方法を提示することでインフラストラクチャ 費用の削減に繋がる • 現時点で JVM ベースの言語に対応 • 機械学習を駆使し、ソースコードのクリティカル な問題や発見が困難なバグを特定 • 改善方法を提示することでコード品質の維持に繋 がる • 現時点で Java に対応 コードに欠陥がある部分やアプリケーションで最も実行コストが高い箇所を特定し、 改善方法含め推奨事項を生成する機械学習をベースとした開発者向けのサービス 2つの機能は独立しており、単体で使用可能
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS AI/MLスタック VISION SPEECH TEXT SEARCH CHATBOTS PERSONALIZATION FORECASTING FRAUD DEVELOPMENT CONTACT CENTERS Ground Truth Augmented AI ML Marketplace Neo Built-in algorithms Notebooks Experiments Model training & tuning Debugger Autopilot Model hosting Model Monitor Deep Learning AMIs & Containers GPUs & CPUs Elastic Inference Inferentia FPGA Amazon Rekognition Amazon Polly Amazon Transcribe +Medical Amazon Comprehend +Medical Amazon Translate Amazon Lex Amazon Personalize Amazon Forecast Amazon Fraud Detector Amazon CodeGuru AI SERVICES ML SERVICES ML FRAMEWORKS & INFRASTRUCTURE Amazon Textract Amazon Kendra Contact Lens For Amazon Connect SageMaker Studio IDE NEW NEW! NEW! NEW! Amazon SageMaker NEW! NEW! NEW! 2020年6月29日 GA! Amazon CodeGuru はAIサービスとして位置付けられている
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 一般的な開発フローにおけるAmazon CodeGuru の立ち 位置 本番環境でパフォーマンス とコストにおける改善点を 容易に特定 CodeGuru Profiler 最も実行コストが高 いコード行の検出お よび最適化 実用的な推奨事項を 生成するビルトイン のコードレビュー CodeGuru Reviewer コーディング + レビュー ビルド + テスト デプロイ 計測 改善
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェアデリバリーパイプラインにおける立ち位置 M O N I T O RD E P L O YT E S TB U I L D S O U R C E / A R T I F A C T C O D I N G AWS CodePipeline AWS Cloud9 AWS IDE Toolkits AWS CodeCommit + AWS CodeArtifact AWS CodeBuild AWS CodeBuild + Third Party AWS CodeDeploy AWS X-Ray Amazon CloudWatch AWS CloudFormation AWS SAMAWS Cloud Development KitM O D E L AWS CodeStar Amazon CodeGuru Reviewer Amazon CodeGuru Profiler
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェアデリバリーパイプラインにおける立ち位置 M O N I T O RD E P L O YT E S TB U I L D S O U R C E / A R T I F A C T C O D I N G AWS CodePipeline AWS Cloud9 AWS IDE Toolkits AWS CodeCommit + AWS CodeArtifact AWS CodeBuild AWS CodeBuild + Third Party AWS CodeDeploy AWS X-Ray Amazon CloudWatch AWS CloudFormation AWS SAMAWS Cloud Development KitM O D E L AWS CodeStar Amazon CodeGuru Reviewer Code Services と連携 Amazon CodeGuru Profiler
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru 提供リージョン 利用可能なリージョン リージョンID 米国東部(バージニア北部) us-east-1 米国東部(オハイオ) us-east-2 米国西部(オレゴン) us-west-2 アジアパシフィック(シンガポール) ap-southeast-1 アジアパシフィック(シドニー) ap-southeast-2 アジアパシフィック(東京) ap-northeast-1 欧州(フランクフルト) eu-central-1 欧州(アイルランド) eu-west-1 欧州(ロンドン) eu-west-2 欧州(ストックホルム) eu-north-1 東京リージョンを含む以下リージョンにて利用可能 (2020年8月4日 本日時点)
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コードレビュープロセスにおける課題 AWS CodeCommit GitHubBitbucket ローカルで 開発 コード レビュー AWS Cloud9 Branch Pull Request Merge レビュアー 承認 大量のソースコード複数領域における専門知識ビジネスロジックの検証 十分なコードレビュー人材の確保は多くの企業にとっての課題である
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer の位置付け AWS CodeCommit GitHubBitbucket ローカルで 開発 コード レビュー AWS Cloud9 Branch Pull Request Merge レビュアー 承認 Amazon CodeGuru Reviewer Amazon CodeGuru Reviewer でコードレビューの負担を軽減
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru Reviewer とは 開発者は機械学習のメリットを享受し、自動的にベストプラクティに沿っていな い問題箇所を特定することができ、本番環境に影響を与える可能性のある問題を 未然に防ぐことができる コードの具体的な改善方法も推奨事項に含まれており、開発者はコード例や関連 ドキュメントを参照することが可能 開発者はAmazon CodeGuru Reviewerをレビュアーの一員としてみなすことが でき、追加のソフトウェアインストール不要、通常の開発ワークフローに変更な く簡単に利用を始められる
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer の動作イメージ コードリポジトリ Amazon CodeGuru リポジトリ Pull Request CodeGuru Reviewer 管理者 1. リポジトリ関連付け 開発者 2. 変更点を Commit し Pull Request を作成 3. Pull Request に対し推奨事項をコメント 開発者 4. コードを修正し、コメントへフィードバック 5. フィードバックに基づいて改善 以降2 – 5 を繰り返し
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer の仕組み 開発者が Pull Request を作成 インプット: ソースコード try (GZip gzip = GZIPInputStream.create( url.openStream())) { use(gzip); } catch (Exception e) { handle(); } 機能やパターンの 意味を抽出 機能の抽出 gzip = GZIPInputStream .create(stream) use(gzip) ENTRY EXIT stream url.openStream() gzip.close() handle() throw Exception MLアルゴリズム + プログラム 解析 によりコードの欠陥を特定 機械学習による 処理 コード コーパス Pull Requestコメントとして 推奨事項を確認 アウトプット: 推奨事項 (レコメンデーション) リソースリークの 可能性 url.openStream() Use try-with- resources
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru Reviewer の対応リポジトリ GitHub AWS CodeCommit GitHub社が提供するGitベースのサービス AWSマネージドサービスとしてのGitベースの ソースコードリポジトリ IAMによるアクセス制御と高い耐久性を提供 Bitbucket Cloud Atlassian社が提供するGitベースのサービス GitHub Enterprise Server GitHub Enterprise のオンプレミス版 (AWS CodeStar Connection 経由) 以下のリポジトリに対応 (2020年8月4日 本日時点) GitHub Enterprise Cloud GitHub Enterprise のクラウド版 (AWS CodeStar Connection 経由)
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer のレコメンデーション • AWSベストプラクティス • 正しい AWS API の使い方 (例: ページネーションによる正確性の担保) • 並列処理 • マルチスレッド処理の適切な実装 (例: 同期漏れによる意図しないデータ不整合) • リソースリーク • 正しいリソースの扱い (例: DBコネクション解放漏れによる可用性への影響) • 機密データの漏洩 • 機密情報の不必要な公開を防止 (例: クレジットカード番号のロギング) • 一般的なコーディングベストプラクティス • コードの欠陥の発見 (例: オブジェクトが null かどうかの確認) • リファクタリング • 冗長なコードの特定 (例: 同じコードとロジックが複数箇所で使われている) • インプットバリデーション • 入力形式の確認 (例: インプットデータにバリデーションロジックが実装されていない)
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer の始め方 AWSマネジメントコンソール > Amazon CodeGuru > Getting Started AWS CLI/API AssociateRepository AWS CodeCommit 及び AWS CodeStar Connection を介した Bitbucket、GitHub Enterprise Server のリポジトリの関連付けに対応 https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_AssociateRepository.html
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer リポジトリの関連付け • ソースプロバイダ及び関連付けるリポジトリ を選択 • AWS CodeCommit の場合、対象リポジトリを直 接プルダウンから選択可能 • AWS CodeCommit または AWS CodeStar Connection を介した接続の場合 (GitHub Enterprise Server 及び Bitbucket が該当) Amazon CodeGuru 用の IAM リソースが自動 的に作成される。IAM Role 名は AWSServiceRoleForAmazonCodeGuruRevie wer (Service Linked Role) • IAM Policy には CodeGuru Reviewer が CodeCommit, CodeStar Connection, CloudWatch へアクセスする際に必要な権限 を定義している
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 27 CodeGuru Reviewer - CodeCommitの利用例 CodeCommit の場合、リポジトリ新規作成画面で CodeGuru Reviewer との 連携指定が可能 (後からの関連付けも可能)
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 28 CodeGuru Reviewer – GitHub & GitHub Enterprise Cloud の利用例 • ソースプロバイダにて GitHub を選択すると GitHub へリダイレクトされ、サインインを 要求される • CodeGuru Reviewer はこの時サインイン したアカウントを使用して Pull Request に コメントする • 区別やメンテナンスがしやすいよう CodeGuru Reviewer 専用の GitHubユー ザーを作成することを推奨 • CodeGuru Reviewer アプリケーション (aws- codesuite) からのアクセスを許可 • 接続後、コンソールから対象リポジトリを選択
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 29 CodeGuru Reviewer – CodeStar Connection の利用例 • ソースプロバイダが Bitbucket 又は GitHub Enterprise Server の場合、AWS CodeStar Connection を介した接続が 必要 • Bitbucketの場合、CodeStar Connection 作成時に CodeStar の Bitbucket アカウ ントへのアクセスを許可し、Amazon CodeGuru Reviewer を Bitbucket Cloud apps としてインストール • GitHub Enterprise Server の場合、 CodeStar Connection 及び Host を作成 する必要がある • Host は任意でVPC内に作成しセキュリティ グループを付与できる。GitHub Enterprise Serever とは別VPCでも可 • GitHub Enterprise Server 側ではポート443 番を許可する必要がある Amazon CodeGuru Reviewer AWS CodeStar Atlassian Bitbucket Cloud Bitbucket の場合 GitHub Enterprise Server の場合 Connection Amazon CodeGuru Reviewer AWS CodeStar GitHub Enterprise Server HostConnection VPC or No VPC VPC or On-premises 443
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer のレコメンデーションサンプル • リポジトリを関連付けた後は Pull Request に 対して CodeGuru Reviewer が自動的にコメ ントを残す • 通常 Pull Request が作成されてから15分 以内に完了 • 各レコメンデーションには Problem, Fix, More info などといった改善方法や関連するド キュメントへのリンクも含まれる • コメントあるいはEmojiリアクションを通して レコメンデーションへフィードバックすること で CodeGuru Reviewer の精度向上に繋がる • コードレビューやレコメンデーション一覧は マネジメントコンソールあるいはAPIで取得可 能 例: リソースリークの可能性があるコードを指摘
  • 31. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer コードレビュー結果 Pull Request のコメントだけでなく、コンソールの Code Reviews から過去 のレビュー結果を確認できる マネジメントコンソール > Amazon CodeGuru > Reviewer > Code reviews
  • 32. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer Code reviews • コードレビューは Pull Request と1対1 で紐づいている • マネジメントコンソールからレコメン デーションに対し ポジティブ/ネガティ ブ フィードバックが可能 • マネジメントコンソールから過去90日間 のコードレビュー結果を確認可能 (ListCodeReviews, DescribeCodeReview API) • コードレビューには以下3つのステータ スが存在する • Pending • Completed • Failed Code Reviewの詳細画面
  • 33. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Reviewer の特徴 • ルールベースおよび機械学習ベースのモデルの両方を使用してインテリ ジェントなレコメンデーションを提供 • モデルはオープンソースプロジェクトや Amazon.com のアプリケーションコー ド及びコードレビューによってトレーニングされている • 並列処理などの発見が困難なバグやAWSベストプラクティスを含む幅広い レコメンデーションを生成可能 • 精度の高い (即ちFalse Positive が少ない) レコメンデーションを提供 • 既存のデベロッパーワークフローに大きな変更なく利用を開始できる
  • 34. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 35. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーションパフォーマンス解析における課題 パフォーマンスの課 題点の特定が困難 実用的な推奨事項 が欲しい コード修正の優先順 位を付けたい ベストプラクティスを 学習する必要がある パフォーマンスエ ンジニアリングの 深い知見が必要 継続的にパフォー マンス解析を行う 必要がある
  • 36. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler の動作イメージ Profiler スレッド アプリケーション Profiler スレッド アプリケーション Profiler スレッド Lambda関数 Profiler スレッド Lambda関数 JVMベースのアプリケーション Javaランタイム Lambda関数 Amazon CodeGuru Profiler プロファイルデータのビジュアライゼーション レコメンデーション 異常検知 ランタイムのプロファイリングデータを継続的に収集し、パフォーマンス改善のためのインサイトを提供する
  • 37. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru Profiler とは Amazon CodeGuru Profilerにより、開発者は機械学習をベースとしたアプリケー ションプロファイラを使用して最も実行コストが高いコード行を特定することがで きる JVMアプリケーションのプロファイルデータを継続的に収集し、ランタイムの パフォーマンス解析のためのビジュアライゼーション及びインサイトを提供する よりCPU使用効率を向上するための改善方法を含む推奨事項が提供される他、過去 のプロファイリングデータと乖離があった際に異常検知を行う
  • 38. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler の始め方 1. CodeGuru Profiler プロファイリンググループの作成 CreateProfilingGroup API あるいは マネジメントコンソール > Amazon CodeGuru > Profiler より作成 2. IAM権限の設定 Profilerエージェントが使用する IAM User/Role に CodeGuru へプロファイルデータを送信するための権限を付与 3. Profiler エージェントをスタート • エージェントは本番環境でアプリケーションを継続的にプ ロファイルするよう設計されている • エージェント起動後 5 - 15分 でアプリケーションデータが 送信される。以降は10分間隔で送信 • 2つの方法で起動: 1. JVMエージェントを使用 (推奨) 2. コードにProfilerを組み込む プロファイリンググループの作成 IAM権限の設定
  • 39. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler エージェント 方法1 JVM エージェントを使用 (推奨) • コードの書き換えやコンパイルが不要 • 手順 • CodeGuru Profiler Agent JAR ファイルをダウンロードし配置 • Javaアプリケーション起動時に javaagent オプションで Profiler エージェントを指定 方法2 コードに Profiler を組み込む • プロファイリングを柔軟に制御できる • 手順 • Maven や Gradle の設定ファイルに依存関係を記述 • Main クラスにて Profiler エージェントを起動 java -javaagent:/path/to/codeguru-profiler-java-agent-standalone- 1.0.0.jar=profilingGroupName:<MyProfilingGroup>,region:<region-code> -jar MyApplication.jar import software.amazon.codeguruprofilerjavaagent.Profiler; class MyApplication { public static void main(String[] args) { Profiler.builder() .profilingGroupName("MyProfilingGroup") .build() .start(); ... } }
  • 40. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Lambda における CodeGuru Profiler の使用 (1/2) • 設定項目 • Lambda 環境変数に以下を追加 • Key = AWS_CODEGURU_PROFILER_GROUP_ARN, Value = <プロファイリンググループのARN> • Key = AWS_CODEGURU_PROFILER_ENABLED, Value = TRUE • Maven や Gradle の設定ファイルに依存関係を記述 • コードを変更し Lambda 内でプロファイリングを開始 • 次ページで以下3パターンを紹介 • AWS Lambda が提供する RequestHandler を使用している場合 • AWS Lambda が提供する RequestStreamHandler を使用している場合 • AWS Lambda が提供するハンドラーを使用していない場合
  • 41. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Lambda における CodeGuru Profiler の使用 (2/2) package example; import java.util.Map; import com.amazonaws.services.lambda.runtime.Context; import software.amazon.codeguruprofilerjavaagent.RequestHandlerWithProfiling; public class Handler extends RequestHandlerWithProfiling<Map<String,String>, String> { @Override public String requestHandler(Map<String, String> input, Context context) { // Your function code here } } AWS Lambda が提供する RequestHandler を使用している場合 AWS Lambda が提供する RequestStreamHandler を使用している場合 AWS Lambda が提供するハンドラーを使用していない場合 package example; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.amazonaws.services.lambda.runtime.Context; import software.amazon.codeguruprofilerjavaagent.RequestStreamHandlerWithProfiling; public class StreamHandler extends RequestStreamHandlerWithProfiling { @Override public void requestHandler(InputStream input, OutputStream output, Context context) throws IOException { // Your function code here } } import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import software.amazon.codeguruprofilerjavaagent.LambdaProfiler; public class MyHandler implements RequestHandler<Input, Output>{ @Override public Output handleRequest(Input input, Context context) { return LambdaProfiler.profile(input, context, this::myHandlerFunction); } public Output myHandlerFunction(Input input, Context context) { // your function code here } }
  • 42. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler のビジュアライゼーション • 稼働中のアプリケーションのスタッ クトレースのサンプリングを集約し たものであり、どの code path が CPU時間を消費しているか把握する ために役立つ (Flame Graph とも呼 ぶ) • 各フレーム (frame) には関数やCPU 消費時間に関する情報が表示される • 3種類のビジュアライゼーションを提 供: Overview, Hotspots, Inspect • 3種類のビューを提供: CPU, Latency, Custom 例: CodeGuru Profiler Overview モード, CPU ビュー
  • 43. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ビジュアライゼーションがどのように生成されるか ビジュアライゼーションはスタックトレースのサンプリングである Thread main java.lang.Thread.State: RUNNABLE com.amazon.profiler.demo.Example.doOne() com.amazon.profiler.demo.Example.doPlenty() com.amazon.profiler.demo.Example.main(String[]) サンプル1 Thread main java.lang.Thread.State: TIMED_WAITING java.lang.Thread.sleep(long) com.amazon.profiler.demo.Example.doPlenty() com.amazon.profiler.demo.Example.main(String[]) サンプル2 Thread main java.lang.Thread.State: RUNNABLE com.amazon.profiler.demo.Example.doPlenty() com.amazon.profiler.demo.Example.main(String[]) サンプル3 Thread main java.lang.Thread.State: RUNNABLE com.amazon.profiler.demo.Example.doOne() com.amazon.profiler.demo.Example.main(String[]) サンプル4 サンプル数: 1 サンプル数: 2 サンプル数: 3 サンプル数: 4
  • 44. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ビジュアライゼーションから得られる情報 doOne 関数は main 及び doPlenty 関数で呼び出 されている (doOne は main と doPlenty 両方のフ レームの上に現れている) doPlenty 関数の半分以上のCPU時間は doOne に 消費されている (doOne の幅は doPlenty の幅の半 分以上を占めている) doPlenty 関数の中でもCPU時間を消費する処理が 行われている (doPlenty の上には空白が存在する) 正しい情報 main 関数の中で doOne 関数は doPlenty 関数よりも前 に呼び出されている (フレームはアルファベット順で表 示されており、関数の呼び出し順序とは無関係) doOne 関数は random 関数よりも多く呼び出されてい る (ビジュアライゼーションはCPU使用時間の割合を表 すものであり、関数の呼び出し頻度とは無関係) doPlenty 関数は実行に XX 秒時間がかかっている (ビ ジュアライゼーションはCPU使用時間の割合を表すも のであり、関数単体の実行時間は計測できない) 誤った情報
  • 45. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ビジュアライゼーション UI の解説 (Overview モード) 1. ビジュアライゼー ションモードの切り替 え (Overview, Hotspots, Inspect) 2. ビューの切り替え (CPU, Latency, Custom) 3. 特定のフレームを検 索し、Inspect モードで ドリルダウンできる 5. CodeGuru Profiler に よるレコメンデーショ ンを表示 6. My code とみなす ネームスペースの選択、 すべてのレコメンデー ションレポート表示な どのアクション 7. ビジュアライゼー ションの時間範囲 4. 自身のコードとライ ブラリ/フレームワーク のコードを区別 8. マウスオーバーすると 特定のフレームに関する情 報を表示する。年間のCPU コスト試算はオンデマンド 価格に基づく 9. マウスオーバーしたフ レームと同じ関数名のフ レームはハイライトされる 1 2 3 4 5 6 7 8 9
  • 46. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler 3種類のモード 1. Overview モード 2. Hotspots モード 3. Inspect モード プロファイリングデータをボトムアップ で表示 多くのIDEのスタックトレース同様に、 最下位がエントリポイントとなる アプリケーション全体を理解したり、各 処理のCPU使用時間を把握するのに有用 プロファイリングデータをトップダウン で表示 最もCPU使用時間が長い関数が上位に表 示される CPU使用時間が長い (=実行コストが高 い) 処理を特定するのに有用。ただし CPU使用時間が長いことが悪いこととは 限らない ビジュアライゼーション全体で複数箇所 に存在するフレームを集約し表示 呼び出し元 (callers/親) は対象フレーム の下部、呼び出し先 (callees/子) は対象 フレームの上部に集約される
  • 47. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler 3種類のビュー 1. CPU View 2. Latency View 3. Custom View スレッドステートが ’RUNNABLE’, ‘BLOCKED’ または ‘NATIVE’ のフレームを表示するデフォルトのビュー アプリケーションのCPU使用率の解析に役立つ 色は視覚的にフレームを区別しやすくするため スレッドステートが ‘IDLE’ 以外のフレームを表示する ビュー (つまり、 ‘BLOCKED’, ’WAITING’ や ‘TIMED_WAITING’ も含まれる) アプリケーションのレイテンシー (実行時間) に影響を与え ている処理の特定に役立つ 色は異なるスレッドステートを区別するため 表示対象のスレッドステート及び色をカスタマイズできるビュー
  • 48. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler レコメンデーションレポート • 収集されたプロファイリングデータを 元に1時間おきにレコメンデーションレ ポートを自動的に生成 • UIからは直近30日分のレポートを閲覧 可能 (CLI/APIからは更に古いレポート/ レコメンデーションを取得可能) • レポートにはパフォーマンス改善に役 立つレコメンデーションと (検知された 場合) 異常事項が含まれる レコメンデーションレポート一覧 レコメンデーションレポートのサンプル
  • 49. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler レコメンデーション • レコメンデーションは非効率的な処理 やライブラリの使用、不必要なオブ ジェクト/スレッドの再作成など、CPU リソースを無駄にするようなアンチパ ターンに対して提示される • レコメンデーションには以下内容が含 まれる • What/Why: 課題と背景 • What/Why: オンデマンド価格に基づ いた年間推定コスト • How: 改善方法及び関連するドキュ メントへのリンク • Where: 対象となる関数名 例: ロギング処理のCPU使用率が高いことを示すレコメンデーション
  • 50. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler 異常検知 • 過去のプロファイリングデータと比べ、 CPU使用率 または wall clock time (処理の実 測時間) の乖離が大きい場合、異常として判 定しレポートに出力される • Amazon SNSへの通知をサポート • レコメンデーションには以下内容が含まれる • What: 対象のフレーム • Why: 課題の背景およびグラフ • Where: Inspectモードでの確認 • フィードバックの提出 • 異常検知は機械学習をベースとしており、 フィードバックすることで CodeGuru Profiler の精度向上に繋がる 例: とある関数の実測時間が異常に長かった場合
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeGuru Profiler の特徴 • 既存のアプリケーションに対しても簡単にProfilerエージェントを起動することが可 能 • アプリケーションデータを継続的に収集し、柔軟なビジュアライゼーションを提供 • プロファイリングデータから、アクションを含むパフォーマンスを向上するためのレ コメンデーションを提供 • 過去のプロファイリングデータと乖離がある場合、機械学習をベースとした異常検知 をレポート • Profilerエージェントは最小限のフットプリントで、本番環境でアプリケーションを 継続的にプロファイルするよう設計されている
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru セキュリティ Amazon CodeGuru • Amazon CodeGuru により収集されたデータは Amazon S3 及び Amazon DynamoDB (Profiler の場合Amazon Kinesisも含む) に保管されておりサーバーサイド暗号化が行われている • データ転送には全てTLSを採用しており、全てのエンドポイントでは SHA-256 証明書が利用 されている Amazon CodeGuru Reviewer • CodeGuru Reviewer はリポジトリメタデータ、レコメンデーション、Pull Request メタデー タ、お客様フィードバックを保持するが、ソースコードは保持されない Amazon CodeGuru Profiler • CodeGuru Profilerはスタックトレースを定期的に収集し、CodeGuru Profiler バックエンドに 送信する。CodeGuru Profiler エージェントはパラメーターの名前や値、変数の値などのアプ リケーションデータへのアクセスはできない https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/security.html https://docs.aws.amazon.com/codeguru/latest/profiler-ug/security.html
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru サービスクォータ Amazon CodeGuru Reviewer AWS CodeCommit リポジトリにおけるリージョンごとの月間最大Pull Request数: 5,000 (デフォルト) Amazon CodeGuru Profiler リージョンごとの最大プロファイリンググループ数: 50 (デフォルト) https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/quotas.html https://docs.aws.amazon.com/codeguru/latest/profiler-ug/quotas.html
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CodeGuru 料金体系 継続的に評価いただくために90日間の無償期間を提供 Amazon CodeGuru Profiler • 0.005USD/サンプリング時間 • プロファイリンググループあたり 36,000 サンプリング時間が上限 • AWS Lambda では Payer アカウン トごとに500サンプリング時間が 無償利用枠 Amazon CodeGuru Reviewer • 0.75USD/100行のコード • Pull request 内に過去解析済みの ファイルが含まれる場合、差分の みが課金対象となる • コメントやインポート文などの非 コード行は課金対象外 2020年8月4日時点 東京リージョンの価格 https://aws.amazon.com/codeguru/pricing/
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • 背景 • Amazon CodeGuru とは • Amazon CodeGuru Reviewer • Amazon CodeGuru Profiler • セキュリティ • サービスクォータ • 料金体系 • まとめ
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ • Amazon CodeGuru はコードに欠陥がある部分やアプリケーションで最も実行コスト が高い箇所を特定し、改善方法含め推奨事項 (レコメンデーション) を生成する機械 学習をベースとした開発者向けのサービス • Amazon CodeGuru Reviewer は現状 AWS CodeCommit、GitHub、 GitHub Enterprise Cloud、GitHub Enterprise Server、Bitbucket に対応しており、Pull Request をトリガーに Java ソースコードに対しレコメンデーションを生成する • Amazon CodeGuru Profiler は Profiler エージェントによって継続的に JVM ランタイ ムのデータを収集し、リッチなビジュアライゼーションを提供し、パフォーマンス改 善に役立つレコメンデーションや異常検知をレポートする • お客様のフィードバックを基にモデルを継続的に改善している • 90日の無償期間を提供
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. (2020/8/5追記) CodeGuru Reviewer がリポジトリ解析に 対応• Pull Request ベースの解析に加え、リポジトリの特定ブランチ に対するフルスキャンをサポート • 開始方法 • 対象のリポジトリを関連付ける • マネジメントコンソールから、Amazon CodeGuru > Code reviews にて Create repository analysis を選択 (CreateCodeReview API でも可能) • リポジトリを選択し、ブランチを指定する • レビュー結果はマネジメントコンソールの Code Reviewes 配下 あるいはAPIで確認できる • ユースケース • 既存のリポジトリに対し CodeGuru Reviewer を導入する際の評 価用途 • 定期的にフルスキャンを実施し、CodeGuru Reviewer で新たに 追加された検知領域に対するレコメンデーションがないかの確認 • 料金体系 • 本資料の「料金体系」で紹介している Pull Request ベースの料 金体系とは異なる • 毎月最初の1,500,000行に対して 0.50USD/100行のコード • 毎月1,500,000行を超えた分に対し 0.40USD/100行のコード
  • 61. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Q&A お答えできなかったご質問については AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて 後日掲載します。
  • 62. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS の日本語資料の場所「AWS 資料」で検索 https://amzn.to/JPArchive
  • 63. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. で[検索]AWS イベント 毎週”W-A個別技術相談会”を実施中 • AWSのソリューションアーキテクト(SA)に 対策などを相談することも可能 • 申込みはイベント告知サイトから (https://aws.amazon.com/jp/about-aws/events/) AWS Well-Architected 個別技術相談会
  • 64. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive ご視聴ありがとうございました