Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なんでも効率化!Community Builderが伝える AWS Developer Too...

Avatar for NaoyaYamamoto NaoyaYamamoto
June 26, 2025
34

なんでも効率化!Community Builderが伝える AWS Developer Toolsの魅力

AWS Summit JAPAN
2025
2025年6月25日 (水)

Avatar for NaoyaYamamoto

NaoyaYamamoto

June 26, 2025
Tweet

Transcript

  1. 名前:山本 直弥 (Nao) 所属:株式会社シーイーシー 在住:名古屋、出身:京都 2025 AWS Community Builder (DevTools)

    2025 JAWS-UG 名古屋 2025 Japan AWS Top Engineer 2023-2025 Japan AWS All Certifications Engineer 今日のテーマ 「なんでも効率化!Community Builderが伝える AWS Developer Toolsの魅力」 ※Xのアイコン 自己紹介 ※XのQR 2
  2. Developer Tools ( DevTools ) とは 4 CBsのカテゴリ https://aws.amazon.com/jp/developer/community/ community-builders/community-builders-directory

    AWS 製品説明(デベロッパー用ツール)https://aws.amazon.com/jp/products/developer-tools/ AWSドキュメントでのDevToolsの代表例 https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws- overview/developer-tools.html 最新のアイコンの色は紫色 https://aws.amazon.com/jp/architecture/icons/ DevToolsがない状態から… ・~をより効果的にする ・~をより向上させる ↓ より良い状態にするイメージ Amazon Q Developer
  3. ソフトウェア開発ライフサイクル ( SDLC ) で使う DevToolsの例 AWS X-Ray AWS Fault

    Injection Service AWS CLI AWS Tools and SDKs 計画/設計 実装 運用/監視 デプロイ DevToolsの活躍の場は実装だけにあらず 目的に合ったツールを適切なタイミングで使うことで作業を効率化する テスト/レビュー どこでツールを使うかは、あなた次第 6 AWS CDK AWS Infrastructure Composer AWS CloudFormation Amazon Q Developer AWS CodeDeploy AWS CodeBuild AWS CodePipeline
  4. <あるとき> 実装:Infrastructure as Code ( IaC ) ツールとAIで効率化 AWS CDK

    AWS Infrastructure Composer AWS CloudFormation 運用/監視 計画/設計 実装 テスト/レビュー デプロイ Amazon Q Developer <ないとき> リソースごとに管理画面を 開いて開発、改修 (設定を一覧で確認できない) コードをすべてを 手書きで実装 (不要な時間がかかる) 実装ルールを作っても 必ず守れる保証がない (実装前にルールの読み込みが必要) インフラ構成をコードで 一括管理 変更履歴も追える 大部分のコードを 自動で生成 自動でベストプラクティスや ルールを反映 8
  5. 効率化例:IaCツールで構成定義 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 9 import * as

    cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; import * as apigateway from 'aws-cdk-lib/aws-apigateway'; export class CdkHelloWorldStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Lambda関数を定義 const myLambda = new lambda.Function(this, 'TESTMyLambdaFunction', { runtime: lambda.Runtime.NODEJS_20_X, code: lambda.Code.fromAsset('lambda'), handler: 'index.handler', }); // API Gateway を定義 const api = new apigateway.LambdaRestApi(this, 'MyApiGateway', { handler: myLambda, proxy: false, }); // メソッドを設定 const items = api.root.addResource('items'); items.addMethod('GET'); // GET /items items.addMethod('POST'); // POST /items } } const app = new cdk.App(); new CdkHelloWorldStack(app, 'CdkHelloWorldStack'); "Resources": { "TESTMyLambdaFunctionServiceRole6FF4D431": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" } } ], "Version": "2012-10-17" }, "ManagedPolicyArns": [ { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" ] ] } ] }, "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/TESTMyLambdaFunction/ServiceRole/Resource" } }, "TESTMyLambdaFunction8E16014C": { "Type": "AWS::Lambda::Function", "Properties": { "Code": { "S3Bucket": "cdk-hnb659fds-assets-111111111111-ap-northeast-1", "S3Key": "fe7e1908d59e783c3f2793117673f2e93c85f0ce91cd99bed0239de3d41e8d3b.zip" }, "Handler": "index.handler", "Role": { "Fn::GetAtt": [ "TESTMyLambdaFunctionServiceRole6FF4D431", "Arn" ] }, "Runtime": "nodejs20.x" }, "DependsOn": [ "TESTMyLambdaFunctionServiceRole6FF4D431" ], "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/TESTMyLambdaFunction/Resource", "aws:asset:path": "asset.fe7e1908d59e783c3f2793117673f2e93c85f0ce91cd99bed0239de3d41e8d3b", "aws:asset:is-bundled": false, "aws:asset:property": "Code" } }, "MyApiGateway04A753E5": { "Type": "AWS::ApiGateway::RestApi", "Properties": { "Name": "MyApiGateway" }, "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/MyApiGateway/Resource" } }, "MyApiGatewayDeployment44AAC0313efdafc08b1d170892a3a89794c0f77f": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "Automatically created by the RestApi construct", "RestApiId": { "Ref": "MyApiGateway04A753E5" } }, "DependsOn": [ "MyApiGatewayitemsGETBDFA38EE", "MyApiGatewayitemsPOST3EB9C420", "MyApiGatewayitemsAC8CBE57" ], "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/MyApiGateway/Deployment/Resource" } }, "MyApiGatewayDeploymentStageprodEBC77C1B": { "Type": "AWS::ApiGateway::Stage", "Properties": { "DeploymentId": { "Ref": "MyApiGatewayDeployment44AAC0313efdafc08b1d170892a3a89794c0f77f" }, "RestApiId": { "Ref": "MyApiGateway04A753E5" }, "StageName": "prod" }, "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/MyApiGateway/DeploymentStage.prod/Resource" } }, "MyApiGatewayitemsAC8CBE57": { "Type": "AWS::ApiGateway::Resource", "Properties": { "ParentId": { "Fn::GetAtt": [ "MyApiGateway04A753E5", "RootResourceId" ] }, "PathPart": "items", "RestApiId": { "Ref": "MyApiGateway04A753E5" } }, "Metadata": { "aws:cdk:path": "CdkHelloWorldStack/MyApiGateway/Default/items/Resource" } AWS CDK AWS Infrastructure Composer AWS CloudFormation GUI操作で構成定義 IaCコードを構成の詳細まで定義 (Cfn-guardなど関連ツール充実) L2コンストラクトにより抽象化された より短いコードで構成定義 IaCツールは用途やPJの特性によって選択できる }, "MyApiGatewayitemsGETApiPermissionCdkHelloWorldStackMyApiGateway18BBB2E7GETitemsAE87E112": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { "Fn::GetAtt": [ "TESTMyLambdaFunction8E16014C", "Arn" ] }, "Principal": "apigateway.amazonaws.com", "SourceArn": { "Fn::Join": [ "", [ "arn:aws:execute-api:ap-northeast-1:111111111111:", {
  6. 効率化例:開発者の独自ルール、要件に準じたコード生成が可能 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 10 docsフォルダを作る。 その中にルール資料を提供 ※この例ではCDKコンストラクトの

    デザインガイドライン Amazon Q Developerにルールに沿って L2コンストラクトを作るように依頼 注文通り、事前に提供したルールに 従ったコードが生成される AIと事前知識を共有できる。他にも応用できそう <活用例> • コーディング規約に従ったコード生成 • プロジェクト要件、設計要件に従った コードの生成 などなど
  7. 効率化例:Amazon Q Developer in GitHubでノーコード開発/修正 運用/監視 計画/設計 実装 テスト/レビュー デプロイ

    11 GitHubでAmazon Q Developerが担当する課題を作成 Amazon Q Developerが開発、レビュー、プルリク作成 Amazon Q Developerのプルリクを確認 Amazon Q Developerに修正依頼 Amazon Q Developer と対話しながら ノーコードで システム構築、 課題対応
  8. テスト/レビュー:自動テストとレビューで効率化 12 AWS CDK 運用/監視 計画/設計 実装 テスト/レビュー デプロイ Amazon

    Q Developer 12 <ないとき> <あるとき> テストを手動で実行 テストコードを手動で実装 (不要な時間がかかる) 改修のたびに 同じテスト、同じレビュー の作業を繰り返す (不要な時間がかかる) 人の経験や知識のみが頼りの のテストやレビューになる (検討漏れのリスクあり) 自動でテストコードを生成 テストを自動実行 確認項目をコードとして残せる いつでも、何度でも、短時間で テストが可能 人の経験と知識+AI生成 のテスト/レビューになり 検証漏れのリスク低減 12 AWS CloudFormation
  9. 効率化例:Policy as Code ( PaC )で独自ルールを順守する AWS CDK 運用/監視 計画/設計

    実装 テスト/レビュー デプロイ 13 AWS CloudFormation Template AWS CloudFormation Guard(Cfn-guard) • 独自ルールを定義してテンプレート定義の正しさを検証 • 意図せぬ設定でデプロイされることを防ぐ ポリシーチェック ポリシーコード 守るべき独自ポリシーを定義 ・タイムアウト設定は〇〇であること ・メモリは〇〇であること ・ランタイムは〇〇か△ △のいずれかであること などなど IaCによりPaCの活用も可能に! チェックOK チェックNG 修正 デプロイ
  10. 効率化例:テストコード生成の自動化 ( /test ) 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 14

    CDKコードなどを元にテストコード生成 チャット欄に /test とだけ入力 テストの実行方法、テスト観点が説明される テスト作成の負担がかなり楽に!※人の経験によるテスト観点も必要 テストの 説明 テストコード 生成 Amazon Q Developer
  11. 効率化例:コードレビューの自動化 ( /review ) 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 15

    チャット欄に /review とだけ入力 レビュー結果を問題の緊急度ごとに報告 問題発見の場所と詳細を説明してくれる ※画像はLambda関数でエラーハンドリングせよという指摘 人の時間を取らずにレビューができる!※人の経験によるレビュー観点も必要 Amazon Q Developer
  12. デプロイ:デプロイ運用の自動化で効率化 16 AWS CodeDeploy AWS CodeBuild AWS CodePipeline 運用/監視 計画/設計

    実装 テスト/レビュー デプロイ 16 16 <ないとき> <あるとき> デプロイにかかわる手順を 毎回、手動運用 (変更セット作成、承認依頼、デプロイなど) 新バージョンを一度に 全ユーザー向けにリリース (問題の影響範囲が大きい) デプロイ後のバグ発生時に 手動で修正、戻し作業 (すぐに戻せないリスクあり) あらかじめ設定した手順を 自動実行 新バージョンへのアクセスを 段階的に増やすなど デプロイ戦略が容易 あらかじめ設定した基準で 自動戻し 16
  13. 効率化例:デプロイ手順の自動化例 AWS CodePipeline 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 17 Slack

    改修内容 アップロード 変更セット 作成 変更内容確認 依頼通知 承認待ち デプロイ実行 デプロイ手順を 最初に戻す AWS Chatbot Change set Stack Template AWS CloudFormation 承認 否認 デプロイまでに必要な各手順を自動化 責任者 開発者 複雑な手順も自動で運用!人手作業削減
  14. 効率化例:デプロイ戦略の実現例 (例:カナリアデプロイ) AWS CodeDeploy 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 18

    AWS Lambda (旧バージョン) AWS Lambda (新バージョン) AWS Lambda (新バージョン) AWS Lambda (旧バージョン) Amazon CloudWatch Alarm ごく少数のユーザのみに 新バージョンを公開 新バージョンにエラーがあれば 旧バージョンに戻す 新バージョンにエラーがなければ 全ユーザを新バージョンにアクセスさせる 〇分間に〇件エラーが出たら アラームを出す 新旧バージョンのトラフィックの割り当てと 切り戻しの基準を管理する ★問題発生時の影響を最小限にする トラフィック移行、モニタリング、ロールバックを自動化!
  15. 運用/監視:問題の分析や解決を効率化 19 AWS X-Ray 運用/監視 計画/設計 実装 テスト/レビュー デプロイ Amazon

    Q Developer 19 19 19 19 <ないとき> <あるとき> 自力で問題を分析する (人のスキルに依存する) 自力でリソースの設定を調べて 問題の解決方法を調べる (人のスキルに依存する) 自動でログを集めて 問題を発見してもらう 問題を分析してもらう 問題の解決方法を 提案してもらう 自力でログを集めて 問題を見つける (問題に気付かない可能性あり) 19
  16. 効率化例:Amazon Q Developer による運用調査 21 Amazon Q Developer 実装 テスト/レビュー

    デプロイ 運用/監視 計画/設計 発見された問題の詳細な説明 監察結果 Lambda関数がDynamoDBに対して複数の呼び出しを行っており、これらの呼び出しにかなりの 時間がかかっているようです(PutItem操作の場合は6000ミリ秒)。関数自体は失敗していません が、これらのリクエストの実行時間が異常に長いため、DynamoDBでスロットリングまた はパフォーマンスの問題が発生している可能性があります。
  17. 効率化例:Amazon Q Developer による運用調査 22 Amazon Q Developer 実装 テスト/レビュー

    デプロイ 運用/監視 計画/設計 発見された問題の原因に関する仮説の説明 仮説 DynamoDB テーブル DynamoStack-DDBTable-VisitRegistrations で実行エラーが発生し ています。このエラーは呼び出しフェーズで継続的に発生し、VisitTraffic に起因してい ます。この問題により「Book Visit Availability(訪問の空き状況を予約)」アラームがト リガーされ、2024年11月7日 14時55分頃、関連メトリクスがしきい値 99 を超えた際に 「ALARM」状態になりました。根本原因は、Lambda 関数のデプロイメン トにおける DynamoDB-ThrottleCount の設定ミスである可能性が 高く、これが関数の正常な実行に影響を与えています。
  18. 計画/設計:ドキュメントの自動生成で資料更新を効率化 23 運用/監視 計画/設計 実装 テスト/レビュー デプロイ 23 23 23

    <ないとき> <あるとき> 設計書などドキュメントを 手作業で作成 (時間がかかる、メンテナンスが大変) Amazon Q Developer 23 集めた情報と自分の知識を使って 要件の整理、構造化 (時間がかかる、検討漏れが心配) 情報の整理と構造化の自動化 要件の検討漏れチェック ドキュメント作成を自動化
  19. 効率化例:ドキュメントの自動生成 ( /doc ) 24 Amazon Q Developer チャット欄に /doc

    とだけ入力 成果物をスキャンしてREADMEを生成する データフローや構成図などを含むREADMEが生成される 実装からドキュメント生成が短時間で実現! 運用/監視 計画/設計 実装 テスト/レビュー デプロイ データフロー 構成図 その他 ・プロジェクト概要 ・リポジトリ構成 ・デプロイ方法 など
  20. 効率化例:Amazon Q DeveloperからMCP利用で図をもっと直感的に 25 ツールを組み合わせると、できることが増える! /doc で出力された構成図 AWS Diagram MCP

    Server を利用して出力された構成図 MCPサーバー(ツール)を利用した アーキテクチャ図作成依頼 サービスアイコンあり 直感的でわかりやすい Amazon Q Developer 運用/監視 計画/設計 実装 テスト/レビュー デプロイ MCP Amazon Q Developer サービスアイコンなし 直感的にわかりにくい
  21. 補足:他の AWS MCP サーバーの例 26 使い方はいろいろ。まずは何があるか知ることが大切。 運用/監視 計画/設計 実装 テスト/レビュー

    デプロイ MCP 特徴 AWS Documentation MCP Server この MCP サーバーは、AWS ドキュメントにアクセスし、コンテンツを検索し、推奨 事項を取得するためのツールを提供する Cost Analysis MCP Server AWS サービスのコスト見積もりを事前に生成し、コストに関する洞察を提供する MCP サーバー Amazon Bedrock Knowledge Base Retrieval MCP Server Amazon Bedrock ナレッジベースにアクセスするための MCP サーバー AWS CDK MCP Server AWS クラウド開発キット (CDK) のベストプラクティス、コードパターンとしてのイン フラストラクチャ、CDK Nag によるセキュリティコンプライアンスのための MCP サーバー AWS Serverless MCP Server サーバーレスパターン、ベストプラクティス、AWS サービスに関する包括的な知識を 備えた AI コーディングアシスタントを提供する CloudFormation MCP Server AWS Cloud Control API と、IaCのベストプラクティスを備えた Iac Generator を使用 して、LLM が自然言語で 1,100 を超える AWS リソースを直接作成および管理できる ようにする Git Repo Research MCP Server このMCPサーバーを利用することで、開発者は外部Gitリポジトリを調査し、ローカル プロジェクトにリポジトリをクローンすることなく、コード生成に影響を与えることが できる AWS MCP Servers:https://awslabs.github.io/mcp/ MCP