# プロジェクト概要
## 内容
ゲームアプリ以外のwebサイトにて発生した課金情報を、アプリ側に反映するためのシステム開発。
お客様からインフラ周りの構築を依頼されたため、プロジェクトに参画。
## 規模感、チーム構成、役割
### 規模感
プロジェクト全体で10人ほど
### チーム構成
- アプリチーム
- インフラチーム
- AWS SA
### 役割
リーダー1名と私でインフラチームに所属し、インフラの設計、構築を担当
### 使用技術や開発環境など
#### AWS
- API Gateway
- Lambda
- Dynamo DB
- S3
- Data Firehose
- WAF
- CloudWatch
- Chalice
- Codeシリーズ
- CDK
# 取り組んだ課題
## 課題
1. アプリ外で課金アイテムを購入できる仕組みを導入したいが、課金情報を連携するシステムがなかったため、新規構築する必要があった
アプリ外のwebサイトで課金アイテムが購入できるため、APIで課金情報をアプリ側から閲覧できるようにDBに登録するシステムを構築した。
2. お客様がAWSにとても詳しい訳ではなかった
お客様がAWSの支援が得られる環境だったため、AWSのSAの方と協力しながらインフラをAWSで構築した。
## 技術的なアプローチや工夫した点
1. 開発の進め方
最初から要件が固まっていたわけではなかったので、インフラを構築した後にアプリを実装していただき、適宜アプリチームから降りてくる要求に合わせて、インフラ側の構成変更を行った。
2. AWS回りの設計支援
お客様で用意されたAWSの構成図があったが、不備がある点もあったためそこを修正したり、アプリ開発時に浮き上がってきた課題に対して、AWS側で解決できないか提案したりした。
3. IaC、CI/CD、Chaliceの利用
CDKを利用することで、インフラの構成変更の依頼に対してのレスポンス速度の向上を実現。
また、CodeシリーズでCI/CDを実装することで、アプリチームの開発の手間を削減し、開発をより効率的に進めることが出来た。
Chaliceを利用することで、AWSでのAPI開発を簡素化し、AWSに詳しくなくてもAPI開発を進められる環境を提供した。
# 取り組みの成果
1. AWSのサービスを多岐にわたって活用し、アプリチームの開発負荷を軽減できた
2. AWSを利用したことにより、サーバレスでスケーラビリティの確保出来たシステムが構築できた