AWSを初めて勉強した
まえ書き
インターン先でAWS勉強会に参加した。専門用語を専門用語で解説するようなわかりづらい領域だったので、例えを用いて解説を残しておくことにした。あくまで説明はイメージの話なので若干の相違はあるかも。
AWSとは?
たくさんのIPアドレスを所有する巨大不動産会社。
VPCとは?
AWSから借りてきたマンションのこと。

サブネットとは?
マンションを模様替えすること。PublicとPrivateに自身でカスタマイズ可能。つまり、マンションの自由な場所をラウンジや踊り場といった公共スペースと個人宅といったスペースに分けた場所。なんと、このマンションではどこからでも外に出ることができる!
ルーターとは?
ルーターとは、自分のPrivate IPから別のネットワークに接続する必要がある場合、リクエストを受け付け、適切なゲートウェイに繋ぐ役割を持った装置
ゲートウェイとは?
自分のPrivate IPからインターネットあるいは別のPrivate IPに接続するための装置
-
インターネットゲートウェイ
→ Public IPアドレスを変換し、インターネットに接続
-
NATゲートウェイ
→ Private IPアドレスを変換し、インターネットに接続
-
VPNゲートウェイ
→ Private IPアドレスとPrivate IPアドレスの間にVPN接続を確立

クライアントとは?
行なってほしい作業(リクエスト)を発出する元。各サービス。今回の例で言えば住民あるいは、動力源を妖精さんに頼る家電。
AWSではどうやって作業が行われているの?
基本は以下の概略図のような関係がある。

各用語の説明は以下の通り。
ALBとは?
一度、クライアントからリクエストを聞き入れるプロキシサーバー(代理サーバー)の役割を担うとともに以下のような手順で、効率よく作業を割り振る装置(Application Load Balancer)。今回の例で言えば大家さん。この大家さんは妖精さん派遣業者その名もECSの各チームの位置情報が入った住所録のようなものを所持しており、選択した部署の中から暇そうなチームを選択して作業を依頼する。
ECSとは?
作業を行うサーバーやそのためのリソースなどを統括している装置。例で言うなら妖精さん派遣業者のこと。
TGとは?
ECSの配下に置かれており、各々で行われる作業の種類や規模などで分けられたグループのこと(Target Group)。例で言うならECS株式会社の部署。
ECSタスクとは?
TGの配下に置かれており、実際に作業を行うEC2やコンテナなどが含まれている。例で言えば、各部署に設置されているチームである。このチーム単位で作業が行われる。また、同じTGのなかに設置されたECSタスクであれば、そこに配属されているEC2やコンテナなどの数、機能、規模全て同質である。

EC2とは?
実際に作業を行うサーバーのこと。例で言うなら実際に働く妖精さん(社員)。EC2は各ECSタスクに所属しており、そのタスクが選択されると働く。
コンテナとは?
実際に作業を行うために必要なリソースのこと。例で言うなら実際に働くときに妖精さんが使うお道具ポシェットのようなもの。備品。
ECRとは?
コンテナが集まっているところ。例で言うなら、備品カタログのこと。
具体的なリクエスト処理の流れ
実際にクライアントからリクエストが来た場合、以下のように処理が行われる。

- クライアントからALBにリクエストが飛ぶ
- ALBはリクエストの内容から適切なTGを選択する
- ALBはさらにそのTGの中で稼働中でないECSタスクを選択する
- 選択したECSタスクの位置情報を手元のECSタスクの住所録から取得する
- 実際にECSタスクに作業を依頼する
- ECSタスクが稼働する
- リクエスト内容完了
Discussion