🎉

【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜前編〜

2023/07/03に公開

どうも、プログラミングスクール受講中・実務未経験勢です。

AWSのアーキテクチャ図を見ても何も理解できなかった筆者が、最近勉強してわかったことをまとめます。

インフラ用語の説明もいれつつ、AWSの代表的なサービスを説明するので、同じような境遇の方の役に立てると嬉しいです。

※普段の使用のフレームワークがRuby on Railsなので、もしかしたらRubyやRails特有の言葉を使っているかもしれません。

ーーーーーーーーーーーーーーーーーーーー
後編はこちらからどうぞ。
【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜後編〜
ーーーーーーーーーーーーーーーーーーーー

読んだら幸せになる人

  • Webアプリのコードを書いてはいるが、インフラ周りがわからない人
  • AWSのアーキテクチャ図を見ても何がなんだかわからない人

▼アーキテクチャ図はこういうやつ
Alt AWS archtecture diagram
引用元「AWS のアーキテクチャ図を描きたい ! でもどうすれば良いの ?」[1]

サービス名が英語で略されてるから、初見だとなんのこっちゃわからないのでは。このシリーズ記事を読むと、上の図がわかるようになります。あと、AWSはすごいぞ。怖くないよ。

先輩エンジニアの方々は誤りや誤解を招く表現があったら、ご指摘いただけると嬉しいです。また、この説明も必要では?といったご提案もいただけると喜びます。

Webアプリを動かすためにはサーバーが必要

さて、Webアプリが完成したとします。しかし、それを動かすためにはサーバーを用意する必要があります。

なぜサーバーが必要なのか?何のサーバーが必要なのか?どのように調達・設定・管理したらいいのか?このような導入の手間を限りなく減らし、簡単に必要なサーバーを使えるようにしたのがAWSです。

インフラ用語を理解しながら、アーキテクチャ図を読めるようになりましょう!

基本的にWebアプリは3層からなる

伝統的にWebアプリを3層に分離して説明する3層アーキテクチャという概念(※)があり、各層にその働きに特化したサーバーがあるのが理想的。ちなみに他の概念も存在します。[2]

  1. プレゼンテーション層には、Webサーバー

    • 固定のHTMLやCSS、JavaScriptを返す働きをする。
    • もしプログラムによる処理が必要だったら、APサーバーに「○○をやってください!」と依頼する。
  2. アプリケーション層には、AP(アプリケーション)サーバー

    • 依頼を受けつけたらプログラムで、HTMLやJSONを生成してWebサーバーに返す働きをする。
    • データの新規作成や取得が必要だったらDBサーバーへのアクセスも行う。
  3. データ層には、DB(データベース)サーバー

    • データを保管する働きをする。
      Alt 3-tiered Architecture

念のためにサーバーを増やそう

上記の図にはサーバーが3種のサーバーが1台ずつ計3台あります。

しかし、1台のサーバーをWebサーバー兼APサーバーとして使ったり、APサーバー兼DBサーバーとして使えないのでしょうか?

技術的には可能なのですが、下記の理由からそれぞれの働きに特化したサーバーに分けて使った方がいいようです。

さらに、サーバーの台数を増やすと、災害時にメインのサーバーが壊れても、予備のサーバーでWebアプリを運用できるというメリットもあります。

Alt Redundancy

3層アーキテクチャにMVCモデルを配置するとどうなる?

Webアプリを開発する中で、何度行き来したかわからないModelファイル・View(HTML・CSSファイル)・Controllerファイル。

3層アーキテクチャMVCモデルを配置するとこんなかんじ。[4]
Alt MVC Model

ちなみに、開発環境ではAPサーバーがWebサーバーも兼ねてくれます。しかし、本番環境では大量のアクセスが発生し、APサーバーだけではリクエストを処理しきれないため、Webサーバーが必要となります。

Webアプリをリリースするにはサーバーを購入する必要がある? いいえ、そこでAWS。

Webアプリをリリースするためには、Webサーバー・APサーバー・DBサーバーが必要です。

よし、サーバー買っちゃいますか?

買うとなると、サーバーの比較・検討といった導入の手間、購入費用、サーバーの設定。もしサーバーが災害や事故で故障してしまったら?などと、いろいろと考えるポイントは枚挙にいとまがありません。

しかし、AWSを使うと、インターネットを介してAmazonが提供するサーバーを使わせてくれるので、導入の手間が減ります!

これがAWS(の2023年7月2日時点で241種あるうちのサービスの一部)になります。サービスにより有料・無料とありますが、基本的に従量課金制です。

サーバーの代わりにAWSのサービスを使うと?

AWSのサービスを使うといままでの図がこうなります。
Alt Servers and AWS

Amazon EC2は、AppサーバーとWebサーバーとしての働きをします。仮想サーバーインスタンス)を提供し、Webアプリのコンピューティングをクラウド上で行うことが可能になるサービスです。

とすると、縦に並んだEC2は図の上ではまとめてしまいましょうか。
Alt AWS EC2

Amazon RDSは、DBサーバーとしての働きをします。マネージド リレーショナルデータベースサービスで、クラウド上でデータベース(MySQL・PostgreSQLなど)を使用できます。

最後に

今までの図はこちらから見れます。

では、次の記事からAWSのサービスをもっと見ていきましょう。

ーーーーーーーーーーーーーーーーーーーー
後編はこちらからどうぞ。
【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜後編〜
ーーーーーーーーーーーーーーーーーーーー

脚注
  1. AWS のアーキテクチャ図を描きたい ! でもどうすれば良いの ? ↩︎

  2. MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 ↩︎

  3. なぜAPサーバーをWebサーバーとして利用しないのか ↩︎

  4. イラスト図解式 この一冊で全部わかるWeb技術の基本 ↩︎

Discussion