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の実行費用の節約にもなる。
・構成例
最新記事
- 自社サービス「クイズファミリー」の開発
- AWS Managed Blockchain(AMB)の使用・・・
- APIサービスをどう作るか
- C++による組込みプログラミング
- CUDAでGPUプログラミング
- BERTでチャットボット
- 脆弱性チェックツール
- Flutterでデスクトップアプリ
- MMPoseを使って姿勢推定(骨格検知)
- Laravel Livewire3を使ってみる
- Lineミニアプリ
- RustとPHPのパフォーマンス比較
- ボクシングをモーションキャプチャー
- Virtualbox上のUbuntuにDocker環境を作れ・・・
- AWSでのIPv6対応
- AWSのRDSでブルー/グリーンデプロイ
- 20年ぶりにCOBOL
- フィッシングメールのソースを見る
- GCPのVertex AIの注意点
- Azure AZ-900 に合格