Lightsail + NGINX + uwsgi + flaskでサイト構築


AWSのLightsailを使ってNginx+uwsgi+flaskでwebサーバを立ち上げる方法の解説です。

Lightsailでインスタンス立ち上げ

まずAWSにログインしLightsailのコンソールに行きます

1) インスタンス選択
1
Lightsailのコンソールからcreate instanceをクリック
2

インスタンスの種類を選択します。ここではOS Onlyを選んでUbuntu20.04を選択します。
3
Ubuntuに直接入って作業することが多いのでSSH Keyをダウンロードしておきます。
4
インスタンスの種類を選びますが、あとから簡単にアップグレードできるので最初は一番小さなものでよいと思います。

2) 固定IP割り当て
5_2



3) DNS登録
本格的にサイトを立ち上げる場合はDNS登録が必要かと思いますがここでは割愛します。


4) Ubuntuへの接続
SSHでUbuntuへ接続する際は下記のように先ほどダウンロードした鍵ファイルを-iオプションで指定して接続します。
ssh -i ./LightsailDefaultKey-ap-northeast-1.pem ubuntu@54.95.xxx.xxx

Ubuntuの中の構築

Ubuntuが立ち上がって接続できるようになったところで、Ubuntuの中の構築をしていきます。

Dockerインストール

こちらの内容を参考にインストールします。

sudo apt update
sudo apt upgrade
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io


Dockerをインストールした後、一般ユーザ(ここでは"ubuntu"というユーザー名)もdockerを使えるようにグループにつかしておきます。
sudo usermod -aG docker ubuntu

Dockerイメージの作成

nginx-uwsgi-flaskの入ったDockerイメージの作成はこちらを参考にしてください。