APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【AP Tech Blog Week】Amazon CodeWhisperer を使ってコーディングしてみよう【生成AI】


本記事はAP Tech Blog Weekのものになります。

目次

はじめに

こんにちは。クラウド事業部の早房です。
昨今、生成AIについての話題が業界問わずに飛び交っておりメディアでも目にすることが多く、注目の分野となっています。
今回は、AWS が提供する 生成 AI サービス「Codewhisperer」についてご紹介します。
GA から約 1 年が経過しており、ご存じの方が多いかと思いますが是非最後までご覧ください。

どんなひとに読んで欲しい

  • そもそもCodeWhispererって何?どんなことができるんですか?という方
  • 生成AIを使用してのコーディングや開発に興味がある方

CodeWhispererについて

主な機能

公式サイトでは以下のように紹介されています。

CodeWhisperer は、AI を活用した生産性向上ツールです。統合開発環境 (IDE) とコマンドラインで、単一行または全機能のコード候補をリアルタイムで生成し、ソフトウェアの迅速な構築を支援します。CodeWhisperer を使用すると、「Upload a file with server-side encryption」(サーバー側の暗号化を使用してファイルをアップロードする) など、特定のタスクを英語で概説するコメントを自然言語で記述できます。 この情報に基づいて、CodeWhisperer はタスクを実行できる 1 つ以上のコードスニペットを IDE で直接推奨します。すばやく簡単に最上位の提案を受け入れたり (タブキー)、その他の提案を表示したり (矢印キー)、引き続き独自のコードを記述したりできます。コードの提案を受け入れる前に必ずその内容を確認する必要があります。その結果、そのコードが意図したとおりに動作するように編集する必要がある場合があります。

aws.amazon.com

AI補完

CodeWhispererは、AI補完ツールのような役割を持ったサービスです。
コードを書いている時に、自動的に候補を提案してくれたりコードを作成してくれます。
変数名や関数名を入力している途中でそれに合った候補を表示してくれたり、コメントアウト内に処理したい内容を記載することでコードの生成が可能です。

セキュリティスキャン

コードの生成の他にも、セキュリティスキャンの機能も兼ね備えています。
例えば、コード内でアクセスキーやシークレットアクセスキーがハードコードされていたり、推奨されないAPIが指定されている場合は警告・コードの修正をしてくれます。
修復されたコードをそのまま適用することもできます。

公式ドキュメントに記載のとおり、セキュリティスキャンはAmazon CodeGuru Detector Libraryの検出器を利用しています。

CodeWhisperer のセキュリティ スキャンは、Amazon CodeGuru Detector Libraryの検出器を利用しています。 CodeGuru Security は、コードをスキャンする前に複数のレイヤーのフィルタリングを実行して、最も重要な問題に集中できるようにします。その一環として、CodeGuru Security はセキュリティ問題をスキャンする前に、サポートされていない言語、テスト コード、オープン ソース コードをフィルタリングします。

docs.aws.amazon.com

Amazon CodeGuru Detector Libraryはこちら。
docs.aws.amazon.com

プランと料金

プランは「Individual Tier」と「Professional Tier」の 2 種類があります。
個人用のプランである「Individual Tier」は無料で使用することが可能です。
サブスクリプションで月額○○$や、トークンの消費などで課金されるツールが多い中、無料で使用できるのはかなり魅力的。

aws.amazon.com

使ってみた

という訳で、実際に使ってみましょう。
CodeWhisperer は様々な IDE をサポートしています。
AWS 上で動作する Cloud9 はもちろん、比較的大多数の方が使用している VSCode 上でも使用できます。

CodeWhisperer は、Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、シェルスクリプト、SQL、Scala、JSON、YAML、HCL など、複数のプログラミング言語向けの人工知能 (AI) を利用したコード提案を提供します。このサービスは、JetBrains IDE (IntelliJ IDEA、Visual Studio、PyCharm、WebStorm、Rider)、Visual Studio (VS) Code、AWS Cloud9、AWS Lambda コンソール、JupyterLab、Amazon SageMaker Studio など、複数の IDE から使用できます。

aws.amazon.com

今回は VSCode と Lambda コンソールで使ってみました。
使用に必要な設定は以下です。

CodeWhispererを使用するために必要な設定

VSCode

  1. 拡張機能「AWS Toolkit」をインストール

  2. 上部ウィンドウ内の「Sign in to get started」をクリック

  3. Amazon Q + CodeWhisperer 内の「Use to free, no AWS Account required」をクリック

  4. Proceed to Browser をクリック

  5. ブラウザが起動、コードが表示されるので、4. のポップアップで表示されたコードと一致していることを確認して「Confirm and continue」をクリック

  6. AWS Builder ID の作成、もしくは既に ID がある場合は既存の AWS Builder ID 情報を使用します。今回は後者で進みました。

  7. メールアドレスとパスワードを入力すると以下の画面が表示されるので Allow access を選択。

  8. 完了! VScode 下部のステータスバーに「CodeWhisperer」と表示されるはずです。

Lambda コンソール

Lambda コンソール上の「Tools」> 「Amazon CodeWhisperer Code Suggestions」にチェックを入れる。これで完了です。
ただし、使用可能なリージョンは us-east-1 リージョンのみなのでご注意を。

コーディングする

VSCode

ランダムで 5 桁の数字を生成し、結果を csv ファイルに追記する処理を、CodeWhisperer に投げてみます。
以下のようにコメントアウト文で処理内容を書いて改行すると・・・

記載内容に応じたコードを提供してくれます。予想以上に生成処理が速い印象。

タブキーで CodeWhisperer からの提案を受け入れます。
ライブラリが不足している場合は import の記述も追記してくれました。ありがたい。

再度改行すると、コードが提案されるので Tab キーで受け入れます。

※改行するたびにコードが提案されるので、超大作になることもあります。親切なんですけどね。笑

デバッグ&実行してみましょう。

csv ファイルが作成され、5 桁の数字が書き込まれていました。

Lambda コンソール

AWS アカウント内に存在する特定のリージョンのEC2インスタンスの一覧を取得する Lambda 関数を作成してみます。
同じくコメントアウトで処理内容を書いて Alt+C を押下。

以下のコードが生成されました。(全リージョンのインスタンス一覧になりそう)

手動でテスト実行

それとなく、意図した処理を実行することができました!

所感(メリット/デメリット)

メリット

  • コーディングの経験が浅くても CodeWhisperer を使用することで開発を進めることができる。
  • コーディングに慣れていたとしても補助ツール的な使い方ができる。
  • セキュリティスキャンを使用することでセキュリティ面でも担保される。
  • 無料プランがあり、手軽に使える。

    デメリット

  • 完璧なコードは生成できない。(AI補完ツールであるため、当然入念なデバッグは必要)
  • コメントアウトに記載する処理内容を英文で書く必要がある。

おわりに

今回は CodeWhisperer についてご紹介しました。
設定の手間も料金もかからないので、かなり手軽に使用できる生成AIツールでした。
Amazon Q との連携、セキュリティスキャンなどの紹介しきれなかった便利な機能もまだまだありますので、少しでも興味が湧いた方は使用してみてはいかがでしょうか。

お知らせ

APCはAWS Advanced Tier Services(アドバンストティアサービスパートナー)認定を受けております。


その中で私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
www.ap-com.co.jp

https://www.ap-com.co.jp/service/utilize-aws/

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: hybs_yuuuu

https://www.credly.com/users/hybs_yuuuu/badges