0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

既存サービスを壊さずに新サービスを追加するAWSインフラ構成を考えた

0
Posted at

現在 marukuma.com というサイトで
Marukuma Studio という個人サービスを運用しています。

今回、新しくニュース見出しから関連業種や企業を探索するツールを

作ることにしました。

これは投資助言ツールではなく、

ニュース

関連業種

関連企業

という流れで、ニュースの背景にある業界構造を理解するための探索ツールです。

また今回は、AWSのインフラ学習も兼ねて
AIと相談しながらこのサービスを設計・開発していくことにしました。

普段は既存インフラに機能を追加することが多いのですが、
今回は 新しいサービスを追加するときのインフラ設計を
あらためて考えてみることにしました。

新しく作るサービス

今回作るのはニュース見出しから関連業界を探索するツールです。

例えば

TSMC熊本第2工場

というニュースから

  • 半導体製造装置
  • 半導体材料
  • 電力
  • 水処理
  • クリーンルーム

といった関連業種を抽出し、そこから関連企業を探索できるようにします。

最初に考えた構成

最初は、既存サイトにそのまま追加することを考えました。

marukuma.com/finance

つまり

既存 CloudFront
既存 S3
既存 インフラ

に新しいページを追加する形です。

これは一番シンプルな方法です。

しかし悩んだ

この構成にはいくつかの問題がありました。

  • 既存サービスとインフラが混ざる
  • デプロイが混ざる
  • どこまでが新サービスかわかりにくい
  • AWS学習としては物足りない

そこで今回は

サービス単位でインフラを分離する

という構成にしてみることにしました。

新しい構成

今回の構成は次のようになります。

marukuma.com
 └ Marukuma Studio

finance.marukuma.com
 └ Financeサービス

つまり

サービスごとにインフラを分離する構成です。

AWS構成

FinanceサービスのAWS構成は次のようになります。

Route53
↓
finance.marukuma.com
↓
CloudFront
↓
S3(web)
↓
API Gateway
↓
Lambda
↓
S3 / DynamoDB

役割は次の通りです。

Route53
DNS管理

CloudFront
CDN

S3(web)
フロントエンド配信

API Gateway

API公開

Lambda
ニュース解析処理

S3 / DynamoDB
データ保存

API設計

このサービスでは API も提供できるように設計します。

POST /api/v1/news/analyze
ニュース見出しから関連業種を抽出

POST /api/v1/industries/companies
業種から関連企業を取得

リソース命名

AWSではリソースが増えてくるため
命名ルールを決めておくと管理しやすくなります。

今回のサービスでは次の命名ルールにしました。

marukuma-finance-用途-環境

marukuma-finance-web-prod
marukuma-finance-data-prod
marukuma-finance-api-prod

これにより AWS コンソールでも
financeサービスのリソースがまとまります。

この構成のメリット

この構成にすると次のメリットがあります。

  • 既存サービスとインフラを分離できる
  • デプロイを独立できる
  • サービス単位で管理できる
  • AWSインフラ学習になる
  • 将来の拡張に強い

将来的な拡張

今後は次のような機能も追加できます。

・ニュース履歴
・急上昇テーマ
・海外企業
・業種マップ

まとめ

今回、新しいサービスを作るにあたり

サービス単位でインフラを分離する構成を考えました。

個人開発でも

  • サービスを分ける
  • インフラを分ける
  • 命名ルールを決める

といった設計をしておくと、
後から機能が増えても整理された状態を保てます。

このプロジェクトがどのように成長していくかも、
今後ブログに書いていきたいと思います。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?