トップサービス導入事例強み開発ブログよくある質問会社案内 お問い合わせ
Dev Blog

APIサービスをどう作るか

■お題 自社で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サービス構成図案