APIサービスをどう作るか

2024.09.16

■お題
自社でAPIサービスの提供を検討しており、APIサービスはどう作るべるかを考える

■APIサービスに求められるもの
APIはレスポンスをJSON形式等で返せればよいので、基本的に開発言語は何でもよいし、サーバも何でもよい。
ただAPIサーバに求められるものはレスポンスと安定稼働。
不特定多数のアクセスが来たとしても、できるだけ大丈夫にしたい。
これらをいかに満たすかが、APIサービスを作る際に検討することであると思われる。

■対応策
(1)レスポンス
→ 単純に高性能のマシンを使う
→ 開発言語に「Rust」や「C++」などを使う

(2)安定稼働
→ 高性能マシンを複数台使って、負荷分散環境を作るか
→ AWSのマネージドサービスである「Lambda」を使うか。API Gatewayと組み合わせて、APIサービスを作れる。
言語に「Rust」「C++」もサポートしている
(Azure の Functions、GCPの Cloud Run でもRustを使える)

■検討結果
・なかなか自前(オンプレ環境)で高性能マシンを複数台用意し、負荷分散環境を作るのは費用的に難しい。
よって何かクラウドサービスを使うことになる。

・Rustは実行速度が速いので、時間課金であるクラウドサービスの料金を節約できてうれしい。
AWS SDK for Rust が2023年11月に正式リリース。S3やRDSと連携できる。

・不正アクセスが気になるので、API GawtewayにはWAFを設定し、不正アクセスを遮断。
国内限定のAPIサービスであれば、国内のIPアドレスからのみアクセス可、といった制御も可能。

・API Gateway にはキャッシュを有効化できるので、レスポンスの向上ができる。
Lambdaの実行費用の節約にもなる。

・構成例
ブースターテクノロジーAPIサービス構成図案

最新記事

過去の記事一覧