2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django web サイトを AWS を使って自分のドメインで公開するまでにやることリスト

Posted at

事前にローカルで作っておいたwebサイト(Django)を、aws のサーバーを使って公開するまでにやったことをまとめました。
ウェブサーバは Nginx, アプリケーションサーバは gunicorn を使いました。
ウェブサーバ、アプリケーションサーバの概念の理解には https://view-s.co.jp/product/webapp/concept/ がとても役に立ちました。

まとめるとやったこととしては

  • EC2 インスタンスを作成して、IPアドレスにアクセスするとサイトが表示されるようにする
  • ドメインを購入して、http://hogehoge.com にアクセスするとサイトが表示されるようにする
  • SSL証明書を発行して、https://hogehge.com からサイトにアクセスできるようにする
  • その他雑多なもの

AWS アカウントを作って、いろいろな初期設定をする

自分は適当な人間なので、この辺をおろそかにしたら後で後悔した。

AWS EC2 インスタンスを起動し、環境を構築

下URLを参照して、EC2インスタンス起動と環境構築を行った

  • 前に作ったインスタンスのキーがあったので、ssh key は「既存のキーを利用する」を選択した
  • PostgreSQL は入れなかった

EC2 セキュリティグループのインバウンドに自分のIPアドレスを設定

途中で急に ssh できなくなった。

$ ssh -i "aws-ubuntu.pem" ubuntu@****.compute.amazonaws.com
ssh: connect to host ****.compute.amazonaws.com port 22: Operation timed out

下を参考にセキュリティグループに編集を加えてみた。

しかし後から、インスタンスのパブリックDNSを間違えて指定して ssh しようとしていたことが原因だったと気づいた。なので、多分このセキュリティグループへの編集はいらなかったが、上の記事設定はそのままにしておいた。パブリックDNSはインスタンスの再起動で更新されるので、毎回取ってくる必要がある。Elastic IP を取得して紐付けたらその必要は多分ない。

.gitignore を追加

作ったwebアプリケーションのコードは git でバージョン管理をしていたが、基本的に個人で進めており雑な運用をしていたため、.gitignore を置いていなかった。サーバーにもコードを置いて、ローカルでコードを編集するとデータベースあたりでコンフリクトが起きて面倒なことになりそう。なので、.gitignore をしっかり置いてやることにした。
https://www.toptal.com/developers/gitignore で Django のための .gitignore コードを生成して使った。
一度 git add されたファイルはそのままだと .gitignore を無視してしまうので、下のようにキャッシュを全てクリアしてプッシュした。

git rm -r --cached .
git add -A
git commit -m "removed all cache to use .gitignore and reregistrated all files"
git push 

SECRET_KEY を隠した

settings.py に記載されている SECRET_KEY は本来隠さないといけないものなので、おのおののローカルのみで管理されるように設定した。今更感はある。

EC2 サーバーで github に鍵認証

次の記事を参考に

ssh 接続を長持ちさせる

ssh 接続がわりとすぐ切れて面倒だったので、待機できる時間を長く設定した

上の記事は効かなかったので下を試した、機能している気がする

Django admin のユーザー登録をする

管理者ユーザを登録する

ドメインを取得して使えるようにする

お名前.comを使った

これにより、ブラウザに取得したドメイン名を打ち込むと自分のサイトが表示されるようになった。
設定をした直後は、welcome nginx みたいな画面が出るが数分待つと自分のサイトが表示されるようになる。

SSL証明を使う

ドメインにアクセスしたときに「安全ではありません」と出るのが気になった

image.jpeg

これで https://*** からアクセスできるようになり、「安全ではありません」の代わりに鍵のマークがついた。google は http ではなく https を推奨しており、SEO 対策としてもこれをやっておくのは大事らしい。

vscode でサーバー上のコードを編集できるようにする

SSH remote の方がメジャーなようですが、SSH FS を使っています(理由はない)。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?