プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2019/05/22

AWS Cloud9 で ASP.NET Core のアプリに外部からアクセスできるようにする

event_note2019/05/21 15:50

AWS Cloud9 にて ASP.NET Core で作成した Web アプリケーションを動作させ、外部からアクセスしてみます。

以前以下のような記事を書きました。

今回はその延長です。

まずは以下に記載されているように、いろいろと準備が必要です。

基本的にここに書かれている通りやるだけです。

AWS の設定

まずは AWS コンソールにアクセスしておきます。

AWS EC2インスタンスに Elastic IP(固定グローバルIPアドレス)を割り当てる

インスタンス作成時に割り当てられたパブリック IP アドレスは、インスタンスを再起動したりすると違う IP アドレスに変わってしまため、これを固定 IP アドレスにします。

尚、Elastic IP の反映にはしばらく時間がかかるようです。
後述の設定が全部終わってもアクセスできず悩んでいましたが、しばらく時間が経つとアクセスできるようになりました。

インスタンス ID の確認とパブリック IP アドレスの取得

ナビゲーションバーで、[サービス] を選択します。次に、[EC2] を選択します。
リージョンが正しくない場合はリージョンの選択も必要です。

次に、サービスナビゲーションペインで [インスタンス] を選択します。
インスタンスのリストからインスタンスを選択すると、[説明] タブの中で [インスタンス ID] やパブリック IP アドレスが確認できます。

インスタンスのセキュリティグループを設定する

以下に従って設定を行います。

インスタンスのサブネットをセットアップする

以下に従って設定を行います。

AWS の設定に関してはこれで完了です。

実行中のアプリケーションの IP を変更する

ASP.NET Core アプリケーションの IP をプライベート IP アドレスに変更します。
これについては以前の記事に書いた通り、以下のどちらかで指定します。

環境変数で指定

ASPNETCORE_URLS で指定します。

$ export ASPNETCORE_URLS=http://[プライベート IP アドレス]:8080

プログラムで指定

Program.cs で以下のように記述します。

WebHost.CreateDefaultBuilder(args)
    .UseUrls("http://[プライベート IP アドレス]:8080")

アクセスしてみる

アプリケーションを実行したら、ブラウザにパブリック IP アドレスを入力してアクセスしてみます。

http://[パブリック IP アドレス]:8080

尚、前述した通り、Elastic IP の反映にはしばらく時間がかかります。