Amazon Web Services ブログ

AWSと.NET Core 2.0

昨日、.NET Core 2.0がリリースされ(訳注:このブログ記事の原文は2017/8/15に発行されています)、AWSでは .NET Coreプラットフォームに追加された新機能と完成度にとても興奮しています。今後数か月以内に、AWSサービスをアップデートして、.NET Core 2.0のファーストクラスのサポートを提供します。 2つの簡単な方法ですぐにAWS上で.NET Core 2.0を使い始めることができます。

 

AWS Elastic Beanstalkの利用

Elastic Beanstalkを使用すると、Webアプリケーションを簡単に展開できます。現在、.NET Frameworkおよび.NET Core 1.1がサポートされています。 Elastic Beanstalkプラットフォームは、すぐに.NET Core 2.0をサポートするように更新されるでしょう。 それまではデプロイメントパッケージをカスタマイズして、デプロイ中のインスタンスに.NET Core 2.0をインストールするようにBeanstalkに指示することができます。

ASP.NET CoreアプリケーションがBeanstalkにデプロイされると、AWS-windows-deployment-manifest.jsonというJSONマニフェストがツールキットによって作成され、Beanstalkにアプリケーションのデプロイ方法を指示します。 以前のブログ記事では、このマニフェストのカスタマイズ方法について説明しました。 この機能を使用して、デプロイ前にPowerShellスクリプトを実行して.NET Core 2.0をインストールすることができます。

最初のステップとして、ASP.NET Core 2.0プロジェクトにaws-windows-deployment-manifest.jsonというファイルを追加します。 aws-windows-deployment-manifest.jsonのプロパティウィンドウで、[Copy to Output Directory]フィールドを必ず[Copy Always]に設定してください。 このファイルは、通常、ツールキットによって生成されますが、ツールキットがファイルがすでに存在することが判明した場合は、代わりにデプロイメントウィザードで指定された設定で既存のファイルを変更します。

 

次に、下の内容をコピーしてaws-windows-deployment-manifest.jsonに貼り付けます。 これはASP.NET Coreアプリケーションをデプロイし、デプロイの前に./Scripts/installnetcore20.ps1 PowerShellスクリプトを実行することを示しています。

 

{
  "manifestVersion": 1,
  "deployments": {

    "aspNetCoreWeb": [
      {
        "name": "app",
        "parameters": {
          "appBundle": ".",
          "iisPath": "/",
          "iisWebSite": "Default Web Site"
        },
        "scripts": {
          "preInstall": {
            "file": "./Scripts/installnetcore20.ps1"
          }
        }
      }
    ]
  }
}

PowerShellスクリプトを追加するためのマニフェストを追加しました。 ASP.NET Coreプロジェクトに./Scripts/installnetcore20.ps1ファイルを追加します。 再度、[Copy to Output Directory]フィールドを[Copy Always]に設定して、デプロイメントパッケージに追加されていることを確認してください。 以下のスクリプトは、.NET Core 2.0インストーラをダウンロードし、インストーラを実行します。

 

$localPath = 'C:\dotnet-sdk-2.0.0-win-x64.exe'

if(!(Test-Path $localPath))
{
    Invoke-WebRequest -Uri 'https://download.microsoft.com/download/0/F/D/0FD852A4-7EA1-4E2A-983A-0484AC19B92C/dotnet-sdk-2.0.0-win-x64.exe' -OutFile $localPath
    & $localPath /quiet /log c:\InstallNetCore20.log
}

 

このスクリプトでは、Microsoftの公式リンクから.NET Core 2.0をダウンロードしています。 デプロイ中のダウンロードを高速化し、リンクの変更の影響を受けないようにするために、.NET Core 2.0インストレーションをElastic Beanstalk環境と同じリージョンにあるAmazon S3バケットにコピーすることをお勧めします。

デプロイメントマニフェストのカスタマイズにより、ASP .NET Core 2.0アプリケーションをElastic Beanstalkに簡単にデプロイできます。

 

Dockerベース サービスの利用

Amazon EC2 Container ServiceやAWS CodeBuildなどのDockerコンテナを実行するDockerベースのサービスについては、Docker Hubに発行されたDockerイメージを使用してすぐに開始できます。 たとえばコンソールでAWS CodeBuildプロジェクトを設定するときに、Docker HubからカスタムのDockerイメージを指定することができます。

 


.NET Core Dockerイメージの詳細については、GitHubリポジトリを参照してください。 AWSでDockerコンテナを実行する方法の詳細については、「Amazon ECS入門」を参照してください。

 

AWS SDK for .NET

.NET Core 2.0は.NET Standard 2.0をサポートしています。つまり、.NET Standard 2.0とそれ以下を対象とするNuGetパッケージは.NET Core 2.0でサポートされています。 AWS SDK for .NETは.NET Standard 1.3をターゲットとしています。このことはつまり、.NET Core 1.xまたは.NET Core 2.0の両方で利用できることを意味しています。

 

結論

.NET Core 2.0とAWSについて最新の情報を入手するには、AWS .NET開発ブログをフォローし、Twitterで私たちのツイートを見つけてください

 
(日本語翻訳はSA 福井が担当しました。原文はこちらです。)