クラウドエンジニア(AWS)がアリババクラウドを触ってみた。アリババクラウドでAWSで一般的な構成を作ってみる。

# 初めに
本記事では、超個人的な興味で、アリババクラウドを触ったログを書いてます！AWSでよく使われる一般的な構成を作るのにどうすればいいかを調査したものです。AWSはこうだけどアリババクラウドはこうだったという知見を貯めていきたいと思います。仕事でテンセントクラウドなどAWS,GCP,Azure以外のメジャーなクラウドを知る機会も多く、一度学習してみようという気がしたので使ってみました。

# 今回の検証
## 検証概要
今回の検証では以下の構成図を作成することを目指します。
![lucidapp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/4431115c-9427-41af-af8c-308cf3a2debc.png)

## 調査
今回の調査にあたり、全く初めての状況から執筆するので、まずは公式ドキュメントなど参考文献を漁ってみたいと思います！

### アリババクラウドでのVPC
AWSで言うところのVPCですが、アリババクラウドでも存在するのか？アリババクラウドではどのような概念なのかを確認していきます。
まず公式ドキュメントを見たところ以下のようなサイトに出会しました。
[Virtual Private Cloud（VPC）](https://www.alibabacloud.com/ja/product/vpc)

論理的なアークテクチャーは以下のサイトにありました。
[VPC論理アーキテクチャ](https://www.alibabacloud.com/help/ja/virtual-private-cloud/latest/architecture)

VPCを確認するとVPCはAWSと一緒ですが、プライベート CIDR ブロックという名前でした。公式には以下のような表が記載されています。
|CIDRブロック|IPアドレス数|
|---|---|
|192.168.0.0/16|65,532|
|172.16.0.0/12|1,048,572|
|10.0.0.0/8|16,777,212|

この表からAWSのVPCは/16までのサポートですが、アリババクラウドはVPCをそれ以上にサポートしていそうな印象です。この点は実際にVPCを作成する際にも確認したいと思います。

次にサブネットやルートテーブルといった概念にも違いがあります。
まずアリババクラウドにはvRouterとvSwitchというものがありました。
まずvSwitchですが、公式には以下のような記述がありました。

公式ドキュメントより引用 : 一部抜粋
[引用元](https://www.alibabacloud.com/help/ja/virtual-private-cloud/latest/b7a6b5#concept-qbk-bvn-4gb)
```
VSwitch は、VPC の基本的なネットワークデバイスであり、異なるクラウド製品インスタンスを接続するために使用されます。
VPC を作成した後、VSwitchesを作成して、仮想プライベートネットワークをさらに1つまたは複数のサブネットにセグメント化することができます。
VPC 内の VS スイッチは相互接続されています。したがって、サービスの可用性を向上させるために、
異なるゾーンの異なる VS スイッチに異なるアプリケーションを導入することができます。
```
この概念を見るとAWSでいうサブネットの概念に近そうです。

またvRouterという概念もあります。
公式ドキュメントより引用 : 一部抜粋
[引用元](https://www.alibabacloud.com/help/ja/virtual-private-cloud/latest/b7a6b5#concept-qbk-bvn-4gb)
```
VRouterはVPCのハブです。
VPCの重要なコンポーネントとして、VPC内のVSスイッチを接続し、VPCと他のネットワークを接続するゲートウェイとして機能します。
VPCを正常に作成すると、ルートテーブルに関連付けられたVRouterが自動的に作成されます。
```
これはインターネットゲートウェイやエンドポイントといった概念に近そうです。

## アリババクラウドでのサーバー
アリババクラウドでのサーバー、AWSでいうAmazon EC2はECSが該当しそうです。
こちらが[ECS](https://www.alibabacloud.com/ja/product/ecs)の公式ドキュメントです。
Amazon EC2がAmazon Elastic Compute Cloudという正式名称ですが、アリババでは、Elastic Compute Serviceというようです。これはAmazon ECSと混同しそうな名前ですね・・・アリババECSというふうに工夫して呼ぶ必要がありそうです。
他のドキュメントの参考記事を見ましたが、一般的なIaasという感じでした。


## 構築作業
### VPC構築
VPCのサーバーを立てていきます。アリババクラウドはAWSとは違い/8でも構築することができます。ネットワークが広すぎてもどうだというわけではありませんが、大規模サービスやIPアドレスの枯渇が懸念される場合には重宝しそうです。
![スクリーンショット 2022-12-18 20.30.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/590ef989-a85f-3b06-fefb-6bf08c400e55.png)

### サブネット構築
サブネットはアリババクラウドではVSwitchといいます。こちらはサブネットと同じ感覚で作成ができます。VPCとサブネットを一緒に作る感覚です。後から判明しますが、デフォルトではパブリックサブネット扱いでの構築になりそうです。
![スクリーンショット 2022-12-18 20.30.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/bbca6421-0f68-c816-70f6-49f26fca14a7.png)

### 構築完了後画面
実際に構築すると以下のように作成された画面が表示されます。NATGatewayの追加や他のクラウドサービスの追加もこの画面からできるようです。
![スクリーンショット 2022-12-18 20.30.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/69f1ce8a-edc2-1e47-fd37-62d69a7e0319.png)

### ECS構築
AWSでいうとAmazon EC2ですが、アリババクラウドでいうとECS(Elastic compute service)というようです。ECSを構築していきます。
![スクリーンショット 2022-12-18 20.32.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/3ba4b7c0-fdac-e87b-1857-21647c2c4623.png)

### ECS画面
ECSは以下のような画面になっています。
まず、リージョンを東京に設定して、最小限で立てるインスタンス(AWSでいうt2.microの構築をイメージ)を構築していきます。
また課金方法の設定もありますが、オンデマンド、リザーブド、スポットの概念がECSの画面で選択できるようです。アリババクラウドはサービスの課金も含めて設定を一つの画面でまるっと設定するという思想がありそうです。
![スクリーンショット 2022-12-18 20.32.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/de8a4a69-a193-20ff-9726-5e81056ea336.png)

### ECS画面2
ECSのイメージはlinuxで運用します。また他のところはデフォルトの設定のままで進めていきます。
![スクリーンショット 2022-12-18 20.32.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/7c60ea14-796a-8fb7-fcb4-213f91244e98.png)

### ECS画面3 ネットワーク画面
ECSのVPCを設定していきます。先ほど構築したVPCに設定します。また、パブリックIPアドレスの割り当てを実施します。
ここで帯域幅を自分で設定する必要が出てきました。とりあえずデフォルトで設定しますが、必要に応じてここも考える必要がありそうです。
セキリュティグループは22と80を設定します。
![スクリーンショット 2022-12-18 20.33.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/d9aed175-1101-be73-0ed6-4a657147e244.png)

### ECS画面4 システム構成
ここでは鍵ファイルを設定していきます。
![スクリーンショット 2022-12-18 20.33.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/1e7a2f6b-4553-92f5-93db-3a1c6adb508a.png)

### 鍵ファイル作成
ECS画面上では作成できなかったので、別画面に遷移しました。ここもそのまま作成していきます。
![スクリーンショット 2022-12-18 20.33.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/15f19822-5a56-1703-3cad-ccafeb7b4d99.png)

### 鍵ファイル作成2
鍵ファイルを作成するとダウンロードが始まります。この辺りはそのままAWSの概念を持ち込んでも良さそうです。(というよりもLinuxとかの話になるので、そこは共通していて当然という認識
)
![スクリーンショット 2022-12-18 20.33.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/9addea44-c34e-b302-a93d-3c5c20ee5b8f.png)

### ECS画面5 システム構成2
鍵ファイルが作成できたので、鍵ファイルを指定します。
![スクリーンショット 2022-12-18 20.34.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/c7b42aa7-bdd8-8f69-c198-0e5344e2e5d9.png)

### ECS画面6　グループ化
タグづけをする画面ですが、グループ化という概念はアリババ独特の概念のようです。
![スクリーンショット 2022-12-18 20.34.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/4d79d159-50f9-2bf6-103e-57a72f988215.png)

### ECS画面７　プレビュー画面
プレビューの画面が出てきました。こちらも確認画面があるだけで、設定した内容があっているかを確認する画面のようです。
![スクリーンショット 2022-12-18 20.34.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/e219472b-7752-3576-7959-2b4bf258e91e.png)

### 注文の作成ボタンを押下後
ECSというサービスを注文したという考えで以下のような画面が出てきました。
![スクリーンショット 2022-12-18 20.35.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/ee690739-d49d-e673-688f-8393fe873f53.png)

### ECSの画面
ECSの画面に遷移すると以下のようになります。作成したインスタンスが問題なくできていることを確認できます。
![スクリーンショット 2022-12-18 20.35.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/4709c5ac-4560-2fe3-78e0-45432ecee665.png)

### インスタンス詳細画面リスト
インスタンスの画面を一通り見てみました。AWSと特に大きな点で違いはなさそうです。名前が若干異なったりしますが。また、スナップショットの整合性グループなどおそらくAWSが裏でよしなにやっていたことはアリババクラウドは明示していそうな印象です。

![スクリーンショット 2022-12-18 20.35.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/762d6be2-2d1c-3005-22e7-496587842001.png)
![スクリーンショット 2022-12-18 20.35.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/90810a07-11d7-771e-3a54-3e309d53493c.png)
![スクリーンショット 2022-12-18 20.35.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/e22c4699-cd20-00d0-92e9-15e927c7d32f.png)
![スクリーンショット 2022-12-18 20.35.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/04926175-2f58-b5e3-231c-fcfb7bdae791.png)
![スクリーンショット 2022-12-18 20.35.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/22caa5af-b3dc-27d6-5e17-257050cdc034.png)
![スクリーンショット 2022-12-18 20.35.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/358c2b9f-6e46-f50c-1803-017b30e7ce32.png)
![スクリーンショット 2022-12-18 20.36.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/6ec407d2-dbc0-dac7-de58-25ee084029f2.png)
![スクリーンショット 2022-12-18 20.36.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/a0e05b8c-a48c-2bf2-e2ce-90334c8af5e1.png)
![スクリーンショット 2022-12-18 20.36.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/220bff8c-1ddd-d603-236c-3958dbd89930.png)
![スクリーンショット 2022-12-18 20.36.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/0bdc0f83-16e0-6001-4705-5b6aa585bfc5.png)
![スクリーンショット 2022-12-18 20.36.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/d40d1f95-d0d7-0d3d-8e5d-dcc60d5e4d0b.png)
![スクリーンショット 2022-12-18 20.36.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/97386e54-50a2-26d8-c2bc-aa64acf39638.png)
![スクリーンショット 2022-12-18 20.36.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/d5e9fe02-abb6-31a4-c9dc-746810f18290.png)

### ECSにSSH接続する
ここからSSHに接続していきます。
まずは、sshにconfigファイルを作成していきます。
![スクリーンショット 2022-12-18 20.39.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/9a4ec16c-d939-f332-62c1-263564e81d72.png)

### AWSのSSHの手順と同じようにSSHします。
![スクリーンショット 2022-12-18 20.41.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/640edaf2-2c19-f4ba-b931-10c0599520e3.png)

### アパッチをインストールして、index.htmlのテストページを作成していきます。
![スクリーンショット 2022-12-18 20.43.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/25f1419a-a206-f4d9-9e06-dd960e3c6aa9.png)

### アパッチをインストールした段階でもテストページが問題なく表示されています。
![スクリーンショット 2022-12-18 20.42.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/e79cd6bc-96a3-ba6f-cc8c-8f5b859ba53d.png)

### testpageを配置しても問題なく表示されました。
![スクリーンショット 2022-12-18 20.43.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/de89a237-4e8a-6afb-f040-dbc283073f5b.png)

#### ここまで特にAWSと変わった手順はありませんでした。

### ALB作成
ここからロードバランサーを作成していきます。ロードバランサーはアリババクラウドではSLBという名前で作成されるようです。
AWSだとELBの中のALBですが、アリババだとSLBの中のALBという建て付けです。
構築した環境にロードバランサーを構築していきます。
![スクリーンショット 2022-12-18 20.44.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/ef9181bb-eacd-b919-8ff8-76326ee7d503.png)
![スクリーンショット 2022-12-18 20.44.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/6efc9e8a-c3e0-7d7f-e438-666f91cf5153.png)

### ここで内容を確認して、アクティブにしていきたいと思います。
![スクリーンショット 2022-12-18 20.44.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/0ce7e41c-766c-072d-74d5-415e5e358635.png)

### 初回の請求のみかもしれませんが、確認画面が出ていきました。
![スクリーンショット 2022-12-18 20.44.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/0cf48d5c-094e-b827-1430-03c576e2486e.png)

### こちらは確認画面が必要なようです1USDのオーソリがかかるようです。今回が初めての注文のため、クレジットの有効性確認かと思います。
![スクリーンショット 2022-12-18 20.45.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/b1665b18-7efa-7ace-641f-3c837219a22c.png)
![スクリーンショット 2022-12-18 20.45.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/5b4d7122-6256-49ff-145a-42d8b0b45e64.png)
![スクリーンショット 2022-12-18 20.45.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/f2bfcc48-102f-b480-79bd-b145ba515414.png)
![スクリーンショット 2022-12-18 20.45.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/cde819d9-45d7-d0b1-99b5-b4ef6d7bc45d.png)

### ALBのインスタンスができたので確認していきます。

![スクリーンショット 2022-12-18 20.46.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/94dd8c0b-2b33-c257-d2f5-66e787d80019.png)

### ALBのインスタンス一覧は以下のような画面になります。
アクセスログやリスナールールなど共通している部分もありそうです。アリババではALBをインスタンスとして定義しているようで、AWSとイメージが違いますが、機能面を見ているとAWSとほぼ変わりません。
![スクリーンショット 2022-12-18 20.46.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/761deedb-765d-0d41-42c4-cd0ff99ae320.png)
![スクリーンショット 2022-12-18 20.46.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/f5f0e03b-dbb9-3535-3e48-036fa81c39ab.png)
![スクリーンショット 2022-12-18 20.46.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/bd2fa67e-7d6d-1e89-dab7-0aee5db28402.png)
![スクリーンショット 2022-12-18 20.46.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/69653557-48ac-47ad-a17e-c8a572a7b00b.png)
![スクリーンショット 2022-12-18 20.46.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/77095651-e7e7-add5-873b-d04af3485ccb.png)


### ALBのリスナールール設定
ここではドメインの設定は考慮しないためリスナーポートを80番にして設定していきます!
[スクリーンショット 2023-01-01 10.31.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/c72205e2-5770-b7c2-c160-c7da8eb53bbc.png)

### サーバーグループの設定
ALBではサーバーグループを指定して、インスタンスを選定しているようです。
![スクリーンショット 2022-12-18 20.48.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/ef6ef13a-a85a-ee71-a95c-cdf0d9bfe8ad.png)

### サーバーグループ設定
今回構築したサーバーを指定してみます。
![スクリーンショット 2022-12-18 20.49.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/fe81f19a-5f0a-0ec3-f15e-b2d3c6d2dd03.png)

### サーバーグループに追加をす流と以下のような手順で追加ができます。
![スクリーンショット 2022-12-18 20.49.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/613a9db2-79c0-8535-3a99-68fcf1e7d557.png)
![スクリーンショット 2022-12-18 20.49.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/b2232503-cfaa-9fa8-25a2-f380938e0150.png)
![スクリーンショット 2022-12-18 20.49.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/5e277b88-1bd7-5fe0-3478-8485f79c0d4d.png)

### これで設定ができましたので、追加を進めていきます。
![スクリーンショット 2022-12-18 20.50.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/34af6ecf-4021-a1ae-1f3c-24dd364cf993.png)

### 最後に設定の確認があります。
![スクリーンショット 2022-12-18 20.50.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/992534fc-8d4d-c792-7e82-eed5f48bba8b.png)

### 内容を確認して問題なければ設定を完了して構築完了です。
![スクリーンショット 2022-12-18 20.50.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/398987ad-4a8e-1ed1-b1f3-e9b196352bdb.png)

### ロードバランサーのDNSにアクセスして、最初に構築したページができていることを確認します。
![スクリーンショット 2022-12-18 20.50.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/94581d08-1e66-3fde-a3d9-59f4dcc4d279.png)

# リソースの破棄
最後に構築したリソースを破棄して終わりです。
リソースの破棄は特に難しいことはなく、通常のイメージ通りでした。

# 所感
- AWSと感覚が違うところは特筆してないが、やはりクラウド間での思想の違いによる細かい違いはありました。
- AWSの感覚で大体は構築できてしまうが、途中ちょっとしたことで調べないといけないことが多くて間取ってしまう部分もあった
- ロードバランサー経由での通信まで設定したが、余力があればHTTPS化もしていきたい
- ドメインを取得してみようという部分もあったが、ドメインを取得するところ(おそらくアリババdomains)が中国語表記しかないので苦戦しそうではあった。

# 次回の記述
HTTPS化や料金の調査なども気になる観点が多数あったので継続して書いてみたいとお思います。