[GA] Amazon Q Developer のコード変換機能が AWS Transform として GA したので、AWS Transform for .NET を使ってみた

[GA] Amazon Q Developer のコード変換機能が AWS Transform として GA したので、AWS Transform for .NET を使ってみた

Clock Icon2025.05.16

いわさです。

実は数日前に、Amazon Q Developer のドキュメントが更新され、昨年の re:Invent 2024 でプレビューとなっていた Amazon Q Developer transformation (コード変換機能) が削除されていました。

image.png
Document history for Amazon Q Developer User Guide - Amazon Q Developer より

公式ドキュメント上は削除理由について明記されていなかったのですが、今朝新たなサービス「AWS Transform」が GA となりました。

https://aws.amazon.com/about-aws/whats-new/2025/05/aws-transform-net-generally-available/

これは、プレビュー中だった Amazon Q Developer コード変換機能が AWS Transform というサービスとして正式リリースされたものになっています。
Q Developer のころと同じように以下のサービスで構成されています。

  • AWS Transform for .NET
  • AWS Transform for mainframe
  • AWS Transform for VMware

今回この中のうちの AWS Transform for .NET を試してみましたので紹介します。
公式ドキュメントはこちらになります。

https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html

セットアップ

前提として AWS Transform は IAM Identity Center との統合が必要です。IAM Identity Center アプリケーションとして利用します。
そのため、まずはマネジメントコンソールで AWS Transform に IAM Identity Center ユーザーをアサインする必要があります。

CA20318C-16DF-42A0-8BDC-66AFCDE6DBD9.png

また、本日時点で AWS Transform はバージニア北部リージョンとフランクフルトリージョンで利用が可能です。
私が確認した際には東京リージョンのアカウントインスタンスでも統合が可能でした。なので AWS Organizations を使えない環境でも利用出来そうです。

まずセットアップの最初のステップですが、暗号化キーを選択します。
AWS Transform は Q Developer のように AI エージェントとチャットで対話しながら変換機能を使います。その際の会話履歴などが保存されるのでその際に暗号化するために使われます。

2BC0B559-9BCB-4F30-967F-A74064368204.png

続いてユーザーの追加を行います。
AWS Transform コンソール上で設定することで、既存ユーザーに関連付けも出来ますし、この画面で新規ユーザーの作成も可能です。

164BC984-260D-42E8-ACE5-ABED95BE9FDD.png

作成したユーザーは次のように IAM Identity Center ユーザーとしても登録されています。

0BCA97ED-7198-4D53-B235-B75E8BFAAD80.png

このユーザーでアクセスポータルへログインしてみると、AWS Transform 機能が表示されています。
こちらから変換ジョブを開始することが出来ます。

16E200B1-E3D3-4F40-A07A-1701786997CA.png

変換ジョブの実行

今回は次の ASP.NET MVC (.NET Framework 4.8) を ASP.NET Core (.NET 8) に変換したいと思います。
事前に変換元のリポジトリを GitHub に用意しておきました。

https://github.com/Tak1wa/hoge0516mvc/

IAM Identity Center アクセスポータルから AWS Transform へアクセスします。
ワークスペースの一覧が表示され、ここで作成もできるようなのですが、デフォルトでひとつワークスペースが用意されていました。
今回はこちらを使ってジョブを作成してみます。

F2245488-FECA-4FB2-9F96-9BF53B7DC72C.png

ワークスペースにアクセスすると左側にジョブ一覧が表示されるので、ここで「Create a job」を押します。
.NET、VMware、メインフレーム、マイグレーション評価の 4 つからジョブの種類を選択できます。

E4B34BD9-21FE-4313-8626-223ECCF9B9E5.png

今回はここで .NET modernization を選択しました。
そうするとジョブを作成するか問われるので、「Create job」ボタンを押しましょう。

A74108E1-BCDB-49D6-9113-8ADA43C0D33A.png

ジョブの作成が開始されます。
各ステップ数分〜数十分かかったりするので、全体時間はまずまずかかります。

まず初めにコードリポジトリと関連付けする必要があります。
CodeConnection リソースが用意されている AWS アカウント ID と CodeConnection リソースの ARN を指定します。

FA284598-235B-4B65-98DD-AD5BFA1A592F.png

そうすると、以下から検証リンクを取得できるのでこちらにアクセスします。

D939C1CD-5189-475E-ACD6-489ACEF3DC29.png

マネジメントコンソールの権限があるユーザーでリンクを開くと、Approve することができるのでこちらの操作を行います。
これで AWS Transform のジョブからコードリポジトリへアクセスできるようになります。

F9CBE88C-3EB0-4F11-B544-7AB2A6BB823D.png

CodeConnection が設定できたら「Finalize connector」ボタンを押すと次のステップに進みます。

BA3E92AB-A06E-4E5F-8784-67777C324DE1.png

続いてリソース探索が開始されます。
おそらくコードリポジトリ一式の取得がされているようで、まぁまぁ時間がかかります。

B277FC0A-EBBF-49B1-977F-385AA080DE5B.png

完了すると、変換対象リポジトリや変換構成を設定することができます。
冒頭のリポジトリを .NET 8 に変換するように今回は指定しました。

669B5A5C-BB18-4438-BFFD-63BF26C30C85.png

設定後「Confirm repositories」ボタンを押します。

E9DF8D72-1593-4EB8-BB56-DA189E9353EC.png

対象リポジトリやコード数などの変換概要が表示されるので最終確認 Approve するとジョブが開始されます。

7547AEC1-9A92-481F-A0E2-0E018EAF9E4D.png

ジョブが開始されるので、あとは完了するのを待つだけです。

46065855-18CE-4520-9A00-A6FFEAAB73CE.png

2A31E177-7EFC-466A-93B6-AB371674B1C3.png

ジョブの完了後、変換結果のサマリなどをダッシュボード画面から確認することができます。

8FDC800D-0044-4461-A3FD-3884CA085C91.png

変換された成果物は、変換対象コードリポジトリの新しいリモートブランチに出力されていました。
ここからプルリクエストなり、反映作業は自分で行う必要がありますね。

A0609340-980F-4F78-808D-E6B966B843EA.png

料金

AWS Transform の料金ですが、本日時点ではどうやら無料で利用が可能なようです。
新しく料金ページが追加されていました。

https://aws.amazon.com/transform/pricing/

さいごに

本日はプレビューだった Amazon Q Developer のコード変換機能が AWS Transform for .NET として GA したので使ってみました。

使い勝手は専用アプリから AI エージェントと対話しながら変換ジョブを開始するというもので、従来の Amazon Q Developer から大きくは変わっていないと思います。
詳しくは公式ドキュメント確認頂く必要がありますが、ASP.NET Web Forms はサポートされていなかったりと対象プラットフォームの制限が少しあるのでそのあたりも注意してみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.