2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GCP を使ってトレンドを一覧できるWebアプリ作ってみた

Last updated at Posted at 2020-02-23

はじまり

ある日の朝
僕はいつも通りTwitterのトレンドを確認していた
続いて各種ITメディアのトレンドを確認、勿論Qiitaも
Githubのリポジトリトレンドも確認

。。。。ヤバイ、超めんどくさい

そうだ、トレンドを一覧できるwebサービス作れば良いんじゃね??

始まりはそんな感じ

こんなのを作ったので、詳細を説明する記事
https://trends-hub.appspot.com/trends/

技術仕様

  • フロントは React + Redux & GAE(スタンダード)
  • バックエンドは Django & GAE(スタンダード)
  • スクレイピングサーバは Flask & CloudRun
  • スケジューラは CloudScheduler
  • DBは cloud SQL

とりあえず1ページ作るためだけなんだけど
拡張のしやすさを考慮して、技術選定はオーバースペックにした
普段から使用しているので、学習コストも無い

正直GCPは使いたかっただけなので、個人開発だしGAE から GCE にすると思う
redux はぶっちゃけこの規模なら絶対不要
でもユーザーログイン機能とかその他もろもろ継ぎ足して行ったら必要になるかもしれないし、一応使っておいた

アーキテクチャ

arch.jpg

スケジューラで数十分おきにクラウドランをキックして、FlaskでスクレイピングしてDjango経由でDBに保存っていう感じ

まとめ

所要時間は20時間(5日間)
正直スクレイピングが一番時間かかった
13メディア程度だけど、コレから拡張しようか迷う

GoogleAnalytics も一応入れておいた
image.png

UUが4日間で162人
最終日の生き残りは16人

1割生き残ってくれたなら良い方かな?
ユーザログイン機能つけて、Firestore との連携でトレンドの並び替え・取捨ができる様になったらもっと便利になることは間違いないんだけど
React Native Expo で作りたいものができてしまったので、よっぽどアクセス増えなければこのまま自然消滅かな

GAEはめちゃ便利
僕がエンジニアになったときは、サイバーダック使ってVPSサーバーにSFTPでデプロイしてたんだけど
技術覚えたらそんな手間も無くなってしまった

アクセス無い時のゼロインスタンスとかは財布に優しい

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?