目次
はじめに
こんにちは、アドベントカレンダー12/13担当のディーネットの山田です。
タイトルにある通り、Amazon CodeWhispererでTerraformのコード提案に対応したとのことなので、早速実践で使ってみました。
ある意味、AWSから開発者へのクリスマスプレゼントですかね...。
今回使用するIDEは、近年広く使われている「Visual Studio Code」を使います。
[AWS Blog] Amazon CodeWhisperer offers new AI-powered code remediation, IaC support, and integration with Visual Studio
Accelerate your Terraform development with Amazon CodeWhisperer
Amazon CodeWhispererについて
AWSが提供する「IDEとコマンドラインのためのAI搭載生産性向上ツール」です。
総合開発環境(IDE)で直接、リアルタイムにコードの提案を開発者に提供してくれます。
料金
2023年12月現在、2つのTierが提供されておりそれぞれ料金が設定されています。
-
CodeWhisperer Individual Tier
- 個人のデベロッパーは、メールアドレスとAWSビルダーIDを使用してサインアップおよびサインインする必要がありますが、無料で利用することができます。
-
CodeWhisperer Professional Tier
- Individual Tierで提供される機能に加えて、管理者が一元的にアクセス制限する機能が追加されます。
- 認証については、AWS IAM Identity Centerを使って行われ、「1ユーザー、1ヶ月あたり」に$19請求されます。
どちらのプランであっても、1ヶ月あたりの推論リクエスト数に制限はなく、個人として使うのか企業(組織)として使うのかの違いと思います。
今回は、無料で利用することができる「1. CodeWhisperer Individual Tier」を使います。
実際に設定していきます
「Visual Studio Code」については、インストールされている前提での話になります。
「Visual Studio Code」の拡張機能で「AWS Toolkit」を検索して、インストールしてください。
「CodeWhisperer」の表記をクリックしてください。
「sign in to get started」が表示されるので、クリックしてください。
「Amazon Q + CodeWhisperer」の枠内にある「Use for free with AWS Builder ID」をクリックしてください。
ブラウザを開くか聞かれるので、「Proceed To Browser」でブラウザを起動してください。
ブラウザの画面に表示された文字列が、「Visual Studio Code」で表示されていたものと同じことを確認して「Confirm and continue」をクリックしてください。
- 「Visual Studio Code」で表示される画面
- ブラウザで表示される画面
AWS Builder IDの作成画面に遷移するので、未作成の方は、個人メールアドレスを入力してください。
続いて、名前の入力を求められるので、公開されても問題ない名前を入れて下さい。
認証コードがメールで届くので、入力してください。
AWS Builder IDに自分のアカウントとして登録するパスワードを聞かれるので、任意のものを入力してください。
アクセス許可の承諾を求められるので、承諾できる方は、「Allow」をクリックしてください。
動作テスト
Amazon CodeWhispererにTerraformのコードを提示してもらう
# AWSの東京リージョンでVPCを作成する
resource "aws_vpc" "vpc" {
のみ入力しただけですが、補完機能によって例を提示してくれました。
注意点
最近は、以下の2点が初期設定で無効化されていますが、有効化されている場合は無効化することをおすすめします。
- Aws › Code Whisperer: Share Code Whisperer Content With AWS
コンテンツ内容がAWSと共有されることを防ぐのが目的になります。
- AWS: Telemetry
操作ログなどがAWSと共有されることを防ぐのが目的になります。
最後に
- 推論にて必要と思われるコードを自動的に生成してくれるので、個人的には開発スピードが向上しました。
- あくまで、推論なのでコード全体の規模が大きくなってくると間違った内容を生成してくれることがあります。
- 特に変数名などを間違ってくることがあったので、そういった部分は人間で正しいか判断しましょう。
プロフィール
テクニカルサポートは卒業して、フロントサイドでお客様環境の構築をさせていただいております。
たまに、テクニカルサポートでご対応させていただくことがあるかもしれませんが、その際はよろしくお願いいたします。
インフラ系のエンジニアですが、時々休日プログラマー(Python、PHP)をやっております。
LINK
クラウドベリージャム:プロフィールページ