主に思い出を残すためのメモ。
サーバ準備
GCP(GoogleCloudPlatform)の無料枠を利用する。
基本的にはGoogleアカウントがあればOKだが、無料枠のみの利用でもクレジットカードの登録が必要なので少し心理的にハードルが高い。
- GoogleCloudを開く。
- 「無料トライアル」で使い始める。名前とかクレジットカードとかの登録とかする。
- GCMのコンソールが開くので、[≡]-[コンピューティング]-[Computer Engine]-[VMインスタンス]からインスタンスを作成。
- 名前は適当
- リージョンはus(無料のため)
- マシンタイプはmicro(無料のため)
- ブートディスクはCentOS7(yumりたいから)
- ディスクは30GBにしておく
- 同画面の下の方、[管理、ディスク、ネットワーク、SSH 認証鍵]-[ネットワーキング]-[ネットワークインタフェース]-[外部IP]からIPアドレスを作成する(静的IPにする)
静的IPアドレスは扱いによってお金が掛かる場合があるので注意。
インスタンスを消したら静的IPアドレスも開放してください。 - このIPはあとで使うから覚えておく。
サーバへのアクセス
前項で作成した[VMインスタンス]の画面から「SSH▼」のところを押すとSSH接続できる。
各種インストール
参考:[Qiita] CentOS7でとりあえずDjangoを動かしてみたので、その手順を残す
ここからはコマンドベースで。
とりあえず適当にワークディレクトリを作る。
mkdir dev
cd dev
Pythonのバージョン確認してみたり。
python --version
以降、GCEのVMインスタンスだとsudo付けないと権限エラーが起きるコマンドが多いので注意。
Python3、pipのインストール
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install python36u
sudo yum install python36u-pip
バージョン確認。
python3.6 --version
インストール前にyumできるpython調べる場合は
sudo yum list|grep python3
どうしても最新のPythonの状況とか気になる人はここを見る。
Djangoのインストール
sudo pip3.6 install Django
Djangoのプロジェクト作成
今回はプロジェクト名「apply」でやってます。
一応Django用にもう一個掘っておく。
mkdir django
cd django
sudo django-admin startproject apply
以下のフォルダ、ファイルが作成される。
apply
├ apply
│ ├ __init__.py
│ ├ __pycache__
│ ├ settings.py
│ ├ urls.py
│ └ wsgi.py
└ manage.py
Webサーバ起動
プロジェクトのルートディレクトリに移動。
cd apply
sudo python3.6 manage.py runserver
アクセス確認(内部から)
別の窓からサーバにSSH接続して以下コマンドを叩く。
curl 127.0.0.1:8000
ずらずらとHTMLが出てきたら成功。一応タイトルだけ見ておく。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Django: the Web framework for perfectionists with deadlines.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="/static/admin/css/fonts.css">
<style type="text/css">
body, main {
margin: 0 auto;
}
あと起動したほうの窓にアクセスログが表示されているはず。200ならOK。
[22/Jun/2018 02:31:47] "GET / HTTP/1.1" 200 16348
アクセス確認(外部から)
とりあえず動いているのを止める。
Quit the server with CONTROL-C.
ということなのでCtrl+C
で止める。
ファイアウォールへの穴あけ
GCMコンソールを開く。
[≡]-[ネットワーキング]-[VPCネットワーク]-[ファイアウォール ルール]でtcp:8000ポートを開けておく(Djangoでバインドするとこ)
Djangoの許可設定
setting.pyを開いて以下を変更する。
ALLOWED_HOSTS = []
↓
ALLOWED_HOSTS = ['サーバの静的IP']
URLバインドを外して起動
以下コマンドで起動しなおす。
sudo python3.6 manage.py runserver 0.0.0.0:8000
ブラウザでアクセス
ローカル環境から適当なブラウザで以下のURLを開く。
http://サーバの静的IP:8000
遊び終わったら片付けましょう
とりあえず試すために色々とノーガードなので、終わったらDjango落としてインスタンスも止めてしまったほうが安全です。
妙なアタックを食らったりするとお金が掛かる可能性があるのでご注意ください。
おまけ 課金データを出力させておく
Djangoでページ表示するのには関係ないですが、GCPの無料枠で本当にお金かかってないか不安になると思います。
以下手順で課金データを毎日報告してもらえるので、2〜3日確認して安心しましょう。