🐾
【備忘録】API 基盤 on AWS を考える
API 基盤 on AWS の構築を進める際に、検討した内容を備忘録としてまとめました🐱
前提
- API タイプは REST とし、OpenAPI スキーマを使用してAPIを定義する
- API サーバーは、AWS Fargate を使用する
- API の公開範囲はパブリックとし、API ドキュメントはインターネットで公開する
- API で返却するデータは、オンプレミス の DB のデータを AWS へ 専用線接続 で連携したデータを使用する
構成図
使用する主なサービス
機能 | サービス名 |
---|---|
認証・認可 | Cognito |
APIゲートウェイ | API Gateway |
アプリケーション | ECS、ECR |
データベース | RDS for Oracle |
インメモリデータストア | ElastiCache |
APIドキュメントの公開 | CloudFront、S3、Route53 |
オンプレミスとの専用線 | Direct Connect |
ETL | Glue |
アプリケーションファイヤーウォール | WAF |
Infrastructure as Code (IaC) | CDK (CloudFormation) |
CI/CDパイプライン | GitHub、GitHub Actions |
運用・保守サービス | 構成図にて記載 |
コメント
- API ドキュメントの公開範囲は、WAF または CloudFront + Lambda@Edge にて制御する。
- API の公開範囲をプライベートとする場合には、API Gateway の mTLS機能 や プライベートエンドポイント(VPC エンドポイント) の使用を検討する。
参考:API Gatewayにクライアント証明書による認証を設定してみる - DBのデータ連携は、AWS Database Migration Service (DMS) の継続的レプリケーションや、Oracle DB から SQL*Plus や Data Pump を使用した連携方法もあり。
参考:DMS で AWS RDS へ継続的に移行してみた - 規模・要件に合わせて可用性のレベルを検討する。
マルチリージョン、マルチAZアーキテクチャの構築、データの冗長性など
参考:AWSでの高い可用性を実現するための具体的方法と考え方
(私的)構築を進める上での参考サイト
構成図通りに構築を進める為に、参考にさせて頂いたサイトを集めました。
-
API Gateway 周り
-
CI/CD 周り
GitHub Actions ではなく、CodePipeline の使用でも🙆 CodeCommit は 2024年7月 より新規利用終了。 -
オンプレミスとの連携 周り
- AWS Glue を使用することによってオンプレミスデータストアにアクセスして分析する方法
-
ネットワークから Amazon VPC への接続オプション
オンプレミスと AWS環境を接続するための設計パターンは複数あるため、プロジェクトに合わせて選択。
-
コンテナ 周り
API の開発言語に合わせて構築。
さいごに
今後、一部構築を進めた記事を執筆できればと思います。
もし誤りやアドバイス等ございましたら、コメント頂けますと幸いです。
以上、えみり〜でした|ωΦ)ฅ
Discussion