sakamomo554101 / YouyakuAI

日本語用の要約を行うデモサービス
0 stars 0 forks source link

GCPをもちいた場合のインフラ構成図の作成 #50

Open sakamomo554101 opened 2 years ago

sakamomo554101 commented 2 years ago

概要

GCPを用いた場合のインフラ構成図を検討し、全てGCP上(VertexAI含む)で稼働させる場合のタスクを作成する

sakamomo554101 commented 2 years ago

コンポーネントは下記。 queue以外はGKEとかで良いのかなー。

queueをどうするか。

sakamomo554101 commented 2 years ago

https://recruit.gmo.jp/engineer/jisedai/blog/gcp-tasks-pub-sub/

QueueはPub/Subが良いのかなー。 kafkaを組んでも良いが。

sakamomo554101 commented 2 years ago

https://qiita.com/minarai/items/fb1bec88ce767ce69bfe Pub/Subについて分かりやすい記事

sakamomo554101 commented 2 years ago

queue以外は、Cloud Runでコンポーネント作ってしまえばいいかなー。 ダッシュボードのみは外部に公開する必要がある。

sakamomo554101 commented 2 years ago

https://qiita.com/massie_g/items/5a9ce514eaa7c460b5e3

sakamomo554101 commented 2 years ago

cloud buildでコンテナイメージの作成は自動化して、インフラを構築するようにしないとだな。 インフラ自体は、terraformで書けば良い?

sakamomo554101 commented 2 years ago

https://runble1.com/gcp-terraform-cloud-run/ terraformでCloud Runで構築するイメージ。

sakamomo554101 commented 2 years ago

https://cloud.google.com/docs/terraform gcpでterraformを使うことについてのドキュメント

sakamomo554101 commented 2 years ago

https://registry.terraform.io/providers/hashicorp/google/latest/docs あ、このterraformのドキュメント見ると、各GCPのコンポーネントの作り方が分かりそう。

sakamomo554101 commented 2 years ago

CloudRunを使う場合、Dockerファイルをベースにコンテナやイメージを作るが、 docker-composeを使って、現状は動かしているので、ファイルコピーとかをproductionでは出来るようにする対応が必要(一部では対応しているんだけどね)

sakamomo554101 commented 2 years ago

まずはこれやらんと、terraformも何もないな・・。

https://cloud.google.com/vpc/docs/vpc?hl=ja VPCとかも勉強せねば。

sakamomo554101 commented 2 years ago

今回は、IPベースで外部マシン(GCP以外)からダッシュボードにアクセスして、要約処理が出来ればOKとする。 ※ドメインやロードバランシングは必須ではない。

sakamomo554101 commented 2 years ago

https://www.topgate.co.jp/cloud-run-2021#cloud-run-4

あれ、CloudRun単独だと、完全オープンなのか(URLも発行されるみたいだし)

sakamomo554101 commented 2 years ago

となると、VPCの構築は必須だなぁ。

ダッシュボードのみはオープンなURLとすればよく、他のCloudRunについては、internalのみに制限して、デプロイが必要。

sakamomo554101 commented 2 years ago

以下のような構成で出来んかなー。ちょっと試してみるか。

sakamomo554101 commented 2 years ago

CloudRunについて、詳しく調査するか。

sakamomo554101 commented 2 years ago

CloudRunの公開について https://cloud.google.com/run/docs/authenticating/public#console

sakamomo554101 commented 2 years ago

あぁ、、無限ループでsummarizer_processorは処理されているが、これはCloudRunでは合わん気がする。(トリガーが必要なため)

sakamomo554101 commented 2 years ago

いや、そうか。キューも必要だった・・。

sakamomo554101 commented 2 years ago

https://cloud.google.com/run/docs/triggering/pubsub-push

pub/subを使って、kafkaの代わりにしちゃう手もあるな。

もしくは、cloud tasksもある。 https://cloud.google.com/run/docs/triggering/using-tasks

sakamomo554101 commented 2 years ago

https://recruit.gmo.jp/engineer/jisedai/blog/gcp-tasks-pub-sub/

pubsub vs cloud tasks

sakamomo554101 commented 2 years ago

https://cloud.google.com/pubsub/docs/choosing-pubsub-or-cloud-tasks?hl=ja

ふーむ、キューっぽいのはCloud Tasksかと思ったが、push型になるな。 pull型のイメージとしては、Pub/Subの印象。

ただ、明示的と暗黙的だと、今回のキューは明示的にすべきな気がする。

sakamomo554101 commented 2 years ago

pull型にするためにも、Pub/Subかなー。

sakamomo554101 commented 2 years ago

ただ本来はpush型が正しい気はする。 ※リクエストが増えた際に大量に捌けるようなスケールが必須にはなるけど。

sakamomo554101 commented 2 years ago

まぁ、とりあえず楽なpull型で対応する。

sakamomo554101 commented 2 years ago

コンポーネントとして、ベースが何が必要かはまとまったかなぁ。 あとは、内部のやり取りに限定する・ダッシュボードのみを公開する、あたりを突き詰めたい。

Cloud RunをVPCに配置出来るのか?

sakamomo554101 commented 2 years ago

https://cloud-textbook.com/60/

sakamomo554101 commented 2 years ago

あー、BQじゃなくて、CloudSQLを使うという手もありそう。

sakamomo554101 commented 2 years ago

https://medium.com/google-cloud-jp/cloud-run-microservices-b1e28992bb1

これ勉強になる。

sakamomo554101 commented 2 years ago

https://medium.com/google-cloud-jp/cloudrun-always-on-cpu-pubsub-pull-2664b9730781

おー、Always on Cpu使えば、無限ループ処理いけそうなんでは?

sakamomo554101 commented 2 years ago

無限ループいけそう。 なので、summarizer_processorは実装変えずに、Cloud Runで動かせそう。 ※キューからのpull処理は修正必要。

sakamomo554101 commented 2 years ago

https://cloud.google.com/run/docs/securing/ingress CloudRunの上り側のアクセス制限(つまり、インバウンドのこと)

sakamomo554101 commented 2 years ago

ダッシュボードは、「すべて」に設定して、他コンポーネント(cloudrun)は「内部」にしてみるのが良いかな。

sakamomo554101 commented 2 years ago

構成図はざっと作った。

sakamomo554101 commented 2 years ago

残りは #55 で進めていく。