PythonMania

普段はロボットとAIを組み合わせて色々作ってます。Python関係以外も色々投稿していくと思います。

【Django】Google App EngineにDjangoアプリをデプロイしてみる

f:id:mizuhiki0111:20190430175940p:plain




今回はGoogle App Engine上にDjangoで作成したアプリをデプロイするところまでをやってみたいと思います。







Google App Engineとは?

Google App Engine(以下GAE)とは作成したアプリを簡単に公開できるサービスで、いわゆる「PaaS(Platform as a Service)」に分類されます。

使用できる言語も増えてきており、Pythonも対応しています。



公式ページ
cloud.google.com





今回はDjangoでアプリまで作成し、GAE上にデプロイするところまでやってみます。



前提としてGoocle Cloud Platformのアカウント登録・新規プロジェクトの作成は済ませているものとします。





①Python環境の作成


公式HPよりPythonインストーラをダウンロードし、インストールします。
インストールする際には必ず [PATH に Python を追加]をチェックしてください。

www.python.org


今回はPython3系をインストールしました。


インストールが完了したら、コンソールを立ち上げ仮想環境構築用のモジュールをインストールします。

pip install --upgrade virtualenv

次に仮想環境を作成します。

virtualenv --python "python.exeへのフルパス" 仮想環境名

仮想環境が作成されたら、作成した仮想環境を有効化します。

\仮想環境名\Scripts\activate

ここまででPython環境・仮想環境の構築が完了しました。この作業を行うことで、ほかのプロジェクトに影響を受けずにアプリ開発を行うことができます。









②Cloud SDKのインストール

公式HPよりCloud SDKをインストールしてきます。


cloud.google.com



またPython用Cloud クライアントライブラリもインストールしておきます。

pip install --upgrade google-cloud-storage





③Cloud SQL Proxyのダウンロード

以下のURLを右クリックして「名前つけてリンク先を保存」します。

名前は「cloud_sql_proxy」にしておいてください

https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe




④Cloud SQL インスタンスの作成



以下のリンク参照しながらCloud SQLの第2世代インスタンスを作成していきます

cloud.google.com




1. インスタンス作成をクリック

2.「MySQL」を選択して「次へ」

3.「第2世代を選択」をクリック

4. 名前・パスワードをクリック

5. インスタンスのリージョン設定(プロジェクトと一緒でOK,東京なら「asia-northeast1」

6. ゾーンはそのままでOK




次にコンソールでの作業に移ります

コンソールで以下を実行

gcloud sql instances describe [YOUR_INSTANCE_NAME]


出力された [CONNECTION_NAME] をメモしておく

[CONNECTION_NAME] の値は、[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] の形式になっています






次にCloudSQLProxyをインストールしたディレクトリに移動し

cloud_sql_proxy.exe -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306


を実行


[YOUR_INSTANCE_CONNECTION_NAME]は先程メモした[CONNECTION_NAME]の値に書き換え

※An attempt was made to access a socket in a way forbidden by its access permissions.みたいなエラーが出たら3307に書き換えたらできるかも




「Ready for new connections」と出てきたら、このコンソールはローカルでアプリのテストが完了するまでそのままにしておく

→ここからはもう一つコンソールを開いてそちらで作業していきます


⑤Djangoアプリの作成


別のコンソールを開いたらまず仮想環境の有効化を行います。

.\環境名\Scripts\activate

Djangoのインストール

pip install django

プロジェクトの作成

django-admin startproject プロジェクト名

アプリの作成

cd プロジェクト名
python manage.py startapp アプリ名


アプリ作成まで完了したら

python manage.py runserver

で試しに起動してみます。



無事に起動ができたら、以下のコマンドでGAEへデプロイすることができます。

requirements.txtの作成

pip freeze > requirements.txt
gcloud app deploy