聞いたことあるAWSのサービスをざっくり調べてみた
September 23, 2020
こんにちは、たわらです。
Heroku と AWS の違いがよくわからないし、EC2 って聞いたことあるけどよく知らないので、ざっくり調べてみました。
Heroku
- アプリケーションの開発から実行、運用までをクラウド上で管理できる PaaS(サービスとしてのプラットフォーム)
- PaaS とは、インターネット上でハードウェアや OS などを提供するサービス。低コストかつ迅速な開発がメリット。
- Java から Go まで、もちろん Ruby も公式サポートしている
- スマートコンテナ「dyno」がアプリの調整や管理をしてくれる
- 構築が簡単
- Network/Hard Ware/OS/Middle Ware までを提供するクラウドサービス。Application はユーザーが用意。
AWS
- 主要な言語のサポート
- 使用方法に応じて料金体系が変わる
- laaS。サービスとしてのインストラクチャー。
- Network/Hard Ware/OS までを提供するクラウドサービス。Middle Ware と Application はユーザーが用意。
これによくまとまってる。ちと読みづらいけど。 [https://qastack.jp/programming/9802259/why-do-people-use-heroku-when-aws-is-present-what-distinguishes-heroku-from-aws:embed:cite]
Heroku はアプリだけ作ればデプロイできるけど、AWS を利用する場合は自分で EC2(?)などアプリを載せる層をカスタマイズ/選択をする。 だからユーザーがより現実に対応した環境を整えられる、という感じですね。
AWS の用語
Rails をデプロイするのに、AWS の EC2 インスタンス環境構築?をする必要がある。 構築に必要なのは「web3 層構成」。
web サーバー層
web ブラウザからのアクセス要求を処理。必要に応じて Web アプリケーション層へリクエスト要求する
web アプリケーション層
web サーバーからのリクエストをもとに、バックエンドの Ruby などを実行したり、データベースへアクセス。
データベース層
データの保持。 これらを EC2 インスタンスのなかに構築する。
VPC の作成
- Virtual Praibate Cloud。自分専用の領域。サブネットや EC2 などはこの領域の中に作成する。
サブネットの作成
ネットワークのなかのネットワーク
このサブネットは外部との通信をする(パブリックサブネット)/VPC 内だけの通信にする(プライベートサブネット) などの制御するため
Rails を置く EC2 はパブリックサブネット、RDS(Relational Database Service)は EC2 からのアクセスのみなのでプライベートサブネット。
アベリラビリティゾーンとは?
サーバーを物理的に置いているデータセンターについて、各リージョンで地域ごとにデータセンターを分けた集合の単位。
RDS では異なる AZ を持つ複数のサブネットを設定したサブネットグループを登録する。1つがサーバーダウンしても大丈夫にするため。
インターネットゲートウェイを作成する
- VPC は AWS 内での専有領域なので、外部と接続をするには、窓口が必要。
ルートテーブルを作成する
- 通信に関するルールブックのような概念。サブネット単位で設定が可能。IP アドレスによって通信の経路を変える。パブリックサブネットには宛先が振当てられない。
セキュリティグループを作成する
- セキュリティのルールを設定する。適応されたグループごとに通信の許可/拒否ができる。各サブネットを囲うファイアウォール。
EC2 とは?
Amazon Elastic Compute Cloud。仮想サーバー。仮想サーバーの実態を EC2 インスタンスという単位で構築する。
web サーバー層 web ブラウザからのアクセス要求を処理。必要に応じて Web アプリケーション層へリクエスト要求する → ミドルウェア : Nginx を使用するサーバー
web アプリケーション層 web サーバーからのリクエストをもとに、バックエンドの Ruby などを実行したり、データベースへアクセス。 → ミドルウェア : Puma を使用するサーバー
データベース層 データの保持。 → ミドルウェア : MySQL を使用するサーバー
Nginx とは?
- 大量のアクセス処理に特化した web サーバー
- Puma のみでもアプリケーションは動かせるが、ローカルの場合アクセスが自分ひとりだから
- Apache の改善により開発
- EC2 にインストールして起動する
Elastic IP アドレス (EIP)とは
- AWS で使える固定 IP アドレス
- EC2 インスタンスに紐づけて利用し、紐づけられたインスタンスが固定 IP を持つ。どこにも割り当てない EIP には料金が発生する。
- 「パブリック IP アドレス」は無料で利用できますが、EC2 インスタンスを開始するたびに別の IP アドレスに代わってしまいます
Capistrano とは?
- デプロイ先の EC2 インスタンスに SSH 接続して指定されたコマンドを実行してくれる。EC2 に SSH 接続するよりは手間がかからない。
Route 53 とは?
- 新規ドメイン名の登録や、ドメインの DNS レコードの管理が行えるサービス
- ドメインから IP アドレスを参照するためサービス
- DNS が使用するポート番号が 53 番
- 落ちない、早い、安い らしい
S3 とは?
- Simple Storage Service。オブジェクトストレージサービス
- 保存したぶんだけ課金。
- S3 の料金 = ストレージに保存している容量 + S3 に対するリクエスト(GET、PUT など)数 + データ転送料金
- 柔軟なストレージ機能,耐久性と可用性の高さ,低コストによる運用が可能,静的ファイルの配信,豊富なツールや機能
ACM とは?
- AWS が提供している SSL 証明書
- SSL(Secure Sockets Layer)とは、インターネット上におけるウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組みのことです。
- 無料、ワイルドカード可、自動更新