IIS から Elastic Beanstalk への移行マッピングを理解する - AWS Elastic Beanstalk

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

IIS から Elastic Beanstalk への移行マッピングを理解する

IIS から Elastic Beanstalk への移行では、オンプレミスの Windows サーバー設定を AWS クラウドリソースにマッピングする必要があります。このマッピングを理解することは、移行の成功と移行後の管理に不可欠です。

Elastic Beanstalk 内の IIS サイトとアプリケーション

IIS 内で、ウェブサイトはウェブアプリケーションと仮想ディレクトリのコレクションを表し、それぞれに独自の設定とコンテンツがあります。Elastic Beanstalk に移行すると、これらのコンポーネントは次のように変換されます。

IIS ウェブサイト

IIS ウェブサイトは Elastic Beanstalk 内のアプリケーションになります。バインディング、アプリケーションプール、および認証設定を含む各ウェブサイトの設定は、Elastic Beanstalk のデプロイマニフェスト (aws-windows-deployment-manifest.json) を通じて保持されます。

例えば、Default Web SiteIntranetSite などの複数のサイトがある場合、eb migrate は各サイトのコンテンツと設定をパッケージ化し、分離を維持します。

コマンドは、アプリケーションへのルーティングリクエストを処理するための適切な Application Load Balancer (ALB) リスナールールを作成します。また、元の IIS バインディングに基づいて適切なポートアクセスを確保するようにセキュリティグループを設定します。

アプリケーションプール

IIS アプリケーションプールは、アプリケーションのワーカープロセスの分離、ランタイム管理、およびリサイクル機能を提供します。Elastic Beanstalk では、これらは aws:elasticbeanstalk:environment:process 名前空間を通じて定義され、EC2 インスタンス上の IIS を介して設定される環境プロセスにマッピングされます。

移行では、次のような重要なアプリケーションプール設定が保持されます。

  • プロセスモデル設定 - アイデンティティ (ApplicationPoolIdentity、NetworkService、またはカスタムアカウント)、アイドルタイムアウト設定、およびプロセスリサイクル間隔

  • .NET CLR バージョン設定 - アプリケーションの互換性を確保するために、指定された .NET Framework バージョン (v2.0、v4.0、またはマネージドコードなし) を維持します

  • マネージドパイプラインモード - 統合パイプラインモードまたはクラシックパイプラインモードの設定を保持して、HTTP リクエスト処理アーキテクチャを維持します

  • 高度な設定 - キューの長さ、CPU 制限、迅速障害保護のしきい値、起動時間制限

eb migrate コマンドは、Elastic Beanstalk 環境への移行中にサイトとアプリケーションプール間のマッピングを保持します。

アプリケーションプールがカスタムリサイクルスケジュール (特定の時間またはメモリしきい値) を使用している場合、これらは EC2 インスタンスで適切な IIS 設定を構成するデプロイパッケージ内の PowerShell スクリプトを通じて実装されます。

ウェブサイトバインディング

クライアントがアプリケーションにアクセスする方法を定義する IIS ウェブサイトバインディングは、次の Application Load Balancer (ALB) 設定に変換されます。

  • ポートバインディングは、対応する ALB リスナールールにマッピングされます

  • ホストヘッダー設定は ALB ルーティングルールに変換されます

  • SSL 対応サイトは証明書管理に AWS Certificate Manager (ACM) を使用します

仮想ディレクトリとアプリケーションパスの管理

IIS 仮想ディレクトリとアプリケーションは、物理ディレクトリへの URL パスマッピングを提供します。Elastic Beanstalk は次のコンストラクトを通じてこれらの関係を維持します。

仮想ディレクトリ

移行プロセスでは、仮想ディレクトリの物理パスがデプロイパッケージに保持されます。

パスマッピングは EC2 インスタンス上の IIS 設定で設定され、移行後も URL 構造がそのまま維持されます。

システムドライブ以外の物理パス
重要

デフォルトでは、Elastic Beanstalk Windows 環境は C:\ ドライブ (ルートボリューム) のみをプロビジョニングします。現在のバージョンでは、非システムドライブ (D:\、E:\ など) のコンテンツを持つアプリケーションの移行はサポートされていません。

eb migrate コマンドは、システム以外のドライブにある物理パスを自動的に検出し、次の例のような潜在的な問題について警告します。

ERROR: Detected physical paths on drive D:\ which are not supported in the current version: - D:\websites\intranet - D:\shared\images Migration of content from non-system drives is not supported. Please relocate this content to the C:\ drive before migration. Otherwise, select only those sites that are on C:\.

アプリケーションがシステム以外のドライブに依存している場合は、移行前にアプリケーションを変更してすべてのコンテンツを C:\ ドライブに保存する必要があります。

ネストされたアプリケーション

ウェブサイトの下にネストされたアプリケーションは、正しいパス設定と適切なアプリケーションプール割り当てを使用してデプロイされます。移行プロセスにより、すべての web.config 設定が保持されるため、アプリケーション固有の設定がクラウド環境で期待どおりに機能し続けます。

URL 書き換えとアプリケーションリクエストルーティング (ARR)

IIS デプロイで URL 書き換えまたはアプリケーションリクエストルーティング (ARR) を使用している場合、eb migrate は次のルールと設定を通じてこれらの設定を処理します。

URL 書き換えルール

web.config ファイルからの URL 書き換えルールは、可能な場合は ALB ルーティングルールに変換されます。例えば、次のエントリは、ホストヘッダーとパスパターンに基づいてトラフィックの向きを指示する ALB リスナールールになります。

<!-- Original IIS URL Rewrite Rule --> <rule name="Redirect to WWW" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^example.com$" /> </conditions> <action type="Redirect" url="http://www.example.com/{R:1}" /> </rule>

アプリケーションリクエストのルーティング

ARR 設定は、EC2 インスタンスへの ARR 機能のインストールを通じて保持されます。移行プロセスは、次のタスクを完了します。

  • ソース環境に合わせてプロキシ設定を構成する

  • ARR に関連付けられた URL 書き換えルールを維持する

移行アーティファクト構造

eb migrate を実行すると、必要なすべてのデプロイコンポーネントを含む構造化ディレクトリが作成されます。次のリストでは、ディレクトリ構造について説明します。

C:\migration_workspace\ └── .\migrations\latest\ └── upload_target\ ├── [SiteName].zip # One ZIP per IIS site ├── aws-windows-deployment-manifest.json └── ebmigrateScripts\ ├── site_installer.ps1 # Site installation scripts ├── arr_configuration.ps1 # ARR configuration scripts ├── permission_handler.ps1 # Permission management └── firewall_config.ps1 # Windows Firewall rules

aws-windows-deployment-manifest.json ファイルは、アプリケーションをデプロイする方法を Elastic Beanstalk に指示するコア設定ファイルです。次の例の構造を参照してください。

{ "manifestVersion": 1, "deployments": { "msDeploy": [ { "name": "Primary Site", "parameters": { "appBundle": "DefaultWebSite.zip", "iisPath": "/", "iisWebSite": "Default Web Site" } } ], "custom": [ { "name": "ConfigureARR", "scripts": { "install": { "file": "ebmigrateScripts\\arr_configuration.ps1" }, "uninstall": { "file": "ebmigrateScripts\\noop.ps1" }, "restart": { "file": "ebmigrateScripts\\noop.ps1" } } } ] } }

このマニフェストは、移行のためのこれらの結果を保証します。

  • アプリケーションは IIS パスを修正するためにデプロイされます

  • カスタム設定が適用されます

  • サイト固有の設定は保持されます

  • デプロイ順序が維持されています