デプロイに使用したAWSのサービスとインフラ知識のまとめ

ポートフォリオのデプロイに使用したAWSのサービスとその周辺のインフラ知識についてまとめました。

サービス一覧、

- VPC
- RDS
- EC2
- Route53
- IAM
- S3
- ACM
- ALB

# VPC

### VPCとは？
- Virtual Private Cloudの略で、AWS上に仮想ネットワークを作成できるサービス。
- AWSの広いネットワークの土地の中で自分だけの空間を作成できる。

### リージョン
- AWSの各サービスが提供されている地域のこと。
- AWSのサービスを使う場合まずリージョンを設定し、リージョン毎にサーバーを作っていく。

### アベイラビリティゾーン
- 独立したデータセンターのこと。
- どのリージョンにも複数存在している。理由は災害が起きて１つのアベイラビリティゾーンが止まっても他のアベイラビリティゾーンを使えるから。

### サブネット
- ネットワークを分割して作った小さなネットワークのこと。
- サブネット内で1つをインターネットからアクセス可能なWebサーバー、もう1つをアクセスできないDBサーバーのように複数分けて作ることができる。
- 複数のアベイラビリティゾーンの中にそれぞれサブネットを作ることで冗長性を高める。

### IPアドレス
- ネットワーク構築の際には、まずIPアドレスの範囲を決める必要がある。
- IPアドレスとは、インターネットの住所で重複なしの32ビットの整数で8ビット4つの組に分け10進数で表現されている。
- IPアドレスの種類は、インターネットに接続する際に使用するパブリックIPアドレスと、インターネットの接続には使用しないプライベートIPアドレスがある。
- IPアドレスはネットワーク部とホスト部に区分けすることで範囲を表記してる。
- CIDR表記 IPアドレスの後ろに「/」を書きその後ろにネットワーク部が先頭から何ビット目なのかを表記する。
例：　192.168.128.0/24 (ネットワーク部が24ビット目)

# EC2
### EC2とは？
- Elastic Compute Cloudの略でAWSクラウド上の仮想サーバー。
- インスタンスとはEC2から立てられたサーバーのこと。
- EC2インスタンスの作成に必要なもの
    - AMI
        - インスタンス起動に必要なOSのイメージ、サーバーのテンプレート。
    - インスタンスタイプ
        - サーバーのスペックを定義したもの。 例 : m5.xlarge、スペックにより値段が変わる。
    - ストレージ 
        - サーバーにつけるデータの保存場所
        - EBSとインスタンスストアの2種類ある

### SSH
- 通信内容が暗号化された遠隔ログインサービスでEC2にログインする際に使用する。
- SSHでログインすることでサーバーと自分のPCを安全に繋いでくれる

### 公開鍵認証
- サーバーの作成者だけがログインできるようにEC2ではSSHログイン時に公開鍵認証を行なっている。
- 公開鍵と秘密鍵を用いてログイン認証を行う仕組み。
- サーバーの作成者（秘密鍵を持っているユーザー）だけがログインできる。
- イメージは南京錠で閉めるのは誰でもできるけど開けるには鍵が必要。

### ファイアウォール
- ネットワークを不正アクセスから守るために必要な通信だけ通してそれ以外は通さない機能
- AWSではセキュリティグループがファイアウォールの役割を担っている。

### Elastic IPアドレス
- EC2インスタンスのIPアドレスは、起動、停止すると別のIPアドレスが割り当てられてしまう。
- Elastic IPアドレスを使用することでIPアドレスの固定ができる。
- インスタンスを削除するまでずっとそのIPアドレスを使用できる。

# RDS
### RDSとは？
- フルマネージドなリレーショナルデータベースのサービス。
    - AWSが構築や運用の管理をしてくれているのでRDSを使うことでコア機能の開発に注力できる。 

- MySQLやPostgreSQLなどのデータベースが利用可能。
- RDSの特徴として、高い可用性、パフォーマンスの向上、運用負荷の軽減などがある。


# Route53

### ドメイン
- インターネット上に存在するコンピューターやネットワークを識別するための名前。
- IPアドレスでは覚えにくいので、example.comのような形式で表すインターネット上の住所。

### DNS
- ネームサーバーとフルリゾルバから構成されているドメインの管理システムで、ドメイン名をIPアドレスに変換する。
- ネームサーバー
    - ドメイン名とそれに紐ずくIPアドレスが登録しているサーバー。電話帳のようなもの。
- フルリゾルバ
    - 紐付くIPアドレスをネームサーバ-に問い合わせて、色々なネームサーバーに聞いて調べて教えてくれるサーバー。

### Route53とは？
- AWSのDNSサービス。ネームサーバーの役割を果たす。
- フルマネージドサービスで運用が楽。
- ドメインの登録、サーバーの稼働状況をチェックするヘルスチェク、IPアドレスとドメインの紐付けのルーティングを決めるルーティングポリシーなどの機能がある。

# IAM
### IAMとは？
- AWSのサービスを利用するユーザー権限を管理するサービス。
- 各AWSリソースに対して別々のアクセス権限をユーザー毎に付与できるので、セキュリティを高めることができる。

### ポリシー
- アクセス許可の定義。
- 「どのAWSサービスの」「どのリソースに」「どんな権限を」「許可するかしないかを」定義できる。


### ユーザー
- 個々のアカウントのことで、一人一人に一つ一つのユーザーを作る。

### グループ
- IAMユーザーの集合体で、複数のユーザーにアクセス権限を付与。
- 毎回ユーザー一人一人にポリシーを定義するのは手間だからグループを作りグループにポリシーを割り当てるので、まとめてポリシーを割り当てることができる。

### ロール
- 一時的にアクセスを許可したアカウントを発行できる。

# S3
### S3とは？
- 安価で耐久性の高いAWSのクラウドストレージサービス。
- S3を使うことでデータ容量を気にすることなく保存することができる。
- 画像などの静的コンテンツの配信、ログの出力先、静的なWebサイトをS3から公開するなどに利用される。

### CloudFront
- PCとS3の間の仲介に入り高速にコンテンツを配信するサービス。
- CloudFrontはPCからS3にリクエストがあった場合、コンテンツを取得してキャシングを行いキャッシュから配信するので、高速化されS3の負荷が減る。

# ACM

### ACMとは？
- AWS Certificate Managerの略で、AWS上のSSL証明書発行サービス。
- 簡単かつ安価にSSLの対応、そしてSSL証明書の更新ができる。

### SSL証明書
- インターネット上でやりとりされるデータの「盗聴」「なりすまし」を防止するための暗号化プロトコル。
- SSLを使うことで送受信される情報を第三者に読み取られないように暗号化することができるので、
セキュリティの向上とアクセス権限をもたない人が、サーバーや情報システムの内部に侵入しないようにできる。

# ALB 

### ALBとは？
- Application Load Balancerの略。複数のEC2インスタンスにアクセスを振り分けることで負荷分散でき高い可用性を実現できる。
- ACMを利用したSSL/TLS証明書の管理などセキュリティ面が充実している。



# 参考

https://www.udemy.com/course/aws-and-infra/