概要

前回はGCPから提供されているDockerイメージを利用してデプロイしてみたけど、TensorBoardが最新バージョンじゃなかったので、自前でDockerイメージを用意してApp Engineにデプロイしてみました。

TensorBoardをGoogle App Engineで使えるようにしてみた
https://cloudpack.media/42836

前提

Dockerアプリはインストール済みの前提です。

手順

Dockerfileの作成

> mkdir 任意のディレクトリ
> cd 任意のディレクトリ
> touch Dockerfile
> vi Dockerfile
> docker build . -t tensorboard

参考)DockerのイメージをGAE/FEにデプロイする
https://qiita.com/wasnot/items/b8691bb4940e6f4a9c24

Dockerfile

FROM python:3.5
RUN pip install tensorflow
ENTRYPOINT ["tensorboard", "--logdir", "gs://任意のバケット/output", "--port", "8080"]

ポイントはtensorboardのパラメータオプションで--port で8080指定することでしょうか。

app.yamlの作成

> gcloud app gen-config
> vi app.yaml

もし既存のGCPプロジェクトにデプロイする場合、service 指定しないと、default にデプロイされてしまうので、ご注意ください。
今回はautomatic_scaling でインスタンスが1台のみ起動するように指定しています。

app.yaml

env: flex
runtime: custom
service: サービス名

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 1

参照データのコピーとデプロイ

今回は--logdir の参照先をCloud Storageにするので、
TensorFlowの結果をCloud Storageのバケットへコピーしておきましょう。

> gsutil cp -r TensorFlowの結果フォルダ  gs://任意のバケット/output/

App Engineへデプロイします。

 > gcloud app deploy
(略)
Deployed service [サービス名] to [https://サービス名-dot-プロジェクトID.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s サービス名

To view your application in the web browser run:

アクセスしてみる

では、App Engineにデプロイできたので、URLへアクセスしてみましょう。

> open https://サービス名-dot-プロジェクトID.appspot.com

やったぜ。

前回とは違って認証機能はありませんので、ケースバイケースでの利用になりそうです。

参考

雑に TensorBoard を起動する Docker イメージの作り方
https://qiita.com/hoto17296/items/c0d214ca6e34c2d72a52

DockerのイメージをGAE/FEにデプロイする
https://qiita.com/wasnot/items/b8691bb4940e6f4a9c24

元記事はこちら

最新バージョンのTensorBoardをGoogle App Engineで使えるようにしてみた