見出し画像

【読むだけで習得】DjangoアプリをAWS EC2でサクッと公開(AWS記事その①)

1. はじめに

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

今回は、Djangoアプリインターネット公開する方法を解説します。
タイトルの通り、AWSEC2というサービスを使った公開方法を紹介します。読むだけで習得できる様、わかりやすく解説していくのでぜひ最後まで読んでいってください。

読者の皆さんがDjangoアプリを開発するモチベーションは様々だと思います。ただ、どんなアプリも他の人に使ってもらいたいならインターネット公開は必要です。
しかし、アプリ公開はなかなか難しいです。Webアプリ開発の様なプログラムを書く作業とは違って、具体的に公開に使うサービス・ソフト選定やその組み合わせ方の点で、初めての時は誰かに教えてもらわないとできないポイントではないでしょうか。

この記事は、そんな悩みを解決できる様に、DjangoアプリをAWSによって公開する方法をわかりやすく解説していきます。
アプリ公開の手順はもちろん、アプリ公開が実現する理屈、EC2などの使うサービスが担う役割もイメージで理解してもらえるよう解説します。

この記事を読むことで、読者の皆さんはアプリ公開手段・型を1つ持てる様になります。また、その手段を通してWebアプリをインターネットで見れる仕組みがわかります。
まずは見様見真似で構わないので、アプリ公開に必要なシステムを作って、イメージで理解できるようにがんばりましょう。

昨今、AWSなどのクラウドサービスを扱えるスキルは市場価値が高いと言われています。この記事が、クラウドエンジニアとしての一歩を踏み出す一助にもなればと思います。

それでは早速システムのイメージから解説していきましょう。

2. 完成イメージ

まず公開されているWebアプリ仕組み、つまり”なぜ動くのか”を軽く理解しておきましょう。

ローカルPCでの開発で、Djangoサーバーを立てる場合は、

$ python manage.py runserver

開発用サーバーを立てて、ブラウザからlocalhost:8000にアクセスして挙動を確認すると思います。
その際に、ブラウザでページの表示を確認する流れを理解しておきましょう。図で示すと以下のイメージで、吹き出しに書いた①〜③の順序で処理が行われています。

ローカル開発時のページ表示

実は、インターネット公開されたWebアプリを利用する際も、似た流れで表示するページの情報を取得しています。図にすると、以下のイメージです。
Webサービスの仕組み

変化した点をまとめると、
アクセス先URL
・サーバーとの送受信インターネットを通して行われる
・開発用サーバーではないサービス用サーバーが存在する
という点で異なります。

AWSを使ったこの流れの実現の為には、主に3点目の準備にEC2を使って取り組んでいくことになります。1点目、2点目の準備はEC2の設定の中で自然と行われるためあまり意識は必要ないですが、Webアプリを公開する仕組みとして知っておきましょう。

本記事の最終完成イメージを先に示しておきます。
AWS EC2サービス用サーバーに据えて、この流れを構築するときに必要な設定を、先程のイメージよりは詳細に図式化すると以下の図になります。
実際にはEC2サーバー内に示される各要素が役割通りに動作する様、この記事の手順に則り設定を進めていきます。

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

初めてWebアプリを公開する読者の皆さんは、まず上記のシステムを作っていくことをイメージしておいてください。

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

◎解説するAWSサービス一覧
・IAM...EC2関連で実行できる機能のコントロールをするサービス
     今回はEC2のターミナルを安全に開く方法を紹介
・EC2...レンタルサーバーの起動のためのサービス
     AWS無料利用枠の範囲内でカンタンにアプリ公開する設定を紹介

◎解説するサーバー要素
・Gunicorn...Pythonアプリケーションのアプリサーバ
・Nginx...Webサーバ、静的ファイルのリバースプロキシとしても働く
・PostgreSQL...DBサーバ

この記事で紹介する構造をより進化させたシステムの作り方について、別記事で紹介しています!「もっと実用的なシステムの作り方を知りたいんだ!」という読者の方にはぴったりの内容かと思いますので、ぜひそちらも購入検討してみてはいかがでしょうか。

3. 手順① AWSアカウント取得

まずは、アカウント取得しましょう。

ここから先は

11,480字 / 31画像

¥ 1,000

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