AMDlabの柴田です。AMDlabでは、インフラ周りを構築する際にGCP(Google Cloud Platform)を採用しているプロジェクトが多くあります。そこで今回は、GCPのサービスの中でも基本的なサービスであるGoogle Compute Engine (GCE)にpythonのアプリをデプロイして、外部IPからアクセスできるところまで触れていきます。
GCPとは?
Google Cloud Platform (GCP)は、Googleが提供するクラウドサービスの総称です。仮想マシン、データベース、機械学習、データ解析などのサービスを提供。使用量やサービスに応じて料金が発生し、コスト効率の良いクラウドリソースの利用を可能にします。企業はアプリケーションやデータをGCP上で管理・運用できます。
GCEとは?
Google Compute Engine (GCE)は、Google Cloud Platform (GCP)の仮想マシン(VM)ホスティングサービスです。つまり、こちらを使用すれば手軽にwebサービスをインターネット上にあげることができます。
1.GCPアカウントの登録
まず、GCPアカウントの登録を行なってください。
2.Google Compute Engine (GCE)の作成
GCPのコンソール内で作成していきます。まず、GCPのCompute Engineのページに入り、新規で作成します。一見色んな項目があるので、混乱しそうですが、今回はお試しで作成していくので、下記の項目のみ変更し、作成します。
・名前 → test
・マシンタイプ → e2-micro
ファイアウォールの項目でHTTP,HTTPSどちらも許可します
3.ファイアウォールの作成
VPC ネットワーク → ファイアウォール → ファイアウォール ルールの作成
外部からアクセスする際に、特定のポートの解放し、アクセスの許可を設定する為、別のページでファイアウォールを作成していきます。
名前は適当で良いのですが、ここではtest-fire-wallにします。
また、下記のように項目を変更し、その他はデフォルトの設定にします。
TCPのポート5000を開放します。
また下記の項目を変更し、その他はデフォルトの設定で保存します。
ターゲットタグ → test-fire-wall
送信元IPv4 → 0.0.0.0/0
4.Google Compute Engine (GCE)の変更
作成したGCEのページに戻り、ネットワークタグに先ほど作成したターゲットタグ test-fire-wallを追加します。
これでhttp経由でport5000にアクセスできるようになりました。
5.Google Compute Engine (GCE)にアクセスする
作成したGCEの項目SSHの項目があるので、そこをクリックし、SSH接続でGCEに入ります。
しばらくすると下記のコンソールが開きます。
この中で、今回必要なパッケージとサンプルのアプリを作成していきます。
ここではpython3のダウンロードとpythonのフレームワークFlaskをインストールします。
1 2 3 |
sudo apt-get update sudo apt-get install -y python3-pip pip3 install Flask |
app.pyというファイル名で下記のサンプルアプリを作成します。
1 2 3 4 5 6 7 |
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello, World!" |
アプリの実行をします。
1 |
FLASK_APP=app.py flask run --host=0.0.0.0 |
pipでFlaskをインストールした場合、PATHが通らない可能性がありますので、flaskを実行しても動かない場合は下記のコマンドを実行します。
1 |
export PATH=$PATH:~/.local/bin |
アプリが無事起動すると下記のように表示されます。
6.ブラウザからアクセスする
これで、VMインスタンスの外部IPアドレスにアクセスすることで、Flaskアプリの画面を確認できます。 http://[YOUR_EXTERNAL_IP]:5000
のようなURLとなります。
Hello,World!が表示されれば成功です。
ありがとうございました!
不要であれば、インスタンスは削除するようにお願いします。
COMMENTS