はじめに
自分でインフラ構成図を作成しましたが、
それぞれの箇所がどんな役割を持っているのか
わからなかったので記事にしてみることにしました。
目的
- インフラ構成図の構成を知ること
インフラ構成図概要
- ロードバランサーとAWS Certificate Managerでhttps化
- GitHubアクションによる自動デプロイ
- データベース:MySQL
- アベイラビリティゾーン2つ
- サブネット3つ
1.Internet Gateway
- VPCと外部のインターネットをつなぐための接合点。
- VPC内のシステムがグローバルIPを使えるようになります。(外部のインターネットとやりとり可能になる)
2.ルーティング
- AWS上の仮想的なネットワーク環境。
- ルートテーブルを作成することで、「どこに接続できるか」を設定できる。
3.ロードバランサー
- 負荷分散装置のこと。
- Webサイトへのアクセス集中やサーバー故障などの場合に活躍。
- アクセス集中した場合でも負荷を分散して接続を安定させる。
- 種類がある
4.VPC
- AWS上に構築する仮想ネットワーク。
- ユーザー専用のプライベートなクラウド環境を提供するサービス。
- 複数作成できる。
5.サブネット
- VPCによって作られているCIDRブロックを分割したネットワーク群のこと。
- VPCのIPアドレス範囲の中で、さらに小さな仮想ネットワークを作成する。
- ネットワークをサブネット化しないと余計な通信が発生してしまう
6.アベイラビリティゾーン(AZ)
- リージョンよりも小さな区分けのこと。
- リージョンは地域のこと。AWSは世界中にサーバーを持っていて、その一つひとつの地域を指す(日本は東京リージョン)
- 障害対策の役割を担っている。
- 現在は3つある。(2021/09/25)
- 1つのAZに障害が発生しても、他のAZで対応できる。
7.EC2
EC2に関してはこちら
A.Nginx
- Webサーバーの一種。
- ユーザーからリクエストをもらって、そのリクエストに対して何らかの処理を行なって返すもの。
- 高速、大量処理が得意、設定がカンタン
B.Puma
- アプリケーションサーバーの一種。
- アプリケーションを動かす役割をもつ(Ruby on Rails)
ユーザー → Webサーバ → アプリケーションサーバ → アプリケーション → Webサーバ → ユーザーの順でリクエストに対して反応している。
8.RDS(MySQL)
- RDSはAWSのサービスのひとつ。
- データベース管理をするシステム。
- MySQLがデータベース
- データの保存管理をしている。
9.GitHub Actions
- GitHubのCI/CDツールのひとつ。
- GitHubに存在するリポジトリでワークフロー(ビルド、テスト、リリースなど)を簡単に自動化できる。
- CI/CDツール
- CI:継続的にソースコードをマージしたタイミングでテスト等を実行する仕組み。
- CD:本番環境へデプロイを行う仕組み。