AWSの構築したから復習としてまとめておく

こちらの本を参考にしてAWSのインフラを構築してみたので各サービスの概要についてまとめておきます。操作の一つ一つまで丁寧に解説されていたのでとてもわかりやすかったです。

セキュリティ関連

IAM(Identity and Access Management)

  • ユーザーの追加・グループ化・権限管理などを行う管理者・責任者向けサービス

  • ユーザーに対してAWSのどのサービスをいじることができるか細かく指定することができる。

  • サービスの認証のために認証用ユーザーを作成するなどの用途もある。
    (今回では SES の SMTP の認証の際に認証用のユーザーを作成した)

VPC関連

VPC(Virtual Private Cloud)

  • 閉じた仮想ネットワークを提供する。オンプレの社内ネットワークや自宅ネットワーク的なものに相当する。

  • 基本的にリソースはこのVPCの中に置く

  • サブネットを利用することができ、それらを異なるアベイラビリティゾーン(サーバの置かれている場所)に配置することができる。

Internet gateway

  • VPC全体がインターネットとのやりとりをする際の窓口を提供する。

NAT gateway

  • 公開するネットワークがネットワーク外部とやりとりをする際の窓口を提供する。

  • Public subnet に配置される。

  • 高い!いらなくなったら忘れずに停止する!

ルートテーブル

  • サブネットが通信を行う際のルールを定義する。

  • 「どこ」にアクセス・参照する際に「どこ」を経由するかを定義する。
    基本的に同一VPC内のリソースは制限なしに、外部と通信する時は NAT gateway や Internet gateway を経由するように指定する。


EC2関連

EC2(Elastic Compute Cloud)

  • サーバを提供する。OSやメモリ(AMI, Amazon Machine Image)を起動時に指定できる。

  • 管理者がリソース操作のためにアクセスする踏み台サーバとWebサービスを提供するWebサーバを用意するのが一般的。

セキュリティグループ

  • VPC内のリソースへのアクセス制限を定義する。

  • ポート番号や接続元 IP adress などでアクセス制限ができる。
    踏み台サーバは ssh, ロードバランサーは HTTP, HTTPS でのアクセスを許可するのが一般的

Elastic Load Balancing

  • Web アプリのための Application Load Balancer(ALB), 双方向通信のための Network Load Balancer(NLB), 外部セキュリティサービス利用のための Gateway Load Balancer(GWLB) の 3 種類のロードバランサーを提供している。

  • 主な役割としては、複数のWebサーバへのアクセス分散・SSL化・不正アクセス対策である。分散先はターゲットグループ、接続元はリスナーという形で指定する。


データ関連

RDS(Relational Database Service)

  • 一般的なRDBを提供する。種類とかサイズは当然選べる。

  • DB本体である「データベースエンジン」・使用するDBを指定する「パラメータグループ」・監視グループを指定する「オプショングループ」・DBの配置を指定する「サブネットグループ」の4つが主な構成要素である。

S3(Simple Storage Service)

  • 一般的なストレージを提供する。保存するデータ本体をオブジェクト、オブジェクトをまとめたものをバケットという。

  • エンドポイントやIAMロールを利用したアクセス制御が可能であるため、VPC内に配置せずとも様々なアクセス制限に柔軟に対応できる。


公開関連

Route53

  • ドメイン・SSL証明書の取得とパブリックDNS・プライベートDNSの提供を行う。

  • エンドポイントを利用したレコード->VPC内のリソース のようなDNSとHTTPS化が楽で良いなと思った。


パフォーマンス・拡張機能関連

SES(Simple Email Service)

  • メールの送受信や転送などを行う。受信をトリガーにLambdaなどのアクションの発火ができる。当然発火先のサービスへのアクセス権限を発火先側で指定する必要がある。

  • 利用にはDNSへのMXレコードの追加が必要(自分がやった時は自動で追加されることはなかったため少しハマった)

  • 送信にはAPIを利用して送信を行う方法と通常のメールサーバ同様 SMTP を利用する方法がある。 

  • 受信時のアクション指定をするにはルールをまとめたルールセットとその中のルールを指定する必要がある。ルールの処理系統が面白かった。

  • 検証済みでない外部のメールアドレスを扱うには SES をサンドボックスの外に出す必要がある。

ElastiCache

  • 最小単位(Key, Value) のノード、1つのプライマリノードと複数のレプリカノードからなるシャード、シャードを複数個集めたクラスターという単位がある。

  • 色々指定できる(雑)


まとめ

今回結構デカめのシステム構築をしてみましたが、AWSにはとにかくたくさんのサービスが用意されていて本当になんでもできちゃうような感じがしました。金さえあればの話ですが。
あとは、シンプルにクソ大規模なので個人用アプリのデプロイなどをするのにはちょっと手間がかかりすぎるような印象を持ちました。対して、起業や利用者の予測が立ちにくいサービスにはもってこいだと思いました。

この記事が気に入ったらサポートをしてみませんか?