ポートフォリオのアプリ　AWS構成図

![jibun-quest.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687490/5c094ebf-3d94-bdac-5bcf-9089f4cd2b87.jpeg)


###構成図を作成する際に行ったこと&学んだこと
**①IPアドレスについて**
**②Laravelの.envファイルの中**
**③digコマンド**
**④RDSが属しているVPC**
**⑤AWSのイメージ**
**⑥Elastic IP**
**⑦IPv6アドレス**
**⑧S3**
**⑨route53**
**⑩IGW(インターネットゲートウェイ)**
**⑪lambda、codedeploy類**
**料金アラートの設定対策**


EC2とRDSの接続がパブリックかプライベートかというのを調べる
Laravelの.envを見に行く
EC2サーバーに入る
プライベートIPアドレスではなくエンドポイントが書いてある

**①IPアドレスについて**
・ec2やRDSなどは基本的にはパブリックIPアドレスもプライベートIPアドレスも両方持ってる
・自分のスマホやパソコンなどの端末も同じでパブリックとプライベート両方持ってる
・プライベートIPアドレスの特徴 192.168.
・家庭用のもルーターとかは外に出てるグローバルIPアドレスが一つと、ルーターより下に繋がってるものにはプライベートIPアドレスが割り当てられる
・192.168.~みたいな感じで、家庭内で使う色々な端末を識別するのにプライベートを使う

プライベートIPアドレスの主な最初の数字

```
192.~
172.~
10.~
```

・プライベートはこの番号を使ってねという感じでこれは国際的に決められてる
・VPC内でのやりとりは下記の図のようにすべてプライベートIPアドレス
![スクリーンショット 2021-11-13 22.52.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687490/f60b78de-ed54-8007-092f-99e33692021e.png)
>グローバルIPアドレスが外部と連絡するための“外線電話”なら、プライベートIPアドレスは“内線電話”といえるだろう。

参考サイト
[『IPアドレス』とは？わかりやすく仕組みや確認方法、個人特定のリスクなど解説](https://time-space.kddi.com/ict-keywords/20200930/2984)

**②Laravelの.envファイルの中**
・Laravelの.envファイルの中のDB_HOSTを見る
・プライベートIPアドレスが書いてあるかと思いきやRDSのエンドポイントが書いてあった


**③digコマンド**
>digコマンドとは、domain information groperの略で、直訳すると「ドメイン情報の手探りツール」といった意味になります。 ネームサーバに対して問い合わせを行い、その応答結果を表示するコマンドで、BINDとともに提供されています。

参考サイト
[＠IT：DNS Tips：digコマンドとは](https://atmarkit.itmedia.co.jp/fnetwork/dnstips/012.html)

digコマンドを打つ

```
dig RDSのエンドポイント
```
```
QUESTION
RDSのエンドポイント　IN　

ANSWER
RDSのエンドポイント　IN　A　172.31.24.164
```

・この172.~~~~がRDSの方に書いてあるかと見に行ったらエンドポイントしか書いてなかったのでAWS側でそういう処理をどこかでしてるのだと思う

参考サイト
[digコマンドの使い方](https://qiita.com/hana_shin/items/e99f64a01f2632b7a719)

**④RDSが属しているVPC**
・IPv4 CIDR 172.31.0.0/16
・/16とか/32はその同じネットワークに何個入れられるかという感じ
・/16だと256×256=1万以上の端末が同じVPCに属せる
・/32だと255個しか割り振れない
・.0.0はここがスタート。ここから.0.1、.0.2という感じで割り振れる
・最大172.31.255.255まで割り振れる
・EC2もRDSも172.31.~~のプライベートアドレスになっているIPv4アドレス。

**⑤AWSのイメージ**
・VPCが土地(進撃の巨人の壁に囲まれた土地をイメージするとわかりやすいかも)
・サブネットが街
・IPv4が住所
・CIDRがIPv4を限定するための技術
・IGWにあけた穴がパブリックIPアドレス
・IGWが壁に穴をあけて作った門
・ルートテーブルが外から来た人を街(サブネット)に案内するためのマップ
・EC2が建物(一軒家よりもビルをイメージした方がいいかな？)
・Elastic IPが建物に与える住所
・RDSがRDSというデータ保管所の建物を作るイメージ
・セキュリティグループがEC2ビルにどんな人が出入りできるかのリスト
・WEBサーバーがビルの受付係
・ポートは部屋番号
・同じVPC(土地)であれば開いてるポート間でもののやりとりができる(IPv4アドレスを使って通信できる。例：EC2のLaravelの.env→RDSとかの接続ができる)
・80番ポートは必ず開いていないといけない
・webサイトとしてやる場合には接続してくる側は必ずそこを通ってくるから、正面玄関みたいなものなのかな
・VPCの中にAZがあるのはAWSが例外。一般的には一つのデータセンターで一つのプライベートネットワークという認識

参考サイト
[インフラについて学んだことを街に例えながら整理する](https://zenn.dev/nozomi_iida/articles/f910b762213aa2)


**⑥Elastic IP**
・VPCの外から貫通してくるもの
・Elastic IPはインスタンスに割り振るからサブネットは基本的に意識しなくていい

**⑦IPv6アドレス**
・サブネットを作らないといけない。プライベートIPアドレスがないから。すべてがパブリック
・サブネットを設定したらそれはパブリックでもあるしプライベートでもある

**⑧S3**
・VPCに属していない
・静的ファイルを保持していた完全にパブリック

**⑨route53**
・名前解決
・ドメイン→Elastic IPに変換するDNSの役割
・変換した後は端末がElastic IPにアクセスしに行く
・PC→route53→PC→EC2にアクセスしに行くというのがwebアクセスのおおまかな流れ

**⑩IGW(インターネットゲートウェイ)**
・PC側のIGWとVPC側のIGWがある

**⑪lambda、codedeploy類**
・VPCには属してないけど同じAWSのサービスでIAMロールを持ってるのでアクセスできる感じ

**⑫料金アラートの設定対策**
・初めて使うサービスはアラートや請求金額をこまめに見ていた方がいい
・対策としてはCloudWatchでアラートを設定しておいて万が一に備えておく

参考サイト
[[AWS]CloudWatchで料金アラートを設定](https://qiita.com/kono-hiroki/items/18eabffd3edd325d4924)