Alibaba Cloud Web App Service(Web+)を試してみた～ASP.NET Core 編～

# Alibaba Cloud Web App Service(Web+)とは
Alibaba CloudにWeb App Serviceが昨年末登場していたので、遅ればせながら試してみました。

Web App ServiceはWeb+と[ドキュメント](https://www.alibabacloud.com/help/product/113017.htm?spm=a2c63.p38356.a1.1.63f5335c0KqmVB)内で記載されているのを見かけたので、この記事でもWeb+と表記していきます。

Web+は、Webアプリケーション、モバイルアプリケーション、APIアプリケーションなどのアプリケーションが開発できる**フルマネージド**プラットフォームです。

Azure App Serviceと似たサービスなのかなと思います。

# 対象リージョン
サポートされているリージョンは、以下の場所です。

* 中国(上海)
* 中国(香港)
* シンガポール
* オーストラリア(シドニー)
* インド(ムンバイ)

まだ日本には無いので、今回はオーストラリアのリージョンで試しています。
今年の初めから増えてないようです。

# 対応言語
対応言語は以下の言語に対応しているようです。(2020/10/20現在)
ドキュメントがアップデートされていないようで、Rubyが近日公開になっていたりしますが設定画面上では選択できます。
今年の初め頃と比較すると、ASP.NET Core 3.1が追加されたようです。

* Java
    * OpenJDK 8 / Aliyun Linux 2.1903(Recommended Version)
    * Dragonwell 8 / Aliyun Linux 2.1903(Latest Version)
* Node.js
    * Node.js 10.16.0 / Aliyun Linux 2.1903(Recommended Version)(Latest Version)
    * Node.js 8.16.0 / Aliyun Linux 2.1903
* Go
    * Go 1.12.7 / Aliyun Linux 2.1903(Recommended Version)
* PHP
    * PHP 7.3 / Aliyun Linux 2.1903(Recommended Version)
* Python
    * Python 3.7.4 / Aliyun Linux 2.1903(Recommended Version)(Latest Version)
    * Python 2.7.16 / Aliyun Linux 2.1903
* ASP.NET Core
    * ASP.NET Core 2.2 / Aliyun Linux 2.1903(Recommended Version)
    * ASP.NET Core 3.0 / Aliyun Linux 2.1903
    * ASP.NET Core 3.1 / Aliyun Linux 2.1903(Latest Version)
* Ruby
    * Ruby 2.6.3 / Aliyun Linux 2.1903(Recommended Version)

その他、TomcatとNativeが選択できるようです。
個人的にはASP.NET Coreが対応しているのが嬉しいですね。

**注意点**
言語等選択画面で注意したいポイントが下の図の赤枠部分です。
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/c6fb7b55-e66b-1b2b-db98-9f3613c20064.png)

「Use Free Storage Space」という記載があり、Informationマークが表示されています。
![5-2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/20c26e24-8d72-4392-24db-e6591e5938da.png)
この機能をON(デフォルト設定)にしていると、アップロードされたパッケージ・ログ・診断情報・その他のデータを空きストレージスペースに保存されるようです。
コストを最小限に抑えたい場合はONが良さそうですが、データのプライバシーを優先する場合はOFFにしましょう。
機能をOFFにした場合は、全てのデータがOSSバケットに保存されるようです。
今回はONにして試しました。

# Web+へのファイル展開
コンソール画面からはzipファイルのアップロードにのみ対応です。
CLIでは初回Gitのリポジトリをクローンして展開できるようです。
次回試してみようと思います。

# ASP.NET Coreでサンプルプログラムを展開
ASP.NET Coreを選択して、今回はサンプルプログラムを展開しました。
![7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/b7b87abf-89ef-5e9b-6305-834de895a718.png)

サンプルなので「Low-cost」を選択。
![8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/08ffb0c6-a51a-4aaa-76b3-a2886a5e4572.png)

「Create with Low Cost Preset」ボタンをクリックして環境を構築します。
しばらく待つと画面が切り替わりコンソール画面に情報が表示されます。
![12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/26de1581-ad80-85d5-bd9c-4a7f8604d8b7.png)

赤枠部分のURLをクリックすると、この画面が表示されファイルが展開されていることが確認できました。
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/6b140dcb-0693-5c9a-a64c-be8c80153430.png)

# 今回作成されたリソース
![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/b14358ac-0626-7290-739e-94e5b3e71218.png)
ECSのインスタンスやセキュリティグループなどが作成されることが分かります。

ECSの画面でもリソースが確認できました。
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/5321c2a9-e75d-6423-fe7b-2a076299c659.png)

# 料金
料金は、Web+自体は無料で利用できるとのこと。
ただし、Web+で購入したリソース(ECS/ApsaraDB for RDS/SLB インスタンスなど)に対しては課金されます。

# Web+で作成した環境をStopしてみる
Web+をコンソール画面でStopしても、ECSは実行中のままでした。
Web＋のコンソール画面に表示されているURLにアクセスしても先程の画面は表示されませんでした。

# Web+で作成した環境をReleaseしてみる
Releaseボタンをクリックすると、この画面が表示されます。
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254932/3be8a1b2-b185-2bba-9589-d5b5898151ec.png)
ECS周りのリソースは削除されますが、VPCは残ったままとなります。

# Web+で作成した環境を削除する
Deleteボタンをクリックして環境を削除します。
VPCは残ったままなので、個別に削除しました。

# まとめ
対応言語が予想以上に多かったです。
zipファイルのアップロードは手間なので、CLI以外でも便利なツールがあるかどうか調べてみたいと思います。
環境を削除する際は、削除を忘れて不要な課金が発生しないように確認が必要です。

# 参考ブログ
https://www.sbcloud.co.jp/entry/2020/01/11/webplus