なにはともあれ、calibre の実行環境が必要。
GCP 上で何か処理をさせるとなると、GAE、GKE (Google Container Engine)、または GCE の中から選択することになる。コードを書くだけで動かせる GAE はシンプルなのだが、3rd party のライブラリを動かしたりすることは難しい。今回のように、特定処理をするアプリケーションがすでにある場合は、IaaS (Infrastructure as a Service) である GCE を使うのがソリューションとなる。
ちなみに今回の場合、必要な時だけ立ち上げるという用途であって、個人的に使うだけなのでオートスケールしたりする必要がないので、GKE も不要。
まずは calibre を起動できる環境構築。コストを極力下げるため、以下の構成で GCE のインスタンスを作成する。
- f1-micro
- debian GNU/linux
- [ID と API へのアクセス]で「各 API にアクセス権を設定」を選び、以下を選択
- ストレージ : 読み取り/書き込み
- [管理、ディスク、ネットワーク、SSH 認証鍵 ]を開き、「管理」タブにある「可用性ポリシー」の「プリエンプティブ」を「オン」にする
上記以外はデフォルトの設定のままで OK。以下にそれぞれについて解説する。
まず、マシンパワーをそれほど要す処理ではないので、一番小さいサイズで十分なので、f1-micro を選択している。安く済む。
OS は、calibre がインストールでき、コマンドラインで操作ができれよいので、debian を使用する。起動スクリプトなどで、処理を全て自動化させてしまう。OS 自体無料で使える。
calibre で作成した mobi ファイルの一時的な保管先として Google Cloud Storage を利用するので、書き込み権限が必要。デフォルトでは GCE のインスタンスには GCS の読み込み権限しか付与されないので、ここは必ず設定する。
なお、GCE はインスタンスを作成した後からはこの権限設定を変更できないので、必ずインスタンス作成時に指定することを忘れないこと。万が一あとから設定変更したい場合は、ブートディスクを再利用してインスタンスを再作成する必要がある。
余談だが、GCP で構成を組む場合、必ずと言っていいほど GCS を絡ませるのが得策である。
で、最後にプリエンプティブをオンにするのは、一番はコストにある。プリエンプティブ VM はざっくり言うと、他で必要になった場合に持って行かれてもいい、ということにすることで、最大 80% OFF でインスタンスを利用できる。最大連続稼動時間が 24 時間でもあるので一般的には利用用途は限られるが、今回のように1日に1回、せいぜい10分程度しか使わない VM にはもってこいなのである。
VM が作成できたら次は calibre のインストールと設定が必要。次回に続く。
0 件のコメント:
コメントを投稿