AWS CLI バージョン 2 の移行ガイド
このセクションには、AWS CLI バージョン 1 から AWS CLI バージョン 2 に更新する手順が記載されています。AWS CLI バージョン 2 は AWS CLI バージョン 1 に基づいて構築されており、コミュニティからフィードバックされた機能と機能強化が含まれています。AWS CLI バージョン 2 は、AWS CLI の最新メジャーバージョンであり、最新機能をすべてサポートしています。バージョン 2 で導入された一部の機能は、バージョン 1 にバックポートされないため、これらの機能にアクセスするには、アップグレードする必要があります。
予期しない問題を防ぐために、バージョン 2 に移行する前に、バージョン間の違いを確認してください。AWS CLI バージョン 2 には、下位互換性のためにスクリプトやコマンドの更新が必要になる可能性のある新機能や変更が含まれています。
AWS CLI バージョン 1 と 2 では同じ aws コマンド名が使用されます。両方のバージョンがインストールされている場合、コンピュータによって検索パスで最初に見つかったバージョンが使用されます。これにより、新しいバージョンがインストールされている場合でも、aws コマンド名で古い AWS CLI バージョンが呼び出される可能性があります。
AWS CLI バージョン 2 に更新するには、以下の手順のいずれかに従います。
-
以前に AWS CLI バージョン 1 をインストールした場合は、「AWS CLI バージョン 1 から AWS CLI バージョン 2 をインストールする」の手順に従います。
-
以前に AWS CLI バージョン 1 をインストールしたことがない場合は、「AWS CLI の開始方法」の手順に従います。
CLI AWS 移行ツールを使用して破損を軽減する
AWS CLI バージョン 1 と AWS CLI バージョン 2 の間で動作が変更されているため、スクリプトまたはコマンドの更新が必要になる場合があります。既存のスクリプトが安全に移行されていることを検証せずに AWS CLI バージョン 2 にアップグレードすると、AWS アカウントのリソースに意図しない変更を加えられるなど、AWS CLI バージョン 2 でスクリプトを実行したときに予期しない影響が発生するリスクがあります。
移行のガイドとして使用できる AWS 所有のツールが 2 つあります。使用するツールにかかわらず、「AWS CLI バージョン 2 の新機能と変更点」ガイドの「AWS CLI バージョン 1 と AWS CLI バージョン 2 の間の重要な変更」を参照することをお勧めします。
アップグレードデバッグモード
アップグレードデバッグモードは、AWS CLI バージョン 1 の機能で、バージョン 1.44.0 以降で使用できます。この機能を有効にすると、実行する各 AWS CLI コマンドがチェックされ、実行環境が同じであると仮定して、AWS CLI バージョン 2 で動作が異なる可能性があるかどうかを確認します。AWS CLI バージョン 2 で実行されたコマンドの動作が異なる場合、コマンド出力とともに警告が表示され、AWS CLI バージョン 2 で AWS CLI バージョン 1 の動作を維持するために実行できる推奨アクションが表示されます。
アップグレードデバッグモードを使用して移行をガイドする主な理由は、コマンドの動作が変更されるかどうかを検出するための範囲が広いことです。「AWS CLI バージョン 1 と AWS CLI バージョン 2 の間の重要な変更」で説明されている 15 個の重大な変更のうち 14 個は、アップグレードデバッグモードで検出できます。この機能の制限については、「アップグレードデバッグモードを使用して AWS CLI バージョン 1 を AWS CLI バージョン 2 にアップグレードする」の「制限」を参照してください。一方、アップグレードデバッグモードを使用する主な欠点は、その出力が実行環境内でのみ有効であることです。AWS CLI バージョン 2 に移行した後に環境で AWS CLI 設定が変更された場合、重大な変更が発生する可能性があるため、更新された環境でアップグレードデバッグモードを使用して再検証する必要があります。
AWS CLI V1-to-V2 移行ツール
AWS CLI V1-to-V2 移行ツールは、Python 3.9 以降で使用できるスタンドアロンツールです。このツールは、AWS CLI とは独立して実行される静的なリンターです。AWS CLI バージョン 2 で動作が異なる可能性のある AWS CLI バージョン 1 コマンドを含む bash スクリプトをリントします。AWS CLI バージョン 2 で動作が異なる可能性があると検出されたほとんどのコマンドについては、スクリプト内のコマンドを自動的に更新して、AWS CLI バージョン 2 で AWS CLI バージョン 1 の動作を保持できます。
AWS CLI V1-to-V2 移行ツールを使用して移行をガイドする主な理由は、スクリプトを自動的に更新して AWS CLI バージョン 2 で AWS CLI バージョン 1 の動作を保持できるため、自分で更新を行う時間と労力を節約できることです。一方、移行ツールの使用の主な欠点は、コマンドの動作が変化するかどうかを検出する範囲が狭いことです。静的ツールであるため、実行時に決定される動作の変更はチェックされません。
アップグレードデバッグモードと AWS CLI V1-to-V2 移行ツールの選択
次の表は、アップグレードデバッグモードと AWS CLI V1-to-V2 移行ツールの主な違いをまとめたもので、ユースケースに適したツールを選択するガイドとして使用できます。
| アップグレードデバッグモード | AWS CLI V1-to-V2 移行ツール |
|---|---|
| AWS CLI バージョン 1 と AWS CLI バージョン 2 の間の 15 個の重大な変更のうち 14 個を検出します。 | AWS CLI バージョン 1 と AWS CLI バージョン 2 の間の 15 個の重大な変更のうち 7 個を検出します。 |
| AWS CLI を実行できる任意のターミナルプログラムと互換性があります。 | bash スクリプトのリンティングのみをサポートします。 |
AWS CLI バージョン 1、バージョン 1.44.0 以降が必要です。 |
AWS CLI とは別に実行されるため、AWS CLI をインストールする必要はありません。 |
| AWS CLI バージョン 2 で AWS CLI バージョン 1 の動作を維持するには、手動で修正する必要があります。 | AWS CLI バージョン 2 で動作が異なる可能性があると検出されたほとんどの AWS CLI バージョン 1 コマンドを自動的に修正します。 |
| 検出と推奨される修正は、それが実行される実行環境 (つまり、AWS CLI 設定) にのみ関連します。 | 検出と推奨される修正は環境とは無関係です。 |
| 動作の変更をテストする各 AWS CLI コマンドを実行する必要があります。 | AWS CLI コマンドを実行する必要はありません。bash スクリプトごとに 1 回のみ実行する必要があります。 |
| 誤検出を出力する既知のケースが正確に 5 つあります。 | 誤検出を出力する既知のケースが正確に 3 つあります。 |
次の表は、「AWS CLI バージョン 1 と AWS CLI バージョン 2 の間の重要な変更」のうち、2 つの移行ツールのそれぞれでサポートされているものを示しています。
| 重要な変更 | アップグレードデバッグモードで検出 | AWS CLI V1-to-V2 移行ツールで検出 |
|---|---|---|
| テキストファイルのエンコードを設定するために環境変数を追加 | はい | なし |
| バイナリパラメータはデフォルトで base64 エンコードされた文字列として渡されるようになりました | はい | はい |
| マルチパートコピーのファイルプロパティとタグの Amazon S3 処理が改善されました | はい | はい |
| パラメータの http:// または https:// URL の自動取得の廃止 | あり | なし |
| デフォルトですべての出力に使用されるページャー | はい | はい |
| タイムスタンプの出力値は ISO 8601 形式に標準化されています | あり | なし |
| 変更のない、CloudFormation デプロイの処理の改善 | はい | はい |
| us-east-1 リージョンの Amazon S3 エンドポイントのデフォルト動作を変更しました | あり | なし |
| リージョンの AWS STS エンドポイントのデフォルトの動作を変更しました | あり | なし |
| ecr get-login を削除し、ecr get-login-password に置き換えました | はい | はい |
| AWS CLIプラグインに対する バージョン 2 のサポートが変更されます | あり | なし |
| 非表示エイリアスのサポートを削除しました | はい | はい |
| api_versions 設定ファイルの設定はサポートされていません | あり | なし |
| AWS CLI バージョン 2 は、署名 V4 のみを使用して Amazon S3 リクエストを認証します | あり | なし |
| AWS CLI バージョン 2 はページングパラメータとの整合性が高くなっています | はい | あり |
| AWS CLI バージョン 2 は、すべてのコマンドで一貫性のあるリターンコードを提供します。 | なし | 不可 |