#はじめに
本記事を書いた理由は、
AWSのデプロイができたことに満足しただけで現状の知識は0であった。
そのため、せっかくAWSでインフラ構築できたのだから説明できるくらいの理解度は持っておきたいので復習という目的で書いた。
###構成図
###サーバー環境
【Web サーバー】 Nginx
【アプリケーションサーバー】 Puma
###使用したAWSのサービス
VPC(Amazon Virtual Private Cloud)
RDS(Amazon Relational Database Service)
EC2(Amazon Elastic Compute Cloud)
Route 53
ACM(Certificate Manager)
ALB(Application Load Balancer)
S3(Amazon Simple Storage Service)
IAM(AWS Identity and Access Management)
###月額料金
AWSを使用し始めた月が約1000円
翌月から100円
理由は分かりませんが、アクセスが少ないからだと思っています。
##簡単にAWSサービス説明
VPC(Amazon Virtual Private Cloud)
ユーザー専用のプライベートなネットワーク環境を提供するサービス。
VPCの中に、EC2とRDSを構築する。
EC2(Amazon Elastic Compute Cloud)
インスタンス(仮想マシーン)
EC2ではLinuxやWindowsなど、OSの仮想サーバーを実行できる環境を用意することができる。
RDS(Amazon Relational Database Service)
データベースサービス
Region(リージョン)
データセンター。いろんな地域にリージョンは存在する。
AWSで仮想サーバーを構築するには、どのリージョンに作成するか決める。
日本で運用するなら基本東京リージョン。
サブネット
VPCの中に、小さいネットワークの集まりを作ることができる。
パブリックとプライベートがあり
パブリックはEC2など
プライベートは、外部からのアクセスを遮断したいデータベースなどで使われる
Elastic IP
固定されたIPを割り当てる。
EC2作成時のIPアドレスは、EC2を再起動したりすると固定化されてないため変更される。
なのでElastic IPを紐付ける。
サイトを公開するなら必要。独自ドメイン取得する時も必要。
インターネットゲートウェイ
VPCをインターネット接続できるようにする「出入り口」
ルートテーブル
ネットワークの経路を設定する。
インターネットゲートウェイを使って、サブネットにアクセス可能にしても接続できない。
そこで、ルートテーブルで指定先を明確にする。
セキュリティグループ
インスタンスごとに許可する通信を設定する
Route 53
DNSサービス
DNS(Domain Name System)とは→IPアドレスとドメインを結びつける
IPアドレス=111.111.11
ドメイン=qiita.comみたいなの
ACM(Certificate Manager)
HTTPS化に必要
SSL/TLS サーバー証明書を取得できる
ALB(Application Load Balancer)
HTTPS化に必要
負荷を分散させる役割。
IAM(AWS Identity and Access Management)
AWSアカウント(ルートユーザー)は、AWS全ての操作、クレジットの登録・変更ができる。
ルートユーザのみでは、情報漏洩すれば不正利用される恐れがある。
そこでIAMユーザーを使う。
IAMは、操作が制限されていて必要な操作のみできる。最悪不正アクセスされても最小限で抑えられる。
##インフラ構築理由
###なぜAWS
初学者は「Heroku」を使用したデプロイが多いため、差別化したかった
インフラ設計・構築がどうやるのか気になった
業務で使用されることが多いから
###Route 53
独自ドメイン取得のために、「お名前.com」を利用
Route 53では、取得したドメインをIPアドレスに変換できる
つまり、取得したドメインをALBに結びつけるためにRoute 53を使用
↓ドメインを取得した私のポートフォリオです
https://re-life.work/
###ALB、ACM(HTTPS化)
ACMでSSL/TLS サーバー証明書を取得
SSL/TLS サーバー証明書をALBに結びつけることで、HTTPS化できる。
Route53の設定も色々あります。
SSLサーバー証明書とは、「安心できるサイトです」という証明書
SSL化(HTTPS化)するメリット
・サイトのデータが暗号化される。
・GoogleがSSL化を推奨している。
https://qiita.com/nakanishi03/items/3a514026acc7abe25977
###EC2サブネット2つ用意
ALBでサブネット2つ以上選択する必要があった。
ロードバランサーの可用性を高めるために必要らしく、おそらく負荷を均等にするために必要なのかと思ってます。
###RDSサブネット2つ用意
マルチAZ構成時に必要のため、作成。
AZ(アベイラビリティゾーン)とはひとつ以上のデータセンターのことで
マルチAZは、複数のデータセンターを利用するということとほぼ同じなので、高い可用性を維持できる。
今回は、低コストに抑えたいため冗長化はしてないです。
RDSのバックアップのために、スナップショットは作成済。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html
###S3
S3は高い耐久性、安価、データ量無制限という特徴があるみたいです。
使用理由は、ポートフォリオの画像アップロード機能とバックアップ保存のため
RailsでActiveStorageという機能を使ってパソコン上に画像を保存していたが、本番環境ではクラウドにデータ保存するように設定するため
##終わり
インフラの知識を復習したら、忘れてること・新たに知ったことがあった。
今回は、インフラ構築から2ヶ月ほど経っていたが、アウトプット後は直ぐに復習する方が思い出しやすく効率が良さそう。
また、学習の定着はインプットではなく、思い出そうとした際に定着するらしい。
インプットしながらのアウトプットで学習してきたが、アウトプットの復習は今回が初めてで、復習することで以前より理解度が深まったことから復習の重要性を再確認できた。以上。