土曜日, 6月 28, 2025
土曜日, 6月 28, 2025
- Advertisment -
ホームニューステックニュース【AWS】なんでも効率化!Community Builderが伝えるAWS Developer Toolsの魅力【DevTools】 #AmazonQ

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



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

2025年にAWS Community Builders に選出いただいてから、DevToolsの魅力をもっと多くの人に知ってもらいたいと思い、アウトプットを続けています。
今回の記事ではシステム構築に関する各工程で使われる代表的なDevToolsを各工程ごとに紹介しています。

AWS Summit Japan 2025のCommunityStageで登壇しました

このブログ記事と同様の内容をAWS Summit Japan 2025のCommunityStage 1日目で登壇させていただきました
その時の資料のリンクも掲載しておきます。
とても貴重な機会を与えていただいたAWS様にここでも感謝を述べさせていただきます。

↓ AWS Summit Japan 2025 AWS ユーザー コミュニティ – Community Stage で登壇しました
image.png

AWS製品説明ページ

AWS製品説明のページではこのように説明されています。
・構築、テスト、およびデプロイなど開発にかかわる作業をより迅速かつ効果的に行うことができるようにするもの
・セキュリティや速度、コード品質などを向上させるために使われるもの

↓ AWSの製品説明ページ

システムの開発の流れを表すものとしてソフトウェア開発ライフサイクル(SDLC)というものがあります。ソフトウェアの開発プロセスを計画、設計、実装、テスト、デプロイ、運用などのステップに分けたもので、そのそれぞれでのステップで様々なDevToolsを利用することができます。
必ずしもすべてのツールを使う必要はありませんが、
目的に合ったツールを適切なタイミングで使うことで、その作業は効率化することができます

↓ SDLCの各フェーズとDevTools
image.png

IaCツール

IaCツールによってインフラ構成をコード管理することができます。IaCツールにより各リソースのコンソール画面を開いて定義内容を管理する負担が減り、インフラ構成の設定を一覧で確認することができます。また、コード管理されるため変更履歴の管理が容易になります。

AWS Infrastructure Composer (IaCツール)

AWS Infrastructure Composerを利用することでインフラ構成をGUIで定義することが可能です。AWSサービスが定義されたカードをGUIのキャンバス上に配置し、カード同士を紐づけ、カードの詳細を設定することで、その内容をIaCコードに書き起こしてくれます。

AWS CloudFormation (IaCツール)

AWS CloudFormationを利用することでリソースの設定を詳細に定義することが可能です。AWS CDKのように抽象化されないので、定義項目が冗長になってしまう問題がありますが、抽象化されていない分、目的に合ったリソース定義が可能です。また、CloudFormationGuardやRainなどの関連ツールも充実しています。

AWS CDK (IaCツール)

AWS CDKを利用することでL2コンストラクタなどの抽象化された定義により、より少ないコードで効率的にリソース定義が可能です。

↓ 各IaCツールのイメージ図
image.png

Amazon Q Developer によるコード開発

Amazon Q Developer を利用することで自然言語でAmazon Q Developerに依頼を出すだけでコード生成が可能です。AIによるコード生成時にはチームの独自ルールに従ったコード生成ができるか不安になるものですが、ルールを記載した資料を準備し、それを元にコード生成するように依頼を出すことにより、そのルールに従ったコード生成が可能になります。
以下のキャプチャ画像の例では、CDKコンストラクトデザインガイドラインをdocsフォルダに配置して、それを元にAmazon Q Developerに新しいL2コンストラクトの作成を依頼をしました。その結果、実装したガイドラインの準拠要素の説明文とともに、ガイドラインに準拠した新しいL2コンストラクトのコードが生成されました。

↓ Amazon Q Developer によるCDKコンストラクトデザインガイドラインを参照した新しいL2コンストラクトの作成
image.png

Amazon Q Developer in GitHubでノーコード開発

Amazon Q Developer in GitHubでは、GitHub上でAmazon Q Developer と対話しながらノーコードでシステム構築や課題対応が可能です。GitHub上でAmazon Q Developer が担当するissuesを説明文をつけて作成することで、Amazon Q Developer が説明文に従って開発を行い、セルフレビューしプルリクエストを作成してくれます。
人間が行う作業はAmazon Q Developer が作成したプルリクエストを確認し、問題があればAmazon Q Developerに対してレビューコメントを登録して修正を依頼します。レビューコメントが入ると、Amazon Q Developer が再び成果物の修正を行います。

↓Amazon Q Developer による開発のイメージ
image.png

AWS CloudFormation Guard でPoC

ポリシーをコード化するPolicy as Code(PaC) を実現するCloudFormation Guard(Cfn-guard)を利用することで、作成したCloudFormationテンプレートがチームの独自ルールに従っているかを短時間で検証することが可能です。以下のキャプチャ画像の例ではLambdaのタイムアウト設定やメモリ設定、ランタイムの設定を定義したポリシーコードを準備してデプロイ前のチェックを行う例を示しています。

↓ Cfn-guard利用の例
image.png

Amazon Q Developer (/test)

IaCコードの単体テストコードを作成する場合、Amazon Q Developer のチャット欄に /test と入力するだけで、Amazon Q Developer が成果物をスキャンして、それらに対応したテストコードを生成してくれます。
AIによるテストコード生成は人間の負担を減らしてくれますが、AIによって生成されたコードに加えて人間の経験や知識からくる観点を加えることでさらに質が良いテストを実現できるはずです。

↓ Amazon Q Developer (IDE) によるテストコード生成のイメージ
image.png

Amazon Q Developer (/review)

成果物のレビューに関しても、Amazon Q Developer のチャット欄に /review と入力するだけでレビューが可能です。以下のキャプチャ画像の例ではAWS Lambda 関数でエラーハンドリングの実装がないことのレビュー指摘がされています。
AIによるレビューもテストと同じく、AIによって生成されたレビュー内容に加えて人間の経験や知識からくる観点を加えることでさらに質が良いレビューを実現できるはずです。

↓ Amazon Q Developer (IDE) によるレビューのイメージ
image.png

AWS CodePipeline

デプロイに関する工程はプログラムをアップロードするだけではなく、変更内容の確認からデプロイの承認、デプロイ後の異常監視、異常発生時の戻し作業など様々なものがあります。AWS CodePipeline を利用することで人の作業負荷を軽減してくれます。
以下のキャプチャ画像の例ではデプロイ工程の例として、開発者が改修内容をIaCコードをアップロードし、Cloud Formation の変更セットを作成し、変更セットができたことを責任者に通知し、責任者がデプロイを承認することでデプロイを実行する工程を表しています。これらの工程をAWS CodePipeline を利用することで人が行う作業を、開発者がIaCコードをアップロードする作業と責任者が承認を行う作業だけにすることができます。

↓ AWS CodePipeline の利用例
image.png

AWS CodeDeploy

デプロイ作業はデプロイ実行までで完了ではありません。デプロイ実行後にエラーなどの問題発生に備えて、新バージョンにアクセスする人を一時的に制限したり、一定時間問題が発生しないかを監視し、問題が発生した際には元の安定したバージョンに戻す作業が必要になります。AWS CodeDeploy を利用することでこれらの作業を自動化することができます。
以下のキャプチャの例ではAWS Lambda の改修版をデプロイする際にトラフィックの10%のみを新バージョンにアクセスさせています。これは新バージョンで問題が発生した際に影響範囲をごく一部に制限することができます。また、事前に設定した期間、事前に設定した件数分のエラーが発生したらアラームを出すように設定し、アラームが出たら元のバージョンに戻し、アラームが出なければ新バージョンにすべてのトラフィックを流すことができます。これにより、問題発生時の素早い戻し作業が可能になります。

↓ AWS CodeDeploy の利用例
image.png

Amazon Q Developer による運用調査

運用監視を人が行う場合、ログを収集して問題がないかを調べ、問題があれば原因を分析して解決策を検討する作業が必要になり、多大な労力と作業者のスキルが必要になります。
CloudWatchのコンソールから利用できるAIオペレーションを利用することで、ログのインサイトやメトリクス、アラームをAmazon Q Developer がその内容を分析し、問題の発見と原因の仮説を報告してくれます。
これにより、人が行う必要のある作業の負荷を軽減することが可能になります。
以下のキャプチャ画像の例ではサンプルの内容を示しています。

↓ AIオペレーションの画面
image.png

↓ AIオペレーションによる監査結果
image.png

↓ AIオペレーションによる仮説(根本原因の報告)
image.png

Amazon Q Developer によるドキュメント自動生成

Amazon Q Developer のチャット欄で /doc と入力することで、すでに作成された成果物からREADMEファイルを生成できます。
READMEファイルは文章によるプロジェクト説明やデプロイ方法の説明だけではなく、データフローや構成図なども記載されている充実した内容になっています。

↓ Amazon Q Developer (IDE) でのドキュメント生成のイメージ
image.png

READMEファイルの構成図はAWSサービスアイコンがなく直感的にわかりにくいものになっていますが、MCPサーバーを利用することでAWSサービスアイコンを使用したアーキテクチャ図を生成することが可能です。Amazon Q Developerにアーキテクチャ図を作成するMCPサーバーである aws diagram mcp server を利用してアーキテクチャ図を作るように依頼すると、AWSサービスアイコンを使用した直感的でわかりやすいアーキテクチャ図が生成できます。

↓ aws diagram mcp server を利用したアーキテクチャ図作成
image.png

DevToolsは種類が多く、必ずしもすべてを利用する必要はありません。どのように活かすか、どのように組み合わせるかは利用者の工夫次第です。プロジェクトの特性や工程、チームの特性に合わせて適切なツールを選択してください。
DevToolsは日々進化しており、新しいツールも登場しています。これまでの作業の進め方にこだわらずに、たまには改善できる内容がないかを振り返ってみてほしいです。
この記事で皆さんが少しでもDevToolsに興味をもち、魅力を感じていただければ嬉しいです。もっと多くの使い方や工夫の仕方、学び方を知りたい方は他のエンジニアのアウトプットを見たりしてAWS Communityの世界に触れてみてください。

資料リンク再掲

英語版記事も投稿しました
https://dev.to/aws-builders/aws-efficiency-in-everything-community-builder-shares-the-appeal-of-aws-developer-tools-m7j





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -