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 Site IntranetSite などの複数のサイトがある場合、 は各サイトのコンテンツと設定をeb migrateパッケージ化し、分離を維持します。

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

アプリケーションプール

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

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

  • プロセスモデル設定 - ID (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 パスにデプロイされる

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

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

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