見出し画像

【読むだけで習得】Django × AWS EC2・ELBでより安定稼働できるサーバーをサクッと構築(Djangoアプリ公開解説②)

1. はじめに

こんにちは、ぎーたかです。

前回の記事に引き続き、Django・AWS EC2インターネット公開する方法を解説します。
いきなりですが、前回の記事の内容を知っておいてもらうと、今回の方法の特徴・違いがわかりやすいです。参考までに下にリンクを貼っておきます。

今回解説する方法では、より”安定稼働”できるサーバーを構成できます。

前回の記事で中心的に紹介したAWS EC2(従量課金型のクラウドサーバー提供サービス)の他、ELB(Elastic Load Balancer、ユーザーアクセスの負荷分散サービス)・RDS(Relational Database System、AWSサービスとの連携機能が豊富なデータベース作成サービス)の設定について深く解説し、堅牢なシステム構築の型・構成の理由を理解できる様になります。

実際の構築手順についても、読むだけで理解できる様に解説していくので、AWSインフラ構築スキルを高めたい方は是非記事を購入して、最後まで読んで皆さんのDjangoアプリを公開に役立ててくださると嬉しいです。

それでは、解説していきましょう!

2. 完成イメージと構成の目的

今回の完成イメージをまずは見てみましょう。
今回は、以下イメージのサーバーシステムを構築していきます。
このイメージを踏まえ、前回のシステムから発展したポイントを押さえて、どういう点で”安定稼働”になるのか解説していきます。

記事で作るサーバーシステム

なお前回は、以下のシンプルなサーバーシステムを立ち上げました。
上のイメージと比較すると、前回は1台のEC2サーバーのみで、インターネットからのリクエスト処理・データベース処理を行なっていたと気づけます。

記事①完成イメージ

「1台にまとまってて分かりやすくていいじゃないか!」と思う方もいらっしゃるでしょう。

しかし、前回記事のシステムの様に1台のサーバーに処理もデータも詰め込んでいる場合、以下のケースで公開しているWEBアプリの稼働が不安定になることがあります。

◎不安定になるケース
・EC2の物理的な故障
・EC2内部の処理実行用のサーバーの動作不良
・EC2内部の処理サーバーとデータベースの接続不良
・EC2内部のデータベースのデータ消失
・用意したEC2のスペックで処理仕切れない大量のアクセス
...etc.

前回の記事で構築したシステムも、初めてのWEB公開という目的においては、1つの型として知っておくことは非常に重要です。
ただ、クラウドエンジニアとしてのステップアップを望むなら、本記事で紹介する可用性の高い(”安定稼働できる”という意味)システム構成・考え方も理解できていることは必須となるでしょう。

前回の記事のシステムと比べ、今回のシステムが優れている点としては、
・責任範囲の細分化(サービス用サーバーとDBサーバーを分けた点)
・各責任範囲の多重系統化高可用性を実現(各サーバーを増築した点)
ができていることにあります。

この工夫により、1つのサーバーの障害発生時に、失う機能を最小限に止め元の状態に戻す復旧作業も最小限で済みます。また、障害発生時にも生きてるサーバーがあれば、見かけ上は正常にサービス運用を続けられる点も特徴です。

取り上げるシステムのメリットがわかったところで、引き続き構築する方法を解説していきます。
読者の想定としては、1台のEC2立ち上げを行える方を想定して手順を書いていくので、若干言葉足らずな箇所があるかもしれません。

もしEC2の立ち上げに不安のある方は、この記事よりも前回の記事を読んでいただく方がオススメです。EC2を使った基礎的なサービス公開の型を持てて、この記事の理解の土壌が整うと思うので、まずは以下の記事の購入を検討してみてはいかがでしょうか。

ここから、有料記事内容になります!
以下のAWSサービスを使って、安定稼働できるDjangoアプリデプロイの方法を解説していきます。各AWSサービスの使い方だけを知りたい方にとっても、ネット検索し続ける時間を節約させられるだけの情報は提供しているので、たったランチ1-2回分と思ってぜひ購入をご検討ください。

◎解説するAWSサービス一覧
VPC...AWSサービス同士を接続するネットワーク管理のサービス
      EC2、RDSを分散したネットワークに配置する設定を紹介
IAM...EC2関連で実行できる機能のコントロールをするサービス
     今回はEC2のターミナルを安全に開く方法を紹介
EC2...レンタルサーバーの起動のためのサービス
      AWS無料枠のマシンを2台起動して安定稼働させる設定を紹介
RDS...他のAWSサービスとの連携に優れたデータベース用のサービス
      常時利用・バックアップの用途でそれぞれの設定方法を紹介
AMI...EC2の複製に便利なサービス
     今回は2台目のEC2立ち上げに利用し、1台目のEC2の複製方法を紹介
ELB...EC2サーバーの負荷分散のためのサービス
     今回は2台のEC2で負荷分散させる設定を紹介

3. 手順① EC2①用のネットワーク作成

まずは、AWS VPCというサービスで、サーバーを配置するネットワークを設定していきます。

ここから先は

12,408字 / 74画像

¥ 1,000

よろしければサポートをお願いします🙇‍♂️ いただいたサポートは、クリエイターの活動資金として使わせていただきます😌 活動を通してえた経験を、また記事として皆さんと共有します👍