6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Cloud9でASP.NET Coreを使ってみる

Last updated at Posted at 2018-11-01

はじめに

AWS Cloud9で.NET Coreを使う方法は以下で紹介されています:point_down::point_down::point_down:

AWS Cloud9 ユーザーガイド:AWS Cloud9 の .NET Core サンプル
Qiita:Amazon Cloud9 で .NET Core を動かしてみた

じゃあこの延長で、「ASP.NET Coreはどうやるんだろ:thinking:?」と思って調べてみました。

.NET Core 2.1 SDKのインストール

上記の「AWS Cloud9 ユーザーガイド」の手順どおり、Cloud9の環境を作成して.NET Core 2.1 SDKをインストールします。2018年11月時点では2.1.403CurrentかつLTSなのでこちらをインストールしておきます。
dotnet-core-sdk-for-linux-x64.png

aws-cloud9-install-dotnet-core.png

ASP.NET Core アプリの作成

dotnet new コマンドでRazor ページのテンプレートを使ってアプリケーションを作成します。

dotnet new razor -o RazorApp1

aws-cloud9-new-dotnet-core.png

ASP.NET Core アプリの実行

dotnet run コマンドでアプリケーションを実行します。

cd RazorApp1
dotnet run

ですが、アプリケーションをプレビューしようとしても表示されません。
aws-cloud9-preview-dotnet-core.png

これは以下のページ記載されている

IDE 内からアプリケーションをプレビューするには、まずポート 8080、8081、または 8082 を経由して、IP 127.0.0.1、localhost、または 0.0.0.0 で HTTP を使用して、AWS Cloud9 development environment で実行している必要があります
AWS Cloud9 ユーザーガイド:AWS Cloud9 Integrated Development Environment (IDE) で実行中のアプリケーションをプレビューする

に沿ってアプリケーションを実行していないのが原因です。解決するにはRazorApp1/Properties/launchSettings.jsonのapplicationUrlを修正する必要があります。

"applicationUrl": "https://localhost:5001;http://localhost:5000",

と設定されているのを以下に変更します。

"applicationUrl": "http://localhost:8080",

変更後に再度dotnet run コマンドでアプリケーションを実行してプレビューすると表示されます。
aws-cloud9-preview-dotnet-core-2.png

ASP.NET Core アプリの実行(その2)

上記のようなIDE内のプレビューだけでなく、以下の方法でアプリケーションを確認するケースも試してみます。

AWS Cloud9 ユーザーガイド:実行中のアプリケーションをインターネット経由で共有する

まず上記のステップ2「インスタンスのセキュリティグループを設定する」で記載されているように、Cloud9で使用しているEC2インスタンスのセキュリティグループのインバウンドにポート8080でHTTP通信を追加します。
aws-cloud9-add-security-group.png

同じようにステップ3「インスタンスのサブネットをセットアップする」も設定しておきます。(もしかするとデフォルトで設定されているかも)
aws-cloud9-add-subnet.png

最後にステップ4「実行中のアプリケーションの IP を変更する」を設定します。アプリケーションのURLをEC2のプライベートIPにしておきます。

"applicationUrl": "http://[プライベートIP]:8080",

これで完了です。あとはブラウザにアプリケーションのURLとしてhttp://[パブリック IP]:8080と入力すれば他のブラウザからでもアクセスできます。お決まりですが、パブリック IPはElactic IPで固定しておくと便利です。

まとめ

現時点でCloud9ではデバッグやコードヒントが使えないので開発環境として使うならVisual Studio Codeが良さげですが、.NET Coreを利用するまでやアプリケーションのプレビューも簡単に設定できるので今後の展開に期待したいです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?