View a markdown version of this page

継続的なモダナイゼーションの使用 - AWS 変換

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

継続的なモダナイゼーションの使用

ソース管理

atx ct source コマンドを使用してリポジトリを接続します。サポートされているプロバイダー: GitHub、GitLab、Bitbucket、local。

GitHub 組織

トークン: repoスコープを持つ個人用アクセストークン (クラシック)。分析には読み取り専用、修復には完全なリポジトリ。

atx ct source add --name name --provider github --org org --token pat

GitLab グループとユーザー

トークン: apiスコープを持つ個人用アクセストークン。

atx ct source add --name name --provider gitlab --org group-or-user --token pat # Self-hosted: atx ct source add --name name --provider gitlab --org group-or-user --token pat --url https://gitlab.example.com

Bitbucket ワークスペースとプロジェクト

Bitbucket Cloud — スコープ: read:repository:bitbucketwrite:repository:bitbucketread:pullrequest:bitbucketwrite:pullrequest:bitbucket。また、 --emailと も必要です--username

atx ct source add --name name --provider bitbucket --org workspace --token api-token --email email --username username

Bitbucket データセンター:

atx ct source add --name name --provider bitbucket --org project-key --token http-access-token --url https://bitbucket.example.com

ローカルリポジトリ

atx ct source add --name name --provider local --path parent-directory
重要

--path は、単一のリポジトリではなく、git リポジトリをサブディレクトリとして含む親ディレクトリを指す必要があります。

ソースの管理

atx ct source list atx ct source remove --name name

リポジトリの検出と管理

atx ct discovery scan --source name atx ct discovery status --source name atx ct discovery scan --source name --path new-directory

検出後:

atx ct repository list atx ct repository list --source name atx ct repository list --labels "team:frontend,priority:high" atx ct repository update --source name --repo "source::repo" --labels "team:frontend,priority:high" atx ct repository update --source name --labels "migration:wave-1"

分析の実行

--type フラグは、実行する分析の種類を指定します。

  • rapid-techdebt-analysis – 古い依存関係と簡単な成功。

  • tech-debt-comprehensive – 依存関係、セキュリティ、パターン、パフォーマンス、保守性、アーキテクチャ、コード品質、インフラストラクチャの検出結果をカバーする、より詳細な AI を活用した分析。

  • security – セキュリティの脆弱性と露出。

  • agentic-readiness – AI エージェント用のリポジトリの準備状況 (フレームワーク、APIs、ドキュメント)。

  • modernization-readiness – インフラストラクチャ、アプリケーション、データ、セキュリティ、運用の各側面にわたるモダナイゼーションの機会。

atx ct analysis run --type type --source name [--repo source::repo] [--wait] atx ct analysis get --id id --json atx ct analysis list --json atx ct analysis list --status pending|running|complete|cancelled|failed --json atx ct analysis list --type type --json atx ct analysis cancel --id id atx ct analysis delete --id id [--cascade-findings]

カスタム分析

atx ct analysis run --type custom --transformation-name name --source source --repo source::repo --wait

-g フラグ付き設定: key-value、JSON、またはファイルパス。

TDs一覧表示する: atx custom def list

検出結果の管理

atx ct findings list --json atx ct findings list --repo source::repo --source name --severity high|medium|low --type analysis-type --status open|dismissed|obsolete --analysis-id id --fix-transform transform-name --json

検出結果のステータス

  • open — アクティブ

  • dismissed — 手動で却下 (理由が必要)

  • obsolete — 再分析で結果が生成されなくなった場合のシステムセット

atx ct findings update --id id --status dismissed --reason "reason" atx ct findings update --id id --status open atx ct findings batch-update --ids id1,id2 --status dismissed --reason "reason" atx ct findings get --id id atx ct findings delete --id id

廃止の検出

再分析では、解決された検出結果は古いものとしてマークされます。再度開くことはできません。監査のために保持されます。

修復の作成

3 つのモード: 検出結果ベース、TD オーバーライド、直接 TD。

atx ct remediation create --ids id1,id2 --name "name" atx ct remediation create --ids id1,id2 --transformation-name TD atx ct remediation create --transformation-name TD --repo source::repo

プロバイダー別の出力: GitHub PR、GitLab MR、Bitbucket PR、Local ブランチ。

注記

トークンには、PR/MR 作成用の書き込みアクセス権が必要です。

--local フラグ付きのローカル実行。

atx ct remediation create --transformation-name TD --repo source::repo -g "additionalPlanContext=Upgrade to Node.js 22" atx ct remediation list atx ct remediation status --id id atx ct remediation retry --id id atx ct remediation cancel --id id atx ct remediation delete --id id

リモート実行

デフォルトでは、分析と修復はローカルマシンで実行されます。大規模なポートフォリオでは、リモートインフラストラクチャに作業をオフロードできます。Transform AWS が管理するインフラストラクチャで、プロビジョニングするものがない (分析のみ)、または でプロビジョニングして管理するインフラストラクチャ AWS アカウント、つまり永続的な Amazon EC2 インスタンスまたは AWS バッチ (Fargate) ジョブで を実行できます。atx ct remote コマンドは、カスタマー管理のインフラストラクチャをプロビジョニング、実行、モニタリング、および削除します。実行場所に関係なく、 内のすべてのリソースを作成し AWS アカウント 、ソースコードは制御下に置かれます。

注記

インフラストラクチャのプロビジョニング、更新、および削除は、スタックと IAM ロールを作成および変更 AWS CloudFormation し、管理者権限を必要とします。を渡--ackしてこれを確認し、インタラクティブプロンプトをスキップします。既にプロビジョニングされたインフラストラクチャで分析と修復を実行するには、最小特権のエグゼキュターポリシーを使用します。関連するマネージドポリシーAWS Transform の継続的なモダナイゼーションの仕組みについては、タグ付けとアクセスコントロール「」および「」のコンピューティングオプションを参照してください。

AWS Transform マネージドインフラストラクチャでの実行 (プロビジョニングなし)

何もプロビジョニングせずに分析をリモートで実行するには、 を使用します--mode aws-managed。送信は AWS Transform に送信され、 AWS Transform マネージドインフラストラクチャで分析を実行します。プロビジョニングするスタック、設定するネットワーク、 AWS Secrets Manager に保存する認証情報はありません。送信は実行です。でワークロードを実行する AWS リージョンを選択します--region

# Run an analysis on AWS Transform-managed infrastructure atx ct remote analysis --type type --mode aws-managed --sources name [--repos repo1,repo2] [--region region] # Poll the submission (there is no remote status command in this mode) atx ct analysis get --id id --json

このモードは分析のみを実行します。修復、custom分析タイプ、またはローカルソースはサポートされていません。スタックがないため、--stack-name、、--existing-instance、および --tags--batch-nameオプションは適用されません。1 回の送信で最大 100 のリポジトリをカバーします。より大きなスコープをカバーするには、 を使用して複数の送信に分割します--repos。Amazon EC2 やバッチ実行とは異なり、 atx ct analysis getではなく で進行状況をモニタリングしますatx ct remote status

ネットワーク

リモートコンピューティングはプライベートサブネットで実行する必要があります。プロビジョニングする前に、既存のネットワークを検出するか、新しい VPC を作成します。

# List VPCs, private subnets, and security groups in the current account and Region atx ct remote network discover atx ct remote network discover --vpc vpc-id --json # Create a new VPC with private subnets, a NAT gateway, and a security group atx ct remote network create --cidr 10.1.0.0/16 --ack

インフラストラクチャーのプロビジョニングをします。

Amazon EC2 または Batch スタックをデプロイします。を省略--executeしてテンプレートまたは変更セットをプレビューし、 を追加して適用--executeします。

プロビジョニングでは、選択したモードのコンピューティングスタックとスケジューラスタックが作成されます。

  • バッチ — AWS バッチジョブキューとコンピューティング環境、継続的なモダナイゼーションコンテナイメージを含むジョブ定義、ジョブ実行用の IAM ロール、ジョブ送信用の Lambda 関数。バッチにはセキュリティグループが必要です。

  • Amazon EC2 — IAM インスタンスプロファイルとセキュリティグループを持つ永続的な Amazon EC2 インスタンス。を省略すると--securityGroup、スタックはインバウンドルールのないセキュリティグループを作成します。アクセスは SSM 経由で行われます。

  • スケジューラ — 定期的な分析で使用されるatx-schedulerスタック (Amazon EventBridge スケジューラのスケジュールグループと呼び出しロール)。オプトアウト--skip-schedulerするには を渡します。

# Preview, then deploy an EC2 stack atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --execute --ack # Deploy a Batch stack atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --execute --ack # Update an existing stack to the latest template, or tear it down atx ct remote update --mode ec2|batch --execute --ack atx ct remote teardown --mode ec2|batch --execute --ack

コンテナイメージ

リモート分析と修復を実行すると、コンテナイメージ内で実行されます。デフォルトでは、リモート環境をプロビジョニングすると、パブリック AWS 変換イメージ が使用されますpublic.ecr.aws/d9h8z6l7/aws-transform:latest。Batch はこれをジョブ定義イメージとして設定します。Amazon EC2 はこれをランナーイメージとして使用します。

追加の言語やツールをバンドルするプライベート Amazon ECR イメージなど、別のイメージを実行するには、プロビジョニング--image-uri時に を渡します。

# Batch: provision with a custom image atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack # EC2: provision with a custom image atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack

ソース認証情報の保存

リモートコンテナは、 AWS Secrets Manager に保存されているトークンを使用してリポジトリのクローンを作成します。リモート分析または修復を実行する前に、SCM ソースごとにトークンを登録します。

atx ct remote credentials --source name --token token atx ct remote credentials --source name --remove

リモートでの実行

リモート分析はリポジトリごとに 1 つのコンテナを実行し、リモート修復は検出結果ごとに 1 つのコンテナを実行します。--sources--repos、および を使用してファンアウト--labelsを制御し、--stack-nameまたは --tags を使用して、使用するプロビジョニングされたスタックを選択します。

# Run analysis across a source on Batch atx ct remote analysis --type type --mode batch --sources name [--repos repo1,repo2] [--labels "team:frontend"] # Run remediation for specific findings on EC2 atx ct remote remediation --mode ec2 --ids id1,id2 atx ct remote remediation --mode ec2 --sources name --min-severity high

実行のモニタリングと管理

# Check whether infrastructure is deployed atx ct remote detect --mode ec2|batch # Track a submission (Batch by batch ID, EC2 by group ID) atx ct remote status --batch batch-id --stack-name name atx ct remote status --group ec2-group-id --wait # Resume a partially-failed Batch run (re-submits only incomplete repos). # On resume, --batch-name takes the existing batch ID reported by "remote status --batch". atx ct remote analysis --type type --mode batch --sources name --resume-incomplete --batch-name batch-id # Cancel a running submission atx ct remote cancel --mode batch --batch batch-id --stack-name name atx ct remote cancel --mode ec2 --group ec2-group-id

定期的な分析のスケジューリング

を使用してatx ct schedule、定期的な頻度で分析を自動的に実行します。分析はスケジュールできますが、修復はスケジュールできません。ジョブオプションは をミラーリングしますatx ct remote analysis。スケジュールは、次の 2 つの方法のいずれかでリモートで実行されます。

  • AWS Transform-managed (--mode aws-managed) — AWS Transform-managed インフラストラクチャで分析を実行するサーバー側のスケジュール。Amazon EventBridge スケジュールはなく、プロビジョニングするものもありません。これには、実行ごとに AWS Transform が引き受ける実行ロール (--execution-role) が必要です (「」を参照AWS 変換マネージドスケジュールの実行ロール)。

  • カスタマーマネージド (--mode ec2|batch) — アカウントの Amazon EventBridge スケジューラスケジュールは、最初にプロビジョニングした永続的な Amazon EC2 インスタンスまたは AWS バッチスタックに各実行をディスパッチします (「」を参照リモート実行)。

--recurrence 値は dailyweekly:DAY (例: weekly:MONDAY)、または を受け入れます。monthly:NN は 1 ~ 28 の日です。 AWS Transform マネージドインフラストラクチャのスケジュールは UTC で実行されます。

# AWS Transform-managed schedule (no infrastructure; requires an execution role) atx ct schedule create --name name --mode aws-managed --execution-role role-arn --recurrence daily --type type --sources name [--repos repo1,repo2] # Customer-managed schedule (EventBridge Scheduler dispatching to your EC2 or Batch stack) atx ct schedule create --name name --mode ec2|batch --recurrence weekly:MONDAY --type type --sources name [--repos repo1,repo2] # Manage schedules of either type by their schedule ID (from schedule list) atx ct schedule list atx ct schedule get schedule-id atx ct schedule disable schedule-id atx ct schedule enable schedule-id atx ct schedule delete schedule-id

スケジュールが実行された分析を表示するには、 を使用します。これはatx ct analysis list --schedule-id schedule-id、スケジュールの実行を最新のものから返します。

カスタマー管理のスケジュールで使用されるスケジューラロールとスケジュールグループを削除するには、 を実行しますatx ct schedule teardown --execute

AWS 変換マネージドスケジュールの実行ロール

で作成されたスケジュールには、スケジュールが実行されるたびに AWS Transform が引き受ける --execution-role ARN --mode aws-managedが必要です。ロールを次のように設定します。

  • スケジュールを作成する ID には、実行ロールに対するiam:PassRoleアクセス許可が必要です。

  • ロールの信頼ポリシーは、transform-custom.amazonaws.comサービスプリンシパルがそれを引き受けることを許可する必要があります。

  • 少なくとも、スケジュールされた実行がソースクローン認証情報を取得できるように、ロールには AWS マネージドポリシーとatx/*、 プレフィックスのシークレットに対する secretsmanager:GetSecretValueおよび アクセスsecretsmanager:DescribeSecret許可がAWSTransformCustomFullAccessアタッチされている必要があります。

次のインラインポリシーは、スケジュールされた実行がソースクローン認証情報を取得する必要があるアクセスを AWS Secrets Manager に付与します。AWSTransformCustomFullAccess 管理ポリシーとともに実行ロールにアタッチし、regionaccount-id を、スケジュールが実行される AWS リージョンとアカウントに置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AtxSourceCredentials", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:atx/*" } ] }

タグ付けとアクセスコントロール

--tags オプションを使用して、タグ (カンマ区切りのkey=valueペア) をソース、分析、修復に適用できます。タグは、リモートインフラストラクチャ、保存された認証情報、ネットワークリソースでもサポートされています。タグを使用すると、リソースを整理できます。IAM タグ条件と組み合わせると、タグは属性ベースのアクセスコントロール (ABAC) を実装し、チームがタグを持つリソースにのみアクセスできるようにします。

atx ct source add --name name --provider github --org org --token pat --tags team=platform,env=prod atx ct analysis run --type type --source name --tags team=platform atx ct remediation create --ids id1,id2 --tags team=platform

デフォルトでは、リソースには で定義したタグが付けられます~/.aws/atx/settings.json。ですべてのリソースに適用するタグを追加するとapplyTags、デフォルトのタグになります。

{ "applyTags": [ { "team": "alpha" } ] }
注記

で渡されたタグ--tagsは、設定されたデフォルトタグにマージされ、両方の場所で設定されたすべてのキーに--tags当たります。

AWS ウェブアプリケーションの変換

AWS 変換ウェブアプリケーションを使用して、分析の作成と実行、結果の確認、修復の作成、コードソース全体で生成されたプルリクエストの追跡を行います。

ウェブアプリケーションを使用する前に、組織はユーザー ID が AWS Transform にアクセスできるようにする必要があります。 AWS 変換の設定の詳細については、AWS 「変換の設定」を参照してください。

サインイン

AWS 変換ウェブアプリケーションにアクセスするには、次の手順を実行します。

  1. を開きhttps://aws.amazon.com/transform/、 AWS IAM アイデンティティセンターの認証情報でサインインします。

  2. 継続的なモダナイゼーションが表示されない場合は、代わりに IAM 認証情報を使用してサインインします。

    1. AWS マネジメントコンソールで、 AWS 変換を開き、設定を選択します。

    2. IAM 認証情報を使用してアクセス AWS 変換を有効にします。

    3. ウェブアプリケーション URL (IAM を使用) をコピーし、コンソールが開いているのと同じブラウザウィンドウに貼り付けます。

  3. 左側のナビゲーションメニューを開き、継続的なモダナイゼーションを選択します。

インフラストラクチャモード

分析を作成するときは、次のいずれかのインフラストラクチャモードを選択します。

  • AWS managed – AWS Transform が管理するインフラストラクチャで を実行します。インフラストラクチャをプロビジョニングする必要はありません。

  • カスタマー所有 – 独自の のデプロイされたスタックで を実行します AWS アカウント。コンピューティング、ネットワーク、またはセキュリティ設定を制御する必要がある場合は、このモードを使用します。

注記

セキュリティ分析を実行するには、顧客所有のインフラストラクチャを使用します。セキュリティ分析は、アカウントにデプロイされたセキュリティエージェントで実行されます。

顧客所有のインフラストラクチャを使用するには、設定タブを開きます。 AWS CloudFormation クイック作成リンクを使用して、次のスタックを順番にデプロイします。

  1. AtxDispatcherStack – メッセージディスパッチャー (常に必須)。

  2. コンピューティングスタック – AtxInfrastructureStack (AWS バッチ) または atx-runner (Amazon EC2)。

  3. atx-scheduler – 定期的なスケジュールされた分析に必要です。

  4. AtxSecurityAgentStack-<region> – セキュリティ分析にのみ必要です。

CLI ベースのプロビジョニングとネットワーク設定については、「」を参照してくださいリモート実行

ワークフローの開始方法

  1. ソースの接続ソースタブを開きGitHub、、GitLab、または からリポジトリを追加しますBitbucket。

  2. 分析を実行またはスケジュールする分析タブを開き、リポジトリを選択し、分析タイプを選択し、インフラストラクチャモードを選択し、実行を選択します。定期的な頻度 (毎日、毎週、または毎月) で を実行するには、代わりにスケジュールを選択します。

  3. 結果の確認結果タブを開き、重要度別に結果を表示します。

  4. 修復の作成 – 検出結果を選択し、修復の作成を選択します。

  5. プルリクエストの確認修復タブを開き、リポジトリごとに生成された PR リンクを表示します。

とチャットする ウェブアプリケーションから直接 AWS 変換して、分析、検出結果、または修復について質問します。