Amazon CodeWhisperer を AWS Cloud9 で使う

どうも、最近AIという言葉に食傷気味な寺内です。
Github Copilot が発表されてからそろそろ一年となりました。コーディング支援AIが開発の助けになるのは確かですが、プログラマが不要になるなんてことはもちろんありません。

AWSを使っているのであれば、コーディング支援サービスであるAmazon CodeWhisperer も使っていきたいところです。
Amazon CodeWhisperer については、GA前の時点で以下の記事でご紹介しております。

Amazon CodeWhisperer を使うときの利用者IDパターン

さて、このAmazon CodeWhisperer は、一般GAされたとはいえ、使い始めるためのID登録がわりと面倒です。使うための条件を見てみましょう。

Getting started - CodeWhisperer
Getting started with CodeWhisperer

上記のGetting Startedによると、以下の3つの使い方があります。

1. CodeWhisperer for professional developers
VS Code とJetBrains の中でAmazon CodeWhisperer を組織的に使うには、この使い方となります。この場合、AWS OrganizationIAM Identity Center を使いID管理をする必要があります。

2. CodeWhisperer for individual developers
個人開発でVS Code とJetBrains の中でAmazon CodeWhisperer を使うには、この使い方となります。この場合、AWS Builder ID を無料で取得しそのIDを使用します。

3. CodeWhisperer within the IDE
AWS のサービス内の以下のIDE を使うときに、Amazon CodeWhisperer を有効化し使うことができます。

  • Amazon SageMaker Studio
  • JupyterLab
  • AWS Glue Studio
  • AWS Lambda
  • AWS Cloud9

最も簡単にコーディング支援を体験することができますのでオススメです。

ここではAWS Cloud9 でAmazon CodeWhisperer を使ってみましょう。
まずはCloud9 のIDE環境を起動しておきます。

IAMロールでAmazon CodeWhisperer の権限設定

Cloud9 でAmazon CodeWhisperer を使用するには、以下のドキュメントにあるように利用権限ポリシーを付与します。

Using CodeWhisperer with AWS Cloud9 - CodeWhisperer
For CodeWhisperer to provide recommendations in AWS Cloud9 console, you must enable the correct IAM permissions for eith...
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CodeWhispererPermissions",
      "Effect": "Allow",
      "Action": ["codewhisperer:GenerateRecommendations"],
      "Resource": "*"
    }
  ]
}

このポリシーは、IAMユーザに付与してください。

Cloud9 の環境を作成したばかりの状態では、AWS APIを呼び出すときのアクセスキーは、STSを使って生成されたAWS マネージド一時認証情報が使用されます。その認証情報は、Cloud9 内のファイルシステムで ~/.aws/credentials のファイルの中を見ることで確認できます。この認証情報は5分に一度自動で更新されます。

この一時認証情報機能をOFFにし、クレデンシャルファイルに自分で使うアクセスキーを設定します。
一時認証情報機能をOFFにするには、Cloud9 のPreference で以下のように AWS managed temporary credentials をOFFにします。

その上で、以下の2つのファイルに使用するIAMユーザのアクセスキーとシークレットキー、使用リージョンなどを記載してください。

  • ~/.aws/config
  • ~/.aws/credentials

ファイルの書き方は以下のページを参照してください。

設定ファイルと認証情報ファイルの設定 - AWS Command Line Interface
頻繁に使用する設定と認証情報は、 という名前のファイルに分割して保存できますprofiles。

正常に認証情報を記載できたかの確認は、ターミナル上でaws cli が使えるかで確認することができます。 aws s3 ls と入れて、S3バケットリストが得られれば成功です。
もしdefault 以外のprofile を指定してアクセスキーを選択する場合は、以下のようにCloud9 の画面左端下にprofile を選択する箇所がありますので、そこで指定しておいてください。

Amazon CodeWhisperer の有効化

次にCloud9 でAmazon CodeWhisperer を有効化します。
Cloud9 の画面左端下に CodeWhisperer の有効化チェックマークがあります。

初期では以下のように切断されていますので、そこをクリックして有効化してください。

Amazon CodeWhisperer の使い方

いよいよエディタ画面にコードを書いていきます。
Windowsであれば書いている途中で Alt+c 、MacOSなら Option + c を押すと、CodeWhisperer が反応し続きのコードをサジェスチョンしてくれます。

サジェスチョンを受け入れて、そのコードを採用するなら TAB を押します。
採用しないなら ESC を押します。
出力されたコードはしっかり読み解き、自分が意図したものであるかどうかはしっかり判断しましょう。

料金

AWSサービスのインコンソールでAmazon CodeWhisperer を使用するのは無料です。

おわりに

普段インフラエンジニアをやっていると、あまりコードを書く機会は少ないかもしれません。
いざコード書こうとなったとき、「アレ、Python のif 分で値の一致を判定するのは = はひとつだっけふたつだっけ?」みたいな、ちょっとしたことが思い出せないことがあります。毎日書いていればそんなことないのに、時々しかやらないからこその面倒さです。

Javascript とPython を行ったり来たりしているときもありますね。
そんなときに、こうしてサジェスチョンしてくれるのはとても助かります。

著者について
寺内康之

SF好きで夢見がち。小学生の頃にPC-8001に出会い、その後パソコン通信にはまり、UNIX好きになり、ネットワークエンジニアとなる。AWSと出会い、徐々に上位レイヤーに進出中。
2024年 Japan AWS Top Engineers に選出される。

寺内康之をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(AWS)は、企業価値の向上につながるAWS 導入を全面支援するオールインワンサービスです。AWS最上位パートナーとして、多種多様な業界のシステム構築実績を持つSCSKが、お客様のDX推進を強力にサポートします。

AI・MLAWSアプリケーション開発クラウドソリューション
シェアする
タイトルとURLをコピーしました