AWS基礎サービスをまとめ2022
リージョン-region
AWSがサービスを提供している拠点(国と地域)
日本はap-northeast-1(リージョン名はアジアパシフィック(東京))
アベイラビリティゾーン(availability zone: AZ)
リージョン内のさらに細かい拠点
1つのアベイラビリティゾーンは複数のデータセンターから構成されている
ap-northeast-1には3つのアベイラビリティゾーンがある(a,c,d )
リージョンとアベイラビリティゾーンの関係性
主なサービス
VPC
Virtual Private Cloudの略
VPCを使うことで、AWS内にプライベートなネットワークを作成できる
自由にIPアドレス(CIDRブロック)を割り当てることができる
サブネット
VPCのさらに内側につくる、EC2インスタンスなどを起動するための領域
VPCに設定したCIDRブロックに収まるCIDRブロックを割り当てる
サブネット作成時にアベイラビリティゾーンを指定する
パブリックサブネットとプライベートサブネットがあり、それらの違いはインターネットゲートウェイから直接アクセスできるかできないかである
アクセスできるのがパブリックで、アクセスできないのがプライベート
ルートテーブル
サブネット内のインスタンスの通信先のルール(サブネットがどこと通信するか)を定めた表のようなもの
各サブネットをルートテーブルに関連付ける必要がある(指定しない場合はデフォルトのルートテーブルになる)
ルートテーブルで、サブネットの通信先にインターネットゲートウェイを指定することで、サブネットがインターネットに接続できる
ゲートウェイ
VPCの内部と外部との通信をやり取りする出入り口
インターネットゲートウェイ
VPCとインターネットを接続するためのゲートウェイ
各VPCに1つだけ取り付けられる
NATゲートウェイ
プライベートIPしか持っていないEC2インスタンスがインターネットと通信できるようにするためのもの
プライベートIPをNATゲートウェイが持つグローバルIPに変換し、外部と通信する
ゲートウェイエンドポイント(VPCエンドポイント)
S3やDynamoDBといったVPCの中に入れられないサービスに、VPC内から接続する際に利用する
EC2サービス
Amazon Elastic Compute Cloudの略でAWSの基幹サービス
仮想サーバを提供する
仮想サーバの1つ1つの実体は「インスタンス」と呼ばれる
ELBサービス
Elastic Load Balancingの略
その名の通りロードバランサーのマネージドサービス
ロードバランサー→サーバへの負荷を分散させるやつ
EC2インスタンスがスケールアウトされて複数ある場合、ELBがクライアントからリクエストを受け取り、それを各インスタンスに分散させる
ELBの種類
Application Load Balancer(ALB)
L7レイヤーでの負荷分散を行う。
Network Load Balancer(NLB)
L4レイヤーでの負荷分散を行う。HTTP以外のプロトコル通信の負荷分散をしたい時に利用する。
RDSサービス
SQL文でデータを操作するデータベースのマネージドサービス
Amazon Aurora、MySQL、MariaDB、PostgresSQL、Oracleなどのデータベースエンジンから好きなものを選べる
データ保存用ストレージはEBS(Elastic Block Store)を使用している
インターネットからの接続はデフォルトでオフになっているため、EC2などの他のAWSサービスから通信することが多い
マルチAZ構成
1つのリージョン内の2つのアベイラビリティゾーンにDBインスタンス(データベースの実体)をそれぞれ配置する構成
1つのアベイラビリティゾーンで障害が発生しても、もう一つのアベイラビリティゾーンが生きていればシステムのダウンタイムを短くすることができる
DBインスタンス作成時にマルチAZ構成を選択したら、あとはAWSが勝手に冗長化してくれて便利
S3サービス
Simple Storage Serviceの略
容量無制限のストレージサービス
保存するファイルにメタデータを追加し、「オブジェクト」として管理する
S3に保存されている各オブジェクトには、RESTやSOAPといったWeb APIでアクセスする
データのバックアップや、静的コンテンツ(HTMLファイルなど)のホスティングとしても利用される
VPCの中には入れられないため、ゲートウェイエンドポイントを通じてVPC内のEC2インスタンスと通信する
Route53サービス
DNSのサービス
ドメイン管理機能と権威DNS機能を持つ
DNSのポート番号が53であることからこの名前が付いている
Amazon Route 53 は、Amazon EC2 インスタンス、Elastic Load Balancing ロードバランサー、Amazon S3 バケットなどの AWS で実行するインフラストラクチャにユーザーリクエストを効率的に接続します。
これはユーザーを AWS 外のインフラストラクチャにルーティングするためにも使用できます。
CloudFront
静的コンテンツをキャッシュして配信するサービス
ロードバランサーの前段に配置し、元のサーバにあるデータをキャッシュしておく(記憶しておく)ことで、次回に同じリクエストが来たらキャッシュしたものを返す
サーバの負荷を軽減できる
利用者から最も近いロケーションからコンテンツを高速に配信することができる
キャッシュの期間は拡張子やURLごとに設定することができる
頻繁にアップデートされるコンテンツはキャッシュを短くし、あまり更新されないコンテンツは長くするなど
Amazon SQS
完全マネージド(ユーザ管理不要)なメッセージキューイングサービス
意外にもAWSの中で最も歴史が深いサービスらしい(サービスインは2004年)
Queue(キュー)とは、筒状の入れ物のようなイメージのもの
キューを利用してコンポーネント間でメッセージのやり取りを行うことで、コンポーネント間をつなぐ
疎結合な(互いに影響を与えにくい)アーキテクチャを実現することができるサービス
Amazon SNS
Notification=通知 のとおり、完全マネージドのプッシュ型の通知サービス
SMS, email, HTTP/HTTPS, モバイル通知などを通じてメッセージを配信する
SQSやLambdaとの連携も可能
メッセージをプロトコルごとに変換する部分もやってくれるので、通知する人はプロトコルの違いを意識せずに配信できる
参考サイト
Amazon SES
Eメールに特化したサービス
SMTPプロトコルやAPIを通じてメールを送受信する
受信したEmailをS3に配信することも可能
参考サイト
アーキテクチャ例:
参考サイト