😮‍💨

GAされたAmazon CodeWhispererを試してみる

2023/04/16に公開

概要

「Amazon re:MARS 2022[1]」で発表されプレビュー版だったAmazon CodeWhispererが一般公開[2]されました。
プレビュー版の時から気になってはいましたが、触らないままGAされましたので、興味があるうちに使ってみて感想を述べていきたいと思います。

CodeWhispererについて

https://aws.amazon.com/jp/codewhisperer/

CodeWhispererはコーディング時にAIによるオートコンプリート機能を提供したコード自動生成サービスになります。(分かりやすくいうとAWS版GitHub Copilotになります)
GAされましたが使えるリージョンは今のところバージニアリージョンのみのようです。

ただCodeWhispererはVS CodeやJetBrainsでも使えるのであまりリージョンのことは気にする必要はないかと思います。そのほかLambda関数やCloud9上でもCodeWhispererを有効化できます。

価格について

プレビュー版の時は無料で利用できたみたいですが、GAされたことで料金体系が正式に決まりました。
現在2つのプランが提供されており、個人プランとプロフェッショナルプランになります。
https://aws.amazon.com/jp/codewhisperer/pricing/

個人プランでしたら無料で利用できます。プロフェッショナルプランは1ユーザーあたり$19/月になります。

個人プランとプロフェッショナルプランの違い

基本的な機能に大きな違いはありません。細かいところではコードセキュリティスキャンの実行回数制限やログイン方法、AWS Organization配下のポリシー管理ができるかどうかになります。

プラン 個人 プロフェッショナル
料金 無料 $19/月
ログイン方法 Builder ID IAM Identity Center
対応言語 すべて すべて
コードセキュリティスキャン 1ユーザー50回/月 1ユーザー500回/月
組織によるライセンス管理 不可 可能
組織による方針管理 不可 可能

個人プランでも今後のアップデートでIAM Identity Centerによるログインは予定されているみたいです。

In the future, it will be possible for an individual developer to become a professional developer, by connecting their Builder ID credentials with IAM Identity Center credentials from their employer.
訳:将来的には、開発者個人がBuilder IDのクレデンシャルと雇用主のIAM Identity Centerのクレデンシャルを結びつけることで、プロの開発者になることができるようになります。

https://docs.aws.amazon.com/codewhisperer/latest/userguide/user-types.html

GitHub Copilotと異なり、コード生成される言語は2023年4月時点で数が決まっているみたいで以下の言語がサポートされています。

  • Python
  • Java
  • JavaScript
  • TypeScript
  • C#
  • Rust
  • Go
  • Ruby
  • Scala
  • Kotlin
  • PHP
  • C
  • C++
  • Shell Script
  • SQL

とは言えプレビュー版の時は、Python、Java、JavaScript、TypeScript、C#の5つのみでしたのでGAされて大幅に増えたのは嬉しいです。

VS Codeへの導入

VS Codeに導入してみます。ローカルのIDEにCodeWhispererを導入する場合AWSアカウントは必要でありません。個人プランではAWS Builder IDを利用しますので事前に作成しておきます。
詳しい手順についてはドキュメントをご覧ください。
https://docs.aws.amazon.com/codewhisperer/latest/userguide/whisper-setup-indv-devs.html

VS CodeをAWS Builderと紐づけましたら利用可能になります。

コード生成

試しにEC2インスタンスを作成するAWS CDK(TypeScript)を生成してみました。
最初のコメント部分が私が書いた日本語です。改行した後CodeWhispererが動いて次々とコードを生成してくれます。ただバージニアリージョンのせいかわかりませんが、動作がもっさりしていてコード生成も一行ずつの出力で毎回改行Enterを押していたのでGitHub Copilotほど爽快感のあるコード生成体験はできませんでした。

もう少し速く出力したい

Lambdaで実装

VS CodeだともっさりしていたのでLambdaではどうなのか試してみました。
2023年4月時点でバージニアリージョンのLambdaのみとなっています。またPythonとNode.jsのランタイムを使用する関数のみをサポートしています。
LambdaでCodeWhispererを実装する場合、Lambdaの実行ロールにCodeWhispererの権限を付与する必要があります。

CodeWhispererポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "codewhisperer:GenerateRecommendations",
            "Resource": "*"
        }
    ]
}

LambdaのToolsタブをクリックするとCodeWhispererの有効化を選択できます。

どうやらalt+cボタンを押すことでコード生成してくれますが自動では生成してくれないようです。

コメントアウトされてる…

出力速度自体はVS Codeよりかは速いような気もしますが、一行ずつ出力することに変わりはなくやはりもっさりとした印象は否めませんでした。

所感

GAされたばかりのCodeWhispererを試してみました。個人利用は無料で使えること、AWSアカウントがなくても個人のIDEで利用できることなど便利な要素もありますが、まだGitHub Copilotほど便利な面は感じませんでした。
バージニアリージョンのみでしたので今後東京リージョンでも使えるようになれば速くなれるのでしょうか🤔

AWS製ですしCDKやSDK関連のコードならGitHub Copilotよりも優秀だったら嬉しいという今後の発展に期待します。

参考文献

https://docs.aws.amazon.com/codewhisperer/latest/userguide/what-is-cwspr.html
https://dev.classmethod.jp/articles/amazon-codewhisperer-ga/
https://dev.classmethod.jp/articles/aws-repost-builder-id/

脚注
  1. https://remars.amazonevents.com/ ↩︎

  2. https://aws.amazon.com/jp/about-aws/whats-new/2023/04/amazon-codewhisperer-generally-available/ ↩︎

  3. https://dev.classmethod.jp/articles/amazon-codewhisperer-ga/ ↩︎

  4. https://docs.aws.amazon.com/signin/latest/userguide/sign-in-aws_builder_id.html ↩︎

  5. https://codecatalyst.aws/explore ↩︎

  6. https://repost.aws/ja ↩︎

GitHubで編集を提案

Discussion