Django + Mezzanine + GoogleCloudPlatform (1)

このブログはDjango + Mezzanine + GoogleCloudPlatformで作りました。

元々はAWSに作っていたのですが、30000円分無料にするというGCPの誘惑に負けました。

色々勉強の意味も込めてやっているので、分からないこともたくさんありましたが、何とかこうしてブログ公開まで至ってます。

かなり手探りでやった箇所もあるので、忘れないためにも手順を書き残しておこうと思います。既に作成されているDjangoのプロジェクトをデプロイするものとします。

01.Google Compute Engineでインスタンス作成

GCPへの初期登録とかは大丈夫だと思うので飛ばします。

無事登録が終わりましたら、早速ログインして、プロジェクトを作成しましょう。プロジェクトが作成できたら、左のメニューより「Compute Engine → VMインスタンス」に移動します。

「インスタンスの作成」よりインスタンスを作成します。設定はこんな感じです。(これは、設定を変更した箇所のみをリストアップしています。)

名前 hogehoge(好きな名前をつけます)
ゾーン asia-east1-b(好きなゾーンを選びます)
マシンタイプ small(共有 vCPU x 1)(好きなタイプを選びます)
ブートディスク CentOS 7
SSD 永続ディスク10GB(好きなOS、ディスクを選びます)
ファイアウォール 「HTTPトラフィックを許可する」「HTTPトラフィックを許可する」にチェックを入れる

設定が完了したら、「作成」をクリックしてしばらく待ちます。

02.gcloudコマンドでssh接続

gcloudを使用してssh接続ができるようにします。

gcloudのインストールは以下を参考にやっていきましょう。

(参考:GCPのgcloudコマンドをインストールする

以下のコマンドでインストールを実行します。質問は全てYでOK。

$ curl https://sdk.cloud.google.com | bash

gcloudコマンドが使用できるよう、パスを通します。

$ exec -l $SHELL
$ which gcloud
~/google-cloud-sdk/bin/gcloud

続いて認証に入ります。「GCPを利用しているアカウントでログイン → 表示された認証キーを入力して認証完了」という流れです。

$ gcloud init

認証が完了したら、以下のコマンドでssh接続します。

$ gcloud compute ssh <インスタンス名> --zone <ゾーン名>

ログインできたら、rootに切り替えます。

03.SELinuxをオフにする(CentOS7の場合)

SELinuxが何なのかは理解していません。。。が、オフにしておかないと後々困ったので、先にオフにしておきます。

(参考:SELinuxの無効化

# getenforce
  Enforcing

Enforcingの場合は、無効化します。

# vi /etc/selinux/config
SELINUX=enforcing

サーバを再起動して完了です。

# reboot

04.nginxをインストール

nginxをインストールします。

$ sudo yum install nginx -y

自動起動するように設定します。

$ sudo systemctl enable nginx

起動。

$ sudo systemctl start nginx

GCPのVMインスタンスで、先程作成したインスタンスの外部IPを叩いてみます。nginxの初期画面が表示されれば成功です。

05.gitをインストール

gitをインストールします。

$ yum install git -y

06.pyenvをインストール

pyenvをインストールします。

(参考:Djangoの既存プロジェクトをec2にデプロイ

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

パスを通しましょう。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

その他必要な依存関係も一気にインストールします。

$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y

07.Pythonをインストール

Pythonをインストールします。

$ pyenv install 3.6.4

Pythonを切り替えます。

$ pyenv global 3.6.4
$ pyenv rehash
$ python --version
Python 3.6.4

08.Mysqlをインストール

Mysqlをインストールします。以下を参考です。

(参考:CentOS7.3 に MySQL5.7 をインストールした時のメモ

一番最後にデフォルトをutf8にする設定がありますが、clientの設定も追加します。

# vi /etc/my.cnf

[mysqld]
...
character-set-server=utf8
default_password_lifetime = 0
[client]
default-character-set=utf8 #clientセクションを追加

09.DBを作成

使用するDBを作成しておきましょう。作成方法は省略します。

長くなりそうなので、続きます。

コメント

現在コメントはありません

新しいコメント

*
*
*

admin

こんにちは!Bicepperです。
メインはフロントですが、Python・AWS・GCPやったりと手を広げまくってます。

筋トレ歴10年目。筋トレのこともたまーに書いたりします。

Twitter Feed