GCPへの移行

新しいフォルダー (2)

新しいフォルダー (2) はこの記事で書いたんだけど、通称インターネットエチチ画像フォルダーでどういうものかっていうのは記事を見てほしいんだけど、とりあえずそれはVPSで運用していたんです。

で、時代は大クラウド時代ということで、まあ勉強もかねてクラウド移行を考えました。なんとなくAWS or GCPなのですが、AWSは業務でちょっと触ってたりもするのでGCPを使ってみようと。というのも新しいフォルダー (2)は結構な数のエチチ画像 (まあURLなんですが) がため込まれていて、それを使って機械学習とかにチャレンジしてみたいという欲があります。ということでそれなら今のところはGoogle系の方が恩恵があるかもしれないという発想です。

作り

基本的な作りは以前と変わっていません。スケジューリングされたPythonスクリプトでTwitter APIを叩いてデータを取り込んで、そのデータを取得できるREST APIを用意してあります。

Pythonスクリプト側はCloud Functionsを使うようにして、Cloud Pub/Subで起動しています。

API側もコンピューティング環境はCloud Functionsを使います。中身は以前と同様にFastAPIで作っていて、直接Cloud Functionsで利用できるようにAgraffeというライブラリを利用しています。APIの入口にはAPI Gatewayを置いています。

ストレージはCloud Firestoreを使ってる。

newfolder2

クライアント

クライアント側もHTML + 生JavaScript (Github pages) からNext.js (Vercel)へ移行しています。クラウドサービスはリクエスト回数や通信料もちゃんと考えないといけないのでNext.jsのISRでキャッシュを利用できるようにしてるつもり。一応API的にもリミットを設定しているのでたぶん大丈夫なはず。

新しいフォルダー (2) ※R-18

DevOpsとか

VPS時代は手でスクリプト置いて運用してたと思うけど、とりあえずいろいろ自動化するようにした。

アプリのコードは基本的にGitHub Pushで自動でCloud Functionsへデプロイされるようにしている。なんかいろいろ用意されているので便利な時代だといつも思う。

GCPのリソースもTerraformにチャレンジしてみている。個人開発レベルだとあまり恩恵はないかもしれないので難しくなってるだけな気はする。

VPS

これでとりあえずVPSを解約できるようになった。費用的にはたぶん安くなってるはず。今月の請求次第。個人開発レベルでリソースも気にしないものなら全部VPSに乗っけてしまうはまあアリなんじゃないかと思うところはある。月々1000円ぐらいで自由に使えるLinuxサーバーとかがあるっていうのは普通に魅力的だとは思う。クラウドサービスはそれはそれで気を付けないといけない部分も多いし、VPSは全部やらないといけないけど実際の楽さで言ったらあんまり変わらないとは思う。冗長性とかスケーリングを考えなくて良いならVPSで良い気はするし。

難しかったこと

GCP。特にセキュリティとか権限周りをちゃんとしようと思うと理解することが多いし難しい。ただのコンテキスト不足だとは思うけどGCPのドキュメントは普通にわからん。

寺法務。