![[GA] Amazon Q Developer のコード変換機能が AWS Transform として GA したので、AWS Transform for .NET を使ってみた](https://images.ctfassets.net/ct0aopd36mqt/1dD7b8HkT2sbiJzUIewMTD/e5cdc6f33c4fdd9d798f11a4564612ff/eyecatch_developersio_darktone_1200x630.jpg)
[GA] Amazon Q Developer のコード変換機能が AWS Transform として GA したので、AWS Transform for .NET を使ってみた
いわさです。
実は数日前に、Amazon Q Developer のドキュメントが更新され、昨年の re:Invent 2024 でプレビューとなっていた Amazon Q Developer transformation (コード変換機能) が削除されていました。
Document history for Amazon Q Developer User Guide - Amazon Q Developer より
公式ドキュメント上は削除理由について明記されていなかったのですが、今朝新たなサービス「AWS Transform」が GA となりました。
これは、プレビュー中だった Amazon Q Developer コード変換機能が AWS Transform というサービスとして正式リリースされたものになっています。
Q Developer のころと同じように以下のサービスで構成されています。
- AWS Transform for .NET
- AWS Transform for mainframe
- AWS Transform for VMware
今回この中のうちの AWS Transform for .NET を試してみましたので紹介します。
公式ドキュメントはこちらになります。
セットアップ
前提として AWS Transform は IAM Identity Center との統合が必要です。IAM Identity Center アプリケーションとして利用します。
そのため、まずはマネジメントコンソールで AWS Transform に IAM Identity Center ユーザーをアサインする必要があります。
また、本日時点で AWS Transform はバージニア北部リージョンとフランクフルトリージョンで利用が可能です。
私が確認した際には東京リージョンのアカウントインスタンスでも統合が可能でした。なので AWS Organizations を使えない環境でも利用出来そうです。
まずセットアップの最初のステップですが、暗号化キーを選択します。
AWS Transform は Q Developer のように AI エージェントとチャットで対話しながら変換機能を使います。その際の会話履歴などが保存されるのでその際に暗号化するために使われます。
続いてユーザーの追加を行います。
AWS Transform コンソール上で設定することで、既存ユーザーに関連付けも出来ますし、この画面で新規ユーザーの作成も可能です。
作成したユーザーは次のように IAM Identity Center ユーザーとしても登録されています。
このユーザーでアクセスポータルへログインしてみると、AWS Transform 機能が表示されています。
こちらから変換ジョブを開始することが出来ます。
変換ジョブの実行
今回は次の ASP.NET MVC (.NET Framework 4.8) を ASP.NET Core (.NET 8) に変換したいと思います。
事前に変換元のリポジトリを GitHub に用意しておきました。
IAM Identity Center アクセスポータルから AWS Transform へアクセスします。
ワークスペースの一覧が表示され、ここで作成もできるようなのですが、デフォルトでひとつワークスペースが用意されていました。
今回はこちらを使ってジョブを作成してみます。
ワークスペースにアクセスすると左側にジョブ一覧が表示されるので、ここで「Create a job」を押します。
.NET、VMware、メインフレーム、マイグレーション評価の 4 つからジョブの種類を選択できます。
今回はここで .NET modernization を選択しました。
そうするとジョブを作成するか問われるので、「Create job」ボタンを押しましょう。
ジョブの作成が開始されます。
各ステップ数分〜数十分かかったりするので、全体時間はまずまずかかります。
まず初めにコードリポジトリと関連付けする必要があります。
CodeConnection リソースが用意されている AWS アカウント ID と CodeConnection リソースの ARN を指定します。
そうすると、以下から検証リンクを取得できるのでこちらにアクセスします。
マネジメントコンソールの権限があるユーザーでリンクを開くと、Approve することができるのでこちらの操作を行います。
これで AWS Transform のジョブからコードリポジトリへアクセスできるようになります。
CodeConnection が設定できたら「Finalize connector」ボタンを押すと次のステップに進みます。
続いてリソース探索が開始されます。
おそらくコードリポジトリ一式の取得がされているようで、まぁまぁ時間がかかります。
完了すると、変換対象リポジトリや変換構成を設定することができます。
冒頭のリポジトリを .NET 8 に変換するように今回は指定しました。
設定後「Confirm repositories」ボタンを押します。
対象リポジトリやコード数などの変換概要が表示されるので最終確認 Approve するとジョブが開始されます。
ジョブが開始されるので、あとは完了するのを待つだけです。
ジョブの完了後、変換結果のサマリなどをダッシュボード画面から確認することができます。
変換された成果物は、変換対象コードリポジトリの新しいリモートブランチに出力されていました。
ここからプルリクエストなり、反映作業は自分で行う必要がありますね。
料金
AWS Transform の料金ですが、本日時点ではどうやら無料で利用が可能なようです。
新しく料金ページが追加されていました。
さいごに
本日はプレビューだった Amazon Q Developer のコード変換機能が AWS Transform for .NET として GA したので使ってみました。
使い勝手は専用アプリから AI エージェントと対話しながら変換ジョブを開始するというもので、従来の Amazon Q Developer から大きくは変わっていないと思います。
詳しくは公式ドキュメント確認頂く必要がありますが、ASP.NET Web Forms はサポートされていなかったりと対象プラットフォームの制限が少しあるのでそのあたりも注意してみてください。