eb migrate - AWS Elastic Beanstalk

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

eb migrate

説明

インターネットインフォメーションサービス (IIS) サイトとアプリケーションを Windows サーバーから Elastic Beanstalk に移行します。コマンドはアプリケーションをパッケージ化し、設定を保持して、新しい Elastic Beanstalk 環境にデプロイします。

IIS サイトとアプリケーションの移行の詳細については、「」を参照してくださいIIS アプリケーションを Elastic Beanstalk に移行する

注記

このコマンドを使用する前に、システムが次の要件を満たしていることを確認してください。

  • Internet Information Services (IIS) バージョン 7.0 以降

  • Web Deploy 3.6 以降がインストールされている

  • Windows サーバーの管理者権限

  • AWS 適切なアクセス許可で設定された 認証情報

  • ソースサーバーには、 AWS サービスへのアウトバウンドインターネットアクセスがあります。

次の手順は、移行プロセスをまとめたものです。

  1. IIS サイトとその設定を検出します。

  2. アプリケーションのコンテンツと設定をパッケージ化します。

  3. Elastic Beanstalk 環境とアプリケーションを作成します。

  4. 保存された設定でアプリケーションをデプロイします。

コマンドは、次のリストに示すように、構造化ディレクトリに移行アーティファクトを作成します。

C:\migration_workspace\ └── .\migrations\latest\ ├── upload_target.zip └── upload_target\ ├── [SiteName].zip # One ZIP per default application of IIS site ├── [SiteName-ApplicationName].zip # One ZIP per additional application ├── aws-windows-deployment-manifest.json └── ebmigrateScripts\ ├── site_installer.ps1 # Site installation scripts ├── permission_handler.ps1 # Permission management └── other helper scripts

eb migrate cleanup を使用して、これらのアーティファクトを管理します。

構文

eb migrate [options]

eb migrate explore [options]

eb migrate cleanup [options]

引数なしで実行すると、 は非インタラクティブモードでeb migrate動作します。インタラクティブモードで実行するには、 を実行しますeb migrate --interactive

インタラクティブモードコマンドは、次の情報を求めます。

  • 移行する IIS サイトの選択

  • 環境名とアプリケーション名

  • プラットフォームバージョンの選択

  • インスタンスタイプおよびその他の設定オプション

サブコマンド

探索

eb migrate explore サブコマンドは IIS サーバーを調べ、利用可能なサイトを一覧表示します。

このコマンドを使用して、次の情報を表示します。

  • サーバー上のすべての IIS サイトを表示する

  • を使用して--verbose、以下を含む詳細な設定を検査します。

    • サイトバインディングとポート

    • アプリケーションプール

    • 仮想ディレクトリとその物理パス

    • [認証] 設定

PS C:\migrations_workspace > eb migrate explore Default Web Site Site2 site3 router
PS C:\migrations_workspace > eb migrate explore --verbose 1: Default Web Site: - Bindings: - *:8083: - Application '/': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\wwwroot - Logon Method: ClearText - Application '/dotnet-6-0': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\AspNetCoreWebApps\CoreWebApp-6-0 - Logon Method: ClearText - Application '/dotnet-8-0': - Application Pool: DefaultAppPool - Enabled Protocols: http - Virtual Directories: - /: - Physical Path: C:\inetpub\AspNetCoreWebApps\CoreWebApp-8-0 - Logon Method: ClearText 2: Site2: - Bindings: - *:8081: ...

クリーンアップ

eb migrate cleanup サブコマンドは、次のアクションを使用して移行アーティファクトを管理します。

  • で最後に成功した移行の保存 ./migrations/latest

  • 古い移行ディレクトリの削除

  • 重要な設定ファイルの保守

PS C:\migrations_workspace > eb migrate cleanup Are you sure you would like to cleanup older artifacts within `./migrations/`? (y/N):

クリーンアップ中に確認プロンプトをスキップ--forceするには、 を使用します。

PS C:\migrations_workspace > eb migrate cleanup --force

オプション

これらのオプションはいずれも必須ではありません。オプションeb migrateなしで を実行すると、EB CLI は非インタラクティブモードで実行されます。ではeb migrate --interactive、EB CLI から必要な設定の値を入力または選択するように求められます。

名前

説明

-a application-name

or

--application-name application-name

新しい Elastic Beanstalk アプリケーションの名前。

タイプ: 文字列

デフォルト: EBMigratedApp

--archive directory-or-zip

によって以前に生成されたソースコードを含むディレクトリまたは ZIP ファイルeb migrate --archive-only

このオプションを使用して、以前に作成した移行パッケージをデプロイします。

例: --archive .\migrations\latest\upload_target または --archive .\migrations\latest\upload_target.zip

-ao

or

--archive-only

デプロイなしで送信先アーカイブディレクトリのみを作成します。

結果のディレクトリは、 archiveオプションまたは eb migrateを使用して手動でデプロイできますeb deploy

-c subdomain-name

または

--cname subdomain-name

移行されたアプリケーションの CNAME DNS エントリのプレフィックスとなるサブドメイン名。

タイプ: 文字列

デフォルト: 環境の名前

-cf

or

--copy-firewall-config

アクティブなバインディングを持つすべての HTTP ポートの送信先にソースサーバーのファイアウォール設定をコピーします。

対応するセキュリティグループルールを作成します AWS。

-es snapshot-id [snapshot-id ...]

or

--ebs-snapshots snapshot-id [snapshot-id ...]

環境に関連付ける Amazon EBS スナップショット IDs のカンマ区切りリスト。

例: --ebs-snapshots snap-1234567890abcdef0, snap-0987654321fedcba1

--encrypt-ebs-volumes

すべての新しい Amazon EBS ボリュームに暗号化を適用します。

重要

これは、今後のすべての Amazon EBS ボリュームの作成に影響するアカウント全体の設定です。

-e environment-name

or

--environment-name environment-name

新しい Elastic Beanstalk 環境の名前。

タイプ: 文字列

デフォルト: EBMigratedEnv

制約: 4~40 文字の長さにする必要があります。文字、数字、ハイフンのみを含めることができます。ハイフンでスタートまたは終了することはできません。

--force

オペレーション中に確認プロンプトをスキップします。

cleanup サブコマンドで使用すると、 は確認なしで移行アーティファクトを削除します。

-ip profile-name

or

--instance-profile profile-name

環境の Amazon EC2 インスタンスに関連付けるインスタンスプロファイル。

指定しない場合、 は Elastic Beanstalk リソースにアクセスするアクセス許可を持つデフォルトのインスタンスプロファイルを作成します。詳細については、「Elastic Beanstalk インスタンスプロファイル」を参照してください。

-i インスタンスタイプ

or

--instance-type インスタンスタイプ

Elastic Beanstalk 環境の Amazon EC2 インスタンスタイプ。

タイプ: 文字列

デフォルト: c5.2xlarge

使用可能なインスタンスタイプについては、Amazon EC2 ユーザーガイド」の「Amazon EC2 インスタンスタイプ」を参照してください。 Amazon EC2

-in

or

--interactive

移行プロセスの強制インタラクティブモード。

デフォルトが使用可能な場合でも、設定値の入力を求めます。

-k キー名

or

--keyname キー名

環境インスタンスへの RDP アクセスを有効にする Amazon EC2 キーペア。

ログに表示されないインスタンスレベルの問題の調査に役立ちます。

有効な値: Amazon EC2 に登録されている既存のキーペア名

-p platform-version

または

--platform platform-version

環境の Elastic Beanstalk プラットフォームランタイム。指定しない場合、ホスト Windows Server バージョンから自動的に検出されます。

例: "64bit Windows Server 2016 v2.16.2 running IIS 10.0"

利用可能なプラットフォームバージョンのリストについては、eb プラットフォームリストを使用します。

--remote

リモートモードで移行を実行することを示します。このオプションを使用すると、踏み台ホストからの実行が可能になります。踏み台ホストは、Elastic Beanstalk に移行するアプリケーションと設定を含むターゲットサーバーに接続します。踏み台サーバーから実行すると、 は設定eb migrateを検出し、踏み台ホストで移行ロジックをステージングしてから、アプリケーションを新しい Elastic Beanstalk 環境にデプロイします。

このオプションを使用すると、移行する必要がある Windows サーバーに EB CLI と Python をインストールする必要がなくなります。代わりに踏み台ホストに Python と EB CLI をインストールします。ここでは、 eb migrate コマンドを --remoteオプションで実行します。--target-ip オプションを使用して、移行する IIS 設定でホストを指定します。

--target-ip、、--usernameおよび で使用する必要があります--password

--target-ip ip-address

移行する IIS サーバーを含むリモート Windows マシンのパブリック IP アドレス。

を使用する場合に必要です--remote。を使用する場合にのみ指定できます--remote

--username username

移行する IIS サーバーを含むリモート Windows マシンにアクセスするためのユーザープロファイルのユーザー名。

を使用する場合に必要です--remote。を使用する場合にのみ指定できます--remote

--password password

移行する IIS サーバーを含むリモート Windows マシンにアクセスするためのユーザープロファイルのパスワード。

を使用する場合に必要です--remote。を使用する場合にのみ指定できます--remote

-sr role-name

or

--service-role role-name

Elastic Beanstalk が関連サービスを管理するための IAM AWS サービスロール。

指定しない場合、 は必要なアクセス許可を持つデフォルトのサービスロールを作成します。詳細については、「Elastic Beanstalk サービスロール」を参照してください。

注記

完全な ARN ではなく、ロール名のみを指定します。Elastic Beanstalk は完全な ARN を自動的に作成します。

-s site-names

or

--sites site-names

移行する IIS サイトのカンマ区切りリスト。指定しない場合、 はサーバー上の利用可能なすべてのサイトを移行します。

例: --sites "Default Web Site,Intranet,API"

--ssl-certificates certificate-arn[,certificate-arn ...]

Application Load Balancer に関連付ける ACM SSL 証明書 ARNs のカンマ区切りリスト。

HTTPS バインディングを使用してサイトを移行する場合に必要です。

例: --ssl-certificates arn:aws:acm:region:account:certificate/certificate-id

-t key1=value1[,key2=value2 ...]

or

--tags key1=value1[,key2=value2 ...]

環境内の新しいリソースにタグを付けるためのkey=valueペアのカンマ区切りリスト: 環境、Elastic Beanstalk アプリケーション、アプリケーションバージョン。

詳細については、「環境のタグ付け」を参照してください。

--verbose

移行プロセス中に詳細情報を表示します。

explore サブコマンドとともに使用すると、 は包括的なサイト設定の詳細を表示します。

-vpc config-file-or-string

or

--vpc-config config-file-or-string

環境の VPC 設定。JSON ファイルパスまたは JSON 文字列として指定します。

設定には以下を含める必要があります。

{ "id": "vpc-1234567890abcdef0", "publicip": "true|false", "elbscheme": "public|private", "ec2subnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"], "securitygroups": "sg-123456,sg-789012", "elbsubnets": ["subnet-a1b2c3d4", "subnet-e5f6g7h8"] }
  • id: (必須) VPC 識別子

  • publicip: インスタンスにパブリック IPsを割り当てるかどうか

  • elbscheme: ロードバランサースキーム (パブリックまたはプライベート)

  • ec2subnets: EC2 インスタンスIDs のリスト

  • securitygroups: カンマ区切りのセキュリティグループ IDs

  • elbsubnets: ロードバランサーのサブネット IDsのリスト

重要

パラメータを指定すると、移行はソース環境からの既存の VPC 設定を無視します--vpc-config。このパラメータを使用すると、移行では、渡す設定ファイルで指定された VPC 設定のみが使用されます。このパラメータを使用すると、ソースインスタンスの VPC 設定を検出するか、デフォルトの VPC を使用するというデフォルトの動作が上書きされます。

一般的なオプション

Output

コマンドは、移行プロセス全体でステータスの更新を提供します。

  1. VPC 設定検出 (EC2 インスタンスで実行されている場合)

  2. 各サイトのソースバンドル生成の進行状況

  3. 環境作成ステータス

  4. デプロイの進捗状況

成功すると、以下を含む新しい環境の詳細が表示されます。

  • 環境名と ID

  • アプリケーション名

  • リージョン

  • プラットフォームバージョン

  • 環境 CNAME

移行中の問題については、 コマンドeb eventseb health コマンドを使用して詳細情報を取得します。

基本的な使用法

インタラクティブモードでの基本的な移行:

PS C:\migrations_workspace > eb migrate Identifying VPC configuration of this EC2 instance (i-0123456789abcdef0): id: vpc-1234567890abcdef0 publicip: true elbscheme: public ec2subnets: subnet-123,subnet-456,subnet-789 securitygroups: sg-123,sg-456 elbsubnets: subnet-123,subnet-456,subnet-789 Using .\migrations\latest to contain artifacts for this migration run. Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip Creating application version Creating environment Environment details for: EBMigratedEnv Application name: EBMigratedApp Region: us-west-2 Deployed Version: app-230320_153045 Environment ID: e-abcdef1234 Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0 Tier: WebServer-Standard-1.0 CNAME: ebmigratedenv.us-west-2.elasticbeanstalk.com Updated: 2023-03-20 15:30:45

カスタム設定で特定のサイトを移行する:

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site,InternalAPI" ` --application-name "CorporateApp" ` --environment-name "Production" ` --instance-type "c5.xlarge" ` --tags "Environment=Production,Team=WebOps" ` --copy-firewall-config

デプロイなしで移行アーカイブを作成する:

PS C:\migrations_workspace > eb migrate --archive-only Using .\migrations\latest to contain artifacts for this migration run. Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip Generated destination archive directory at .\migrations\latest\upload_target You can execute `eb init` and `eb create` from this directory to deploy to EB.

詳細設定の例

JSON ファイルを使用したカスタム VPC 設定による移行:

PS C:\migrations_workspace > cat vpc-config.json { "id": "vpc-1234567890abcdef0", "publicip": "false", "elbscheme": "internal", "ec2subnets": [ "subnet-private1", "subnet-private2" ], "securitygroups": [ "sg-app", "sg-database", "sg-monitoring" ], "elbsubnets": [ "subnet-private1", "subnet-private2" ] } PS C:\migrations_workspace eb migrate ` --sites "InternalAPI" ` --vpc-config vpc-config.json ` --instance-type "r5.xlarge" ` --tags "Environment=Internal,Security=High"

SSL 証明書とホストヘッダーを使用したサイトの移行:

PS C:\migrations_workspace > eb migrate ` --sites "SecurePortal" ` --ssl-certificates "arn:aws:acm:region:account:certificate/cert1,arn:aws:acm:region:account:certificate/cert2" ` --verbose INFO: Detected HTTPS bindings: - www.example.com:443 - api.example.com:443 INFO: Configuring Application Load Balancer with SSL certificates INFO: Creating host-based routing rules: - www.example.com -> target group 1 - api.example.com -> target group 2

EBS スナップショット設定を使用した移行:fo

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site" ` --ebs-snapshots "snap-1234567890abcdef0" "snap-0987654321fedcba1" ` --encrypt-ebs-volumes Using .\migrations\latest to contain artifacts for this migration run. INFO: Enabling EBS encryption for all new volumes in us-west-2 INFO: Configuring environment with specified EBS snapshots

セキュリティ設定の例

複雑なファイアウォールルールを持つサイトの処理:

PS C:\migrations_workspace > eb migrate ` --sites "Default Web Site,ReportingService" ` --copy-firewall-config ` --verbose INFO: Detected the following Windows Firewall rules: - Allow Web Traffic (TCP 80, 443) - Allow Reporting Traffic (TCP 8081) INFO: Creating corresponding security group rules

カスタム IAM ロールを使用した移行:

PS C:\migrations_workspace > eb migrate ` --sites "SecureApp" ` --instance-profile "CustomInstanceProfile" ` --service-role "CustomServiceRole"

リモート実行の例

リモート Windows サーバーからの IIS アプリケーションの移行:

PS C:\migrations_workspace > eb migrate ` --remote ` --target-ip "192.0.2.10" ` --username "administrator" ` --password "YourPassword123" ` --application-name "RemoteApp" ` --environment-name "RemoteEnv" INFO: Establishing SSH connection to remote host 192.0.2.10... INFO: Connection established INFO: Discovering IIS sites on remote host... INFO: Found 2 sites: Default Web Site, API INFO: Extracting site configurations... INFO: Generating source bundle for sites, applications, and virtual directories... Default Web Site/ -> .\migrations\latest\upload_target\DefaultWebSite.zip API/ -> .\migrations\latest\upload_target\API.zip Creating application version Creating environment Environment details for: RemoteEnv Application name: RemoteAppstage mi Region: us-west-2 Deployed Version: app-230320_153045 Environment ID: e-abcdef1234 Platform: 64bit Windows Server 2019 v2.7.0 running IIS 10.0 Tier: WebServer-Standard-1.0 CNAME: remoteenv.us-west-2.elasticbeanstalk.com Updated: 2023-03-20 15:30:45

特定のサイト選択によるリモート移行:

PS C:\migrations_workspace > eb migrate ` --remote ` --target-ip "192.0.2.10" ` --username "administrator" ` --password "YourPassword123" ` --sites "API" ` --instance-type "c5.large"