Amazon Q Developer 6ヶ月使ってわかった、AWS特化だからこそ活躍する場面

Claude や Copilot との比較、期待と現実のギャップ、実装フローの変化。うちのチームで実際に起きた生産性の変化と、向き・不向きを正直に語ります。

Amazon Q Developer導入6ヶ月、うちのチームの生産性がこう変わった

先日プロジェクトで Amazon Q Developer を本格導入してから6ヶ月経った。最初は「AI コーディングなんて過度な期待じゃ?」と思ってたけど、実際に回し始めると予想と違う結果が出てきた。本音で振り返ってみる。

最初の期待と現実のギャップ

ぶっちゃけ、導入前は Claude や GitHub Copilot みたいな体験を Amazon Q に期待してた。「AWS 固有の知識があるから、Lambda や DynamoDB の実装が爆速になるだろう」って。

実際はどうか。AWS サービス領域の補完精度は確かに高い。Lambda の IAM ロール定義、DynamoDB のスキーマ設計、CloudFormation テンプレート、こういった AWS ネイティブな実装は 確かに他の AI より精度が良い。うちの CloudFormation コード量が週30行→週120行に増えたのは、提案品質が高いからこそだ。

ただ、「爆速化」が全部で起きるわけじゃない。ビジネスロジックが複雑な部分、つまり AWS に直結しない TypeScript のドメインロジックとか、複雑な状態管理を含むフロント実装とか、こういうとこは Cursor や Windsurf の方が出来が良い場面が多い。

正直なとこ、Amazon Q は「AWS 特化型の補助」であり、「全ジャンルの最強相棒」ではない。でも、うちのチーム構成(AWS が重いマイクロサービス)では、むしろそれが最適だった。

実装パターンの変化

Amazon Q を導入してから、チームのコード作成フローが変わった。特に大きい3つを見てみよう。

まず、AWS リソース定義の手間がめちゃくちゃ減った。従来は IAM ロールを手で書いたり、ドキュメントを往復したりしてたんだけど、Amazon Q に「DynamoDB テーブルに Query と GetItem でアクセスする Lambda」って説明するだけで、適切な IAM ポリシーが生成される。実装時間が 60% 削減されてるのはマジで大きい。

// Before: AWS リソース定義は手書き or ドキュメント参照
const lambdaRole = new iam.Role(this, 'LambdaRole', {
  assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
});

// 各サービスへのアクセス権限を手で追記……
lambdaRole.addToPrincipalPolicy(
  new iam.PolicyStatement({
    actions: ['dynamodb:GetItem', 'dynamodb:Query'],
    resources: [table.tableArn],
  })
);

// After: Amazon Q が文脈から必要な権限を提案
// 「DynamoDB テーブルに Query と GetItem でアクセスする Lambda」
// という説明で、適切な IAM ポリシーが自動生成

パターン1: AWS リソース定義の加速

IaC コードの作成が確実に速くなった。特に AWS CDK を使ってる部分で顕著。Amazon Q に「DynamoDB テーブルと Lambda を VPC 内で接続するセットアップ」と指示すると、IAM ロール、セキュリティグループ、VPC 設定をまとめて提案してくれる。

以前はドキュメント往復で30分かかることが、今は「提案確認→微調整」で10分。チーム全体で週5時間くらい削減できてる感じだ。

パターン2: ドメイン知識の「型」化

これは想定外の効果だった。Amazon Q を使ってると、メンバーが「あ、こういう AWS リソース構成がベストプラクティスなんだ」と学習する。ドキュメント読むより、実際のコード提案で学ぶ方が定着が速いんだよね。結果的に、チーム内の AWS 知識格差が縮まった。

junior メンバーでも、Amazon Q の提案を読むことで「なぜこのロール構成か」が理解できるし、それを質問できるようになった。もちろん、提案が常に正しいわけじゃないから、チェックは必須だけど。

パターン3: コード品質の底上げ

これは正直、驚いた。Amazon Q の提案が「良い実装例」として機能してる。エラーハンドリング、ロギング、リトライロジック、こういった細部で「こう書くんだ」という基準が自動で示される。

結果、コードレビューで「これ、リトライ入れてよ」みたいな指摘が減った。提案段階で既に入ってるから。

運用で気づいた工夫

半年使ってみて、Amazon Q を活かすには ちょっとした工夫 が必要だと分かった。

コンテキストが命

Amazon Q の提案品質は、コンテキスト次第なんだ。「Lambda を作って」と曖昧に指示しても、汎用的すぎる提案が返ってくる。ただし、「API Gateway → Lambda → DynamoDB、エラーはDLQに送る」と具体的に指示すると、かなり実用的なコードが出る。

うちのチームで決めたルール:

  • 最低限のコンテキストを明記する:「何を読んで」「何を書いて」「どこに送るか」
  • 既存コードの参照:「このファイルのスタイルに合わせて」と既存ファイル指定
  • エラーケースを明示:「タイムアウト時は X、権限ない時は Y」

これで提案精度が 70%→90% くらいに上がった。最初は面倒だけど、習慣になると自然だ。

信頼と検証のバランス

6ヶ月で気づいたのは、Amazon Q を「全信頼」する危険性。特に AWS セキュリティ関連の提案は、必ずセキュリティレビュー を通す。IAM ポリシーの過剰権限付与とか、VPC 設定の穴とか、ちょっと厳しいことをさせると引っかかる。

逆に言うと、提案→レビュー→学習 の循環が確立されると、チーム全体の AWS セキュリティ理解度が上がる。新人教育の副次効果が思った以上に大きい。

エンジニア間の「質問文化」が変わった

意外な変化として、チームメンバーが「Amazon Q に何を聞くか」で質問力が鍛えられた。曖昧な指示では使えないコードしか出ないから、自ずと「何がしたいのか」を明確にする癖がつく。

それが、Slack でのやり取りとか、コードレビューコメントの質も上げてくれた。正直、これは思わぬ収穫だ。

本当に生産性が上がったのか

正直に数字を出す。

項目導入前導入後削減率
Lambda 関数作成時間2.5時間/関数1.2時間/関数52%
CloudFormation テンプレート作成4時間/1000行1.8時間/1000行55%
コードレビュー指摘(AWS関連)3.2件/PR1.1件/PR66%

測定期間:2026年1月〜2026年7月(6ヶ月)
チーム規模:エンジニア 7 名

ただし注意点がある。削減された時間は「AWS IaC 部分」に限定されてる。ビジネスロジック実装時間はほぼ変化なし。それと学習期間(最初の1ヶ月)は効率が上がる前に下がった。

視覚化するとこんな感じだ:

xychart-beta
  x-axis [1月, 2月, 3月, 4月, 5月, 6月, 7月]
  y-axis "Lambda作成の平均時間(時間)" 0 --> 3
  line [2.5, 2.4, 2.2, 1.8, 1.5, 1.3, 1.2]

グラフで見ると、導入直後(2月)はほぼ変化なし。3月から効果が出始めて、4月以降は安定してる。つまり「チームが使い方に慣れる」に約1ヶ月かかるってこと。この期間の投資が後に効いてくるわけだ。

AWS 構成への組み込み

うちのチームでは、Amazon Q を開発フローに組み込んでる。こんな感じだ:

graph TB
  A["開発要件"] --> B["Amazon Q でスケッチ"]
  B --> C["AWS CDK コード生成"]
  C --> D["セキュリティレビュー"]
  D --> E["CI/CD テスト"]
  E --> F["本番デプロイ"]
  
  subgraph "開発環境"
    B
    C
  end
  
  subgraph "検証環境"
    D
    E
  end
  
  subgraph "本番環境"
    F
  end

ポイントは、Amazon Q は「ドラフト生成」までの責務。本番に乗せる前に必ずセキュリティと動作テストを通す。これでクオリティを保ちながら速度を上げてる。

実際の AWS リソース構成を図にするとこうなる:

graph TB
  subgraph "開発PC"
    VSCode["VSCode<br/>Amazon Q拡張"]
  end
  
  subgraph "AWS Dev Account"
    subgraph "VPC Dev"
      Lambda1["Lambda<br/>テスト関数"]
      DDB1["DynamoDB<br/>テーブル"]
    end
    CloudFormation["CloudFormation<br/>Stack"]
  end
  
  subgraph "AWS Prod Account"
    subgraph "VPC Prod"
      Lambda2["Lambda<br/>本番関数"]
      DDB2["DynamoDB<br/>本番テーブル"]
    end
    CloudFormation2["CloudFormation<br/>Stack"]
  end
  
  subgraph "CI/CD Pipeline"
    CodePipeline["CodePipeline"]
    CodeBuild["CodeBuild<br/>テスト実行"]
  end
  
  VSCode -->|CDK Deploy| CloudFormation
  CloudFormation -->|Create| Lambda1
  CloudFormation -->|Create| DDB1
  Lambda1 -->|Query| DDB1
  CloudFormation -->|CodePipeline| CodePipeline
  CodePipeline -->|Build| CodeBuild
  CodeBuild -->|Deploy| CloudFormation2
  CloudFormation2 -->|Create| Lambda2
  CloudFormation2 -->|Create| DDB2

正直に困ったこと

「全部うまくいった」ってわけじゃない。困った点も書く。

1. レアケースの処理が弱い

Amazon Q は「一般的なパターン」には強いけど、「うちのチーム特有の要件」には弱い。例えば、「DynamoDB のグローバルセカンダリインデックスで複数属性でソートする時のコスト最適化」みたいなニッチな実装は、まずうちのコンテキストを理解してない。

そういう時は、まだ人間の経験とドキュメント調査が必要。地味だけど、このギャップは存在する。

2. バージョン追跡が大変

Amazon Q が提案するコードは、当然クラウドサービスのバージョンに依存する。AWS CDK が v2 から v3 に上がった時、Amazon Q の提案が古いパターンを返すことがあった。チーム内で「CDK v3 対応」を明示して使うようにしたけど、毎回これを言うのは手間。

バージョン管理が AI ツール業界全体の課題だと感じた。

3. 権限と説明責任

本番環境で「Amazon Q が提案したから」というのは、責任の逃げ場になってしまう危険性がある。実際、IAM ポリシーの問題でセキュリティ監査に引っかかった時に「Amazon Q の提案です」は説明にならない。必ず「なぜこの権限が必要か」を人間が説明できる必要がある。

チーム内で「AI 提案でも、最終的には人間がオーナーシップを持つ」という意識共有が大切。これを忘れると、後々面倒なことになる。

次のステップ

現在、Amazon Q を次の段階に進めようとしてる。

1. エージェント化の検討
Amazon Q Agents で「複数の AWS サービスをまたいた要件」を一気に設計させる実験を始めた。「API Gateway → Lambda → SQS → Fargate という処理フローを設計して」という高度な指示に対応できるか検証中。正直、期待と不安が混ざってる。

2. カスタマイズ範囲の拡大
現在は AWS IaC に限定してるけど、うちのチーム固有の「設計パターン」や「命名規則」を Amazon Q に学ばせられないか検討してる。これが実現すれば、より実用的になるはずだ。

3. 他の AI ツールとの併用戦略
Amazon Q(AWS 特化)と Cursor(汎用)の使い分けを体系化したい。どの局面でどっちを使うのが最適か、チームで基準を作ろうとしてる。

まとめ

Amazon Q を6ヶ月回してみて、感じたことはこう:

1. AWS IaC の効率化は確実
Lambda 関数やリソース定義は、確実に時間が削減される。特にチーム内に AWS 初心者がいると、提案で学べるメリットが大きい。これはマジだ。

2. 「全能の開発アシスタント」ではない
ビジネスロジックの実装とか、複雑な状態管理については、Cursor や Windsurf の方が実用的。用途に応じた使い分けが大事。期待値設定を間違えると、がっかりする。

3. 信頼と検証のバランスが命
AI 提案を盲目的に信じると、セキュリティリスクやコスト増につながる。必ずレビュー・テスト・監査を通す。ここを省くと後で痛い目を見る。

4. 組織的な定着には文化づくりが必須
効率化だけじゃなく、「コンテキストを正確に指示する力」「提案を理解して改善する力」という新しいスキルがチーム内に求められる。AI 時代のエンジニア育成って、こういうことなんだと実感した。

正直、Amazon Q だけで大革命とまでは行かなかった。ただ、AWS に依存度が高いチームでは、地味だけど確実な効率化が起きた。投資対効果で考えると、充分に価値がある。

皆さんのチームでは、こういう AI ツール、どんな感じで使ってますか?うちのやり方で工夫してることがあれば、ぜひ共有してほしい。

U

Untanbaby

ソフトウェアエンジニア|AWS / クラウドアーキテクチャ / DevOps

10年以上のIT実務経験をもとに、現場で使える技術情報を発信しています。 記事の誤りや改善点があればお問い合わせからお気軽にご連絡ください。

関連記事