AWSでwebサービスを構築する上で最低限知っておきたいネットワークの基礎知識
AWSではネットワークの知識は欠かせません。
インターネットで世界基準で定められてる通信規約としてOSI参照モデルとTCP/IPプロトコル・スイートという規約があり、これを網羅して学習すればPC間でどうやって通信しているのか、ネットワークの構造は理解できます。
今回はTCP/IPプロトコル・スイートの中でwebサービスを構築するにあたり、知っておかないと苦労するものを説明します。
OSI参照モデルとTCP/IPプロトコル・スイートの詳しい解説はこの記事ではしませんが、その中で何を主軸に置いて勉強すればいいのかは分かるかと思います。
オレンジ色に塗られている部分がAWSで特に意識する部分です。
TCP/IPのアプリケーション層ではWebサーバーやWebプログラム担当範囲でAWSに任せる担当ではありません。(唯一どのプロトコルをWebサーバーに投げるかというのを意識する必要があるのでプロトコル名だけは知る必要があります)
ネットワークインターフェース層はハードウェアに責任を負わせる部分でAWS側でよしなになってくれるので知っておく必要はありません。
AWSのサービス毎に説明します。
VPC
AWSアカウント内に自分だけのネットワークを構築するサービスです。 主にインターネット層での知識が必要になります。 VPC本体やサブネットの領域の割り当て、ルートテーブル、インターネットゲートウェイ・NATゲートウェイのルーティングなど、一番ネットワークの知識が要求されるサービスです。 IPとサブネットマスクの知識、CIDR表記等を知らないと構築するのは難しいです。
Route53
DNSの登録や管理をするサービスです。 こちらも主にインターネット層の知識が必要になります。 DNSの登録、DNSレコードセット、DNSのマウントなどIPの知識と共に、DNSレコードの意味を理解してないと難しいかと思います。
ELB、ALB
ロードバランサー(負荷分散システム)を提供するサービスです。 Webサービスの場合ALB(Application Load Balancer)を使うことになると思います。 こちらはインターネット層とトランスポート層とプロトコル名の理解が必要になります。 リスナーからターゲットのポートを指定したりなど特にトランスポート層の知識が必要になります。 (ECSなどのコンテナへ接続したい場合、動的ポートマッピングという少し特殊な設定をしたりします)
EC2、RDSなどの各インスタンス
ネットワーク内でいうPC本体を提供するサービスです。 RDSはサービスとして抽象化されていますが実体はPC内のソフトウェアなのでIPアドレス自体は持っています。 webサーバー等でALBからのリクエストを受け付けるのでトランスポート層とプロトコル名の理解が必要になります。 SSHでインスタンスに接続したりもします。
以上です。
AWSのサービスを使うにあたり、ネットワークの知識が足りてないと構築に手も足も出ない反面、知っているとすんなりサービスを理解できたりするのでやはり何かネットワークを体系的に学べる書籍等で勉強してから構築した方がいいかと思います。
0からネットワークを理解するなら以下のスラスラわかるネットワーク&TCP/IPのきほんがイラスト付きでわかりやすいと思うので是非読んでみてください。(自分はこれだけでは物足りなかった&もっと深掘りをしたいと思ったので次回はマスタリングTCP/IPを購入予定です)
- 作者: リブロワークス
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/03/17
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 2012/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 34回
- この商品を含むブログ (37件) を見る