Django製サービスをHeroku×独自ドメインでリリースするまで

2020年1月8日

Pythonには色々なWebフレームワークがありますが、その中でも一番有名なのはDjangoです。

DjangoはフルスタックのWebフレームワークで、Web開発の難易度を格段に下げてくれます。

そんなDjangoで作ったWebサービスをHeroku × 独自ドメインでリリースしたので、その方法をまとめます。

Djangoについて詳しくは、下記をご覧ください。

実はRailsよりDjangoがオススメ!?両方使ってみた結果をまとめます

前提

下記の2つはすでに終わっているものとします。

  • Djangoでのプロジェクト作成
  • Gitでのリポジトリ作成

Djangoの設定

settings.pyの変更

デフォルト状態だと、サーバーを立ち上げても開発環境になっていると思います。

なので、settings.pyを本番用に変更する必要があります。

まずは下記のように編集しましょう。ちなみに、今まで使っていたファイルはlocal_settings.pyと言うファイル名で残しておきましょう。ローカルでの開発用に使います。

一つずつ見ていきましょう。まずはDEBUG=FALSEにして、開発環境でないことを教えます。

2つ目にstaticfileの参照方法変更です。ここではwhitenoiseを使用します。これはstaticファイルを本番環境で配信するライブラリです。

開発環境ではstaticディレクトリを作って読み込ませてると思いますが、これはセキュリティ上良くないです。

セキュリティを考えると本来、S3やnginxを使ってstaticファイルを配信する必要があるんですが、このライブラリを使うとそれが不要になります。

3つ目にALLOWED_HOSTの編集です。自分のWebサイトに使用するドメインをここに追加します。

4つ目にシークレットキーの参照方法変更です。ファイルに埋め込むのではなく、環境変数を使用するようにします。

最後にDB設定です。HerokuではSQLiteではなくPostgreSQLを使うので、その設定になります。

Herokuの準備

Herokuへの登録とセットアップまでは済ませているものとします。

Herokuのリポジトリ作成

Gitと同様、ソースコードのあるディレクトリで、下記コマンドを打つだけです。

これで HerokuとGitに同じソースコードをアップロードするところまでできました。

独自ドメインの設定

さて、今回の目玉となるとこです。ドメインを取得して、Herokuとアプリケーション両方に設定していきます。

ドメインの取得

使いたいドメインを取得しないと話になりません。どこでもいいので取得してきてください。

ちなみにん私はお名前.comで取得しました。

Herokuの設定

さて、Heroku側の設定をしましょう。まずは①ドメインを登録し、②SSL化します。

①ドメインの登録

②ドメインのSSL化

次にPointDNSの設定をします。Herokuのトップページから

ネームサーバーの変更

ここまでできたら、ネームサーバーの設定をしましょう。ここはドメインを取得したサイトによってやり方が異なるので、ひとまずお名前.comでレクチャーします。

まずはログインしてください。

「ドメイン設定」から「name serverの変更」に飛んでください。

「他のネームサーバー」を選び、Herokuのネームサーバーを入力します。

記事執筆時点では下記がHerokuのネームサーバーです。上から順に3つ入力しましょう。

  • dns2.pointhq.com
  • dns15.pointhq.com
  • dns8.pointhq.com

起動!

さて、ネームサーバー変更は完了したでしょうか?お名前.comの場合、設定が完了したらメールが届くと思います。

ここまできたら、あとは起動するだけ!下記コマンドをポチッと。

URLへアクセスしてみてください。どうですか?自分のサービスが出てきましたか?

出てきたら終わり!お疲れ様でした!