tawara's blog

雑記。個人の見解です。

聞いたことあるAWSのサービスをざっくり調べてみた

こんにちは、たわらです。

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はユーザーが用意。

これによくまとまってる。ちと読みづらいけど。 qastack.jp

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つがサーバーダウンしても大丈夫にするため。

インターネットゲートウェイを作成する

  • VPCAWS内での専有領域なので、外部と接続をするには、窓口が必要。

ルートテーブルを作成する

  • 通信に関するルールブックのような概念。サブネット単位で設定が可能。IPアドレスによって通信の経路を変える。パブリックサブネットには宛先が振当てられない。

セキュリティグループを作成する

  • セキュリティのルールを設定する。適応されたグループごとに通信の許可/拒否ができる。各サブネットを囲うファイアウォール

EC2とは?

  • Amazon Elastic Compute Cloud。仮想サーバー。仮想サーバーの実態をEC2インスタンスという単位で構築する。

  • webサーバー層  webブラウザからのアクセス要求を処理。必要に応じてWebアプリケーション層へリクエスト要求する →ミドルウェア : Nginx を使用するサーバー

  • webアプリケーション層  webサーバーからのリクエストをもとに、バックエンドのRubyなどを実行したり、データベースへアクセス。 →ミドルウェア : Puma を使用するサーバー

  • データベース層  データの保持。 →ミドルウェア : MySQL を使用するサーバー

Nginxとは?

  • 大量のアクセス処理に特化したwebサーバー
  • Pumaのみでもアプリケーションは動かせるが、ローカルの場合アクセスが自分ひとりだから
  • Apacheの改善により開発
  • EC2にインストールして起動する

Elastic IPアドレス (EIP)とは

Capistranoとは?

  • デプロイ先のEC2インスタンスSSH接続して指定されたコマンドを実行してくれる。EC2にSSH接続するよりは手間がかからない。

Route 53 とは?

S3 とは?

  • Simple Storage Service。オブジェクトストレージサービス
  • 保存したぶんだけ課金。
  • S3の料金 = ストレージに保存している容量 + S3に対するリクエスト(GET、PUTなど)数 + データ転送料金
  • 柔軟なストレージ機能,耐久性と可用性の高さ,低コストによる運用が可能,静的ファイルの配信,豊富なツールや機能

ACMとは?

  • AWSが提供しているSSL証明書
  • SSL(Secure Sockets Layer)とは、インターネット上におけるウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組みのことです。
  • 無料、ワイルドカード可、自動更新