Flask Docker GCPで顔認識API, 2

Flask + Docker + GCP 第二編です。


今回は前回作成したDockerイメージがある前提で、それをGCP上にデプロイする方法について書いていきます。

まずは、GCPのアカウント作成とGoogle Cloud SDKをインストールします。

Google Cloud SDKは、GCP上でのタスクをコマンドラインから操作するためのgcloudコマンドを有効にします。
僕はMacを使っているので、公式サイトのOS X用インストール手順を参考にしました。

以下が今回の作業の流れになります。
1. GCPでプロジェクトを作成
2. ローカル上のDockerイメージにタグを付け、GCPへpush
3. GCPでインスタンスを作成
4. Flask用のポートを開放


1. GCPでプロジェクトを作成
Google Cloud Consoleのメインページ上からプロジェクトを作成します。
このような画面が現れるはずなので、プロジェクト名とIDを入力してプロジェクトを作成します。


2. ローカル上のDockerイメージにタグを付け、GCPへpush
まずは、gcloud コマンドライン ツールを使用して Container Registry へのリクエストを認証するように Docker を構成する必要があるそうです。以下のコマンドを入力します。


gcloud auth configure-docker

要はdockerコマンドを使ってGCPへイメージをpush/pullするための認証だと理解してます

前回作成したDockerイメージ “auto_mosaic”をGCPへpushするためのタグ付けを以下のコマンドで行います。


docker tag auto_mosaic gcr.io/automosaic/app

このコマンドの説明を以下に書いておきます。

docker tag A gcr.io/B/C

A: ローカル上でのDockerイメージ名 (今回の場合 auto_mosaic)
B: 1で作成したGCPのプロジェクト名
C: GCP上でのDockerイメージ名(任意, ここではapp)

その後以下のコマンドでDockerイメージをPushします。


docker push gcr.io.automosaic/app

プロジェクト名、イメージ名はそれぞれ任意のものなのでこの例と同じである必要はありません。

すると、こんなエラーが返ってくることがあります。

表示されたURLをコピペしてGoogle Container Registryを有効化しましょう。

有効化が済んだら先ほどのコマンドで今度こそDockerイメージをpushします。


3. GCPでインスタンスを作成

GCPでVMインスタンスを作成します。この際、このVMインスタンスにコンテナイメージをデプロイする。にチェックを入れた上で、2.で作成したプロジェクト名、イメージ名を入力します。(画像参考)
HTTPトラフィックを許可してインスタンスの作成は終了です。

4. Flask用のポートを開放

前回作成したFlaskアプリではポート番号5000番を使用しています。なので、GCP上でも同様に設定をしてあげる必要があります。
まず、GCPのプロジェクトのナビゲーションメニューからVPCネットワーク、ファイウォールルールへ行きます。
default-allow-httpのポート番号はデフォルトでは80番になっているはずなので、5000番を追加します。

以上でGCP上での設定は完了です。あとは外部IPをVMインスタンスのページから確認したあと、:5000を最後に追加したらアプリが起動するはずです。

以上, Flask + Docker + GCPで顔認識APIを作ってみました。

どのツールも触ったのが今回初めてだったので、最適化された手順ではないかもしれません。その際はコメント等いただけると嬉しく思います。

Leave a Reply

avatar
  Subscribe  
Notify of