AWS Elastic Beanstalk
開発者ガイド

Elastic Beanstalk Windows Server プラットフォームのメジャーバージョン間での移行

AWS Elastic Beanstalk には、Windows Server プラットフォームのメジャーバージョンがいくつかあります。このページでは、各メジャーバージョンでの主な改善点と、以降のバージョンに移行する前の考慮点について説明します。

Windows Server プラットフォームは現在バージョン 2 (v2) です。アプリケーションで v2 より前の Windows Server プラットフォームバージョンを使用している場合は、v2 に移行することをお勧めします。

Windows Server プラットフォームのメジャーバージョンの最新情報

Windows Server プラットフォーム V2

Elastic Beanstalk Windows Server プラットフォームのバージョン 2 (v2) が 2019 年 2 月にリリースされました。v2 では、いくつかの重要な点で Windows Server プラットフォームの動作が Elastic Beanstalk の Linux ベースのプラットフォームに近づいています。v2 は v1 と完全に下位互換性があり、v1 からの移行が容易です。

Windows Server プラットフォームでは次の機能がサポートされています。

注記

新しいデプロイおよび更新機能は、拡張ヘルスに依存します。それらを使用するには、拡張ヘルスを有効にします。詳細については、「AWS Elastic Beanstalk 拡張ヘルスレポートの有効化」を参照してください。

Windows Server プラットフォーム V1

Elastic Beanstalk Windows Server プラットフォームのバージョン 1.0.0 (v1) は 2015 年 10 月にリリースされました。このバージョンでは、環境の作成および更新時に Elastic Beanstalk が設定ファイル内のコマンドを実行する順序が変更されています。

以前のプラットフォームのバージョンでは、ソリューションスタック名にバージョン番号が使用されていません。

  • IIS 8.5 を実行する 64 ビット Windows Server 2012 R2

  • IIS 8.5 を実行する 64 ビット Windows Server Core 2012 R2

  • IIS 8 を実行する 64 ビット Windows Server 2012

  • IIS 7.5 を実行する 64 ビット Windows Server 2008 R2

以前のバージョンでは、設定ファイルの処理順には一貫性がありません。環境の作成中に、アプリケーションソースが IIS にデプロイされると Container Commands が実行されます。実行中の環境へのデプロイ中は、新しいバージョンがデプロイされる前にコンテナコマンドが実行されます。スケールアップ中は、設定ファイルはまったく処理されません。

これに加えて、コンテナコマンドの実行前に IIS が開始されます。この動作により一部の顧客はコンテナコマンドに回避策を実装し、コマンドの完了後に再度 IIS を起動して開始するコマンドの前に IIS サーバーを一時停止することになります。

バージョン 1 ではこの一貫性のない状態が修正されており、Windows Server プラットフォームの動作が Elastic Beanstalk の Linux ベースのプラットフォームにより近いものになっています。v1 プラットフォームでは、Elastic Beanstalk は IIS サーバーを起動する前に常にコンテナコマンドを実行します。

v1 のプラットフォームソリューションスタックでは、Windows Server のバージョンの後に v1 が付きます。

  • IIS 8.5 を実行する 64 ビット Windows Server 2012 R2 v1.1.0

  • IIS 8.5 を実行する 64 ビット Windows Server Core 2012 R2 v1.1.0

  • IIS 8 を実行する 64 ビット Windows Server 2012 v1.1.0

  • IIS 7.5 を実行する 64 ビット Windows Server 2008 R2 v1.1.0

さらに、v1 プラットフォームはコンテナコマンドを実行する前に、アプリケーションソースバンドルのコンテンツを抽出して C:\staging\ に保存します。コンテナコマンドの完了後に、このフォルダのコンテンツは .zip ファイルに圧縮され IIS にデプロイされます。このワークフローにより、コマンドまたはスクリプトを使用してアプリケーションソースバンドルのコンテンツを変更してからデプロイできます。

Windows Server プラットフォームの以前のメジャーバージョンからの移行

環境を更新する前に、このセクションの移行の考慮事項についてお読みください。新しいバージョンに環境のプラットフォームを更新するには、「Elastic Beanstalk 環境のプラットフォームバージョンの更新」を参照してください。

V1 から V2 へ

Windows Server プラットフォーム v2 では、.NET Core 1.x および 2.0 をサポートしていません。アプリケーションを Windows Server v1 から v2 に移行中で、アプリケーションがこれらのいずれかの .NET Core バージョンを使用している場合は、v2 がサポートしている .NET Core バージョンにアプリケーションを更新します。サポートされているバージョンのリストについては、AWS Elastic Beanstalk プラットフォームの「IIS を使用する Windows Server での .NET」を参照してください。

アプリケーションでカスタム Amazon Machine Image (AMI) を使用している場合は、Windows Server プラットフォーム v2 AMI に基づいて新しいカスタム AMI を作成します。詳細については、「カスタム Amazon Machine Image (AMI) の使用」を参照してください。

注記

Windows Server v2 の新しいデプロイおよび更新機能は、拡張ヘルスに依存します。環境を v2 に移行するときは、拡張ヘルスが無効になります。これらの機能を使用するには、拡張ヘルスを有効にします。詳細については、「AWS Elastic Beanstalk 拡張ヘルスレポートの有効化」を参照してください。

v1 以前から

v1 からの移行の考慮点に加えて、v1 以前の Windows Server ソリューションスタックからアプリケーションを移行していて、現在コンテナコマンドを使用している場合は、新しいバージョンに移行するときに処理の不一致を回避するために追加したコマンドをすべて削除します。v1 からは、コンテナコマンドは、デプロイされるアプリケーションソース、および IIS が起動する前に、完全に実行することが保証されています。これにより、このステップ中に問題なく C:\staging のソースに変更を加え、IIS 設定ファイルを修正することができます。

たとえば、AWS CLI を使用して、DLL ファイルを Amazon S3 からアプリケーションソースにダウンロードできます。

.ebextensions\copy-dll.config

container_commands: copy-dll: command: aws s3 cp s3://my-bucket/dlls/large-dll.dll .\lib\

設定ファイルの使用の詳細については、設定ファイル (.ebextensions) による高度な環境のカスタマイズを参照してください。