[初級] ハマグリ式! AWS の基本的なネットワークまとめ
はじめに
この記事を見つけたけど、後で見ようと思ったそこのあなた!
ぜひ下のボタンから、ハッシュタグ #ハマグリ式
でツイートしておきましょう!
こんにちハマグリ。貝藤らんまだぞ。 今回は AWS および Terraform の初級者向けに「ハマグリ式! AWS の基本的なネットワークまとめ」をご紹介します!
初級者って?
ハマグリ式では、下記のようにレベルを設定しています。
- 初級者:初めてクラウドサービスを利用する人で、基本的な操作(例:ファイルの保存や、サーバーの起動)をインターフェースを通じて行うことができます。また、シンプルなセキュリティルールの設定や、一部の問題のトラブルシューティングに対応できます。
- 中級者:より深い知識を持ち、コードを用いて操作を自動化したり、より複雑なタスク(例:自動でサーバーの数を増減させる)を行います。また、より高度な監視や、全体のシステム設計と実装について理解があります。
- 上級者:幅広く深い知識を持ち、大規模で複雑なシステムを設計、実装、維持する能力があります。最先端のテクノロジーを活用し、安全性、耐障害性、効率性を最大化するためのソリューションを提供します。
なお上記は ChatGPT による出力ですが、この記事でほかに生成 AI によって出力された文章はありません。ただし、記事のドラフトには生成 AI を利用しています。
ハマグリ式って?
貝藤らんまが作成するブログ記事のブランド名です。あまり気にせず読み飛ばしてください。
何を書くの?
以下の通りです。
- この記事で書くこと
- AWS のネットワークに関連するサービスの一部
- 詳解するサービスの基本的な内容
- この記事で書かないこと
- AWS のサービスの詳解
- AWS のサービスの応用
- サンプルコード
- 構築のベストプラクティス
免責事項
- この記事に書かれていることは弊社の意見を代表するものではありません。
- この記事に書かれていることには一定の調査と検証を実施しておりますが、間違いが存在しうることはご承知おき下さい。
AWS の基本的なネットワークまとめ
AWS の基本と言えばネットワーク、特に VPC ですが、商用で構築をするときには「S3 は VPC ゲートウェイを使うべき」といった話が平気で出てきます。
調べていくと、AWS にはネットワークに関するサービスや機能が星の数ほどあります。
この記事を読んで、ネットワークへの苦手意識を克服しよう!✨
まとめ図
今回説明するにあたって整理した図を先に掲載します。
この中にあるサービスやリソースについて、いくつか簡単に紹介していきます。
VPC (Virtual Private Cloud)
言わずもがな、完全サーバレスアーキテクチャでもない限り AWS の核となるサービスです。
VPC 自体の設定はほぼ無く、VPC の中に作成するリソースによってネットワークの性能やセキュリティの高さが変わってきます。
サブネット
VPC 内でネットワークを複数に分割し、隔離されたネットワーク空間を作成します。
一般的に、外部からリーチできるパブリックサブネットと、VPC 内のリソースを経由しないとリーチできないプライベートサブネットを用意します。
パブリックかプライベートかは、サブネットに紐づけられたルートテーブルによってどのリソースに向けられるかによって決定されるので、サブネットの機能として選ぶものではありません。
EC2 (Elastic Compute Cloud)
これも AWS のサービスの中でもっとも基本的なサービスのひとつです。昨今はコンテナ化が進んでいますが、未だに採用数は多いでしょう。
ただし今回の記事には直接関係しないので、説明は割愛します。
ENI (Elastic Network Interface)
EC2 インスタンスにアタッチされるネットワークインターフェイスです。
セキュリティグループは厳密には ENI に紐づけられています。
ルートテーブル
VPC 内のトラフィックの流れを制御するためのルールが定義されています。
サブネットと紐づけることによって、サブネットの役割を決定づけます。
トラフィックをインターネットゲートウェイに向ければパブリックサブネットに、NAT ゲートウェイに向ければプライベートサブネットになります。
AWS のサービスと通信する場合、外部ネットワークを経由しないようにすることでセキュリティ向上や費用削減に繋がります。その設定もルートテーブルで実施します。
NAT ゲートウェイ
プライベートサブネットからのインターネット接続を仲介するマネージドサービスです。かつては NAT インスタンスという小さい単位のサービスも存在していました。
誤解されがちですが、ゲートウェイ自体はパブリックサブネットに配置されます。
インターネットゲートウェイ
VPC をインターネットに接続するための一般的なゲートウェイです。
基本的には作成され、パブリックサブネットのルートテーブルからここへ向けられます。
VPC エンドポイント
先述の
「S3 は VPC ゲートウェイを使うべき」といった話が平気で出てきます。
で言及したサービスです。
ゲートウェイ型とインターフェイス型があり、インターフェイス型は後述する PrivateLink の部品のような立ち位置です。
ゲートウェイ型は AWS の一部のサービス(現時点では S3, DynamoDB のみ)への接続先となります。
インターネットを経由しないプライベートアクセスが可能になり、セキュアでローコストな通信ができます。
S3 (Simple Storage Service)
AWS の基本的なサービスのひとつである、オブジェクトストレージサービスです。
「イレブンナイン」で知られる耐久性と拡張性に優れたストレージを提供します。
使用頻度に応じた細かい課金体系の選択も可能です。
DynamoDB
フルマネージドな NoSQL データベースサービスで、高速な読み書きが可能です。
大規模なアプリケーションにも採用された実績の多い高性能なデータベースです。
VPC ピアリング
各 VPC でリクエスタとアクセプタを作成することで VPC 間の接続が可能となるサービスです。
異なるリージョンの VPC 間でも利用でき、プライベート IP アドレスを使用して接続できる手軽に導入しやすいサービスです。
PrivateLink
インターフェイス型 VPC エンドポイントを作成することによって、接続先の VPC エンドポイントサービスとプライベートな接続を行うことができるサービスです。
VPC エンドポイントサービスは接続先が AWS サービスの場合自動で作成され、接続先が VPC の場合は VPC の所有者側で自ら作成する必要があります。
インターフェイス型 VPC エンドポイントは、ゲートウェイ型と違ってルートテーブルへの紐づけは不要です。(厳密にはサブネットへの紐づけで代用します。)
使用に料金が発生するので S3 や DynamoDB は VPC エンドポイントを利用するとよいでしょう。
一方で NAT ゲートウェイよりも通信料金が少ないので、大量に通信が発生するならコスト削減につながります。
また VPC ピアリングを併用すると異なるリージョンでも PrivateLink が利用できます。
-
参考
Direct Connect
AWS とデータセンターやオフィス間の専用線を構築するサービスです。
VIF (Virtual Interface)
Direct Connect を通じて AWS とオンプレミス環境を接続するための仮想ネットワークインターフェイスです。
目的に応じてパブリック VIF やプライベート VIF を選択します。
Transit Gateway
VPC やオンプレミスのネットワークを集約して管理するハブのような役割を果たします。複雑なネットワーク構造を単純化し、一元管理を可能にします。
よほど NAT ゲートウェイが多ければ集約してコスト削減もできますが、ハブとしての役割がメインでしょう。
まとめ
手軽なところだと、VPC エンドポイントは積極的に使うようにするとよさそうだな。
まとめは ChatGPT に箇条書きでお願いしようと思います。
- AWSのVPCを利用することで、安全でコントロール可能なクラウドベースのネットワーク環境を作り出すことができます。
- プライベートとパブリックのサブネットを適切に設定し、ルートテーブルでトラフィックを適切に誘導することで、リソースへのアクセス性とセキュリティを両立させます。
- VPCエンドポイントやDirect Connectを活用することで、インターネットを介さないセキュアな接続を実現し、パフォーマンスの向上とコスト削減に寄与します。
ぜひ下のボタンから、ハッシュタグ #ハマグリ式
で感想をツイートしてください!
今後ともハマグリ式をどうぞよろしくお願いいたします!