# **プロジェクト概要**
**期間**: 2024年9月~2024年12月
**プロジェクト名**: 社内システム自動化プロジェクト
# **概要**:
顧客からのセキュリティ依頼を手動で管理していたプロセスを自動化し、以下の機能を実現するシステムを開発しました。
- データの自動読み込みとデータベースの更新の実行
- 更新結果をSlackにリアルタイム通知
- AWSサービス(EventBridge, Lambda, DynamoDB, Aurora)を活用した安定性の高いシステム設計
---
# **担当業務**
- **要件定義**:
- ニーズのヒアリングとPoM(Product Owner/Manager)との壁打ちを行い、プロセス自動化に必要な要件を整理。
- 業務フローの明確化と課題の抽出を実施。
- **基本設計**:
- システム全体の設計を担当し、業務ロジックとインフラ要件を明確化。
- **実装**:
- DTOクラスを活用し、DB更新時のデータバリデーションと整合性を担保。
- データ転送の安全性を確保するため、ロジックを分離し単一責任の原則を徹底。
- AWS Step Functionsを使用して、複数のLambda関数を一貫して管理可能なワークフローを構築。
- AWS SAMを導入し、GitHubと連携することでインフラのコード管理を効率化。
- Webhook APIを利用し、Slackへの処理結果通知機能を開発。
- GitHub Actionsと連携し、自動デプロイフローを構築。
---
# **使用技術**
- **ランタイム環境**: Node.js
- **インフラ構成ツール**: AWS SAM, CloudFormation, EventBridge, Secrets Manager, Lambda
- **データベース/ストレージ**: DynamoDB, Aurora
- **バージョン管理**: GitHub
- **CI/CD**: GitHub Actions
- **連携ツール**: Slack
---
# **課題**
1. **手動プロセスの非効率性**:
- 顧客からのセキュリティ依頼管理が手動で行われており、人的ミスや処理遅延が発生していた。
2. **データ整合性の確保**:
- 自動化において、データのバリデーションとDB更新時の整合性を担保する必要があった。
3. **リアルタイム通知の実現**:
- 処理結果を即座に共有する仕組みがなく、チーム間の情報共有に遅れが生じていた。
4. **インフラ管理の効率化**:
- AWSリソースのデプロイや管理を手動で行っていたため、作業負荷が高かった。
---
# **取り組み**
1. **自動化による効率改善**:
- AWS LambdaとEventBridgeを組み合わせ、定期的なデータ処理を自動化。
2. **データ安全性の向上**:
- DTOクラスを導入し、データのバリデーションとロジックの分離を実現。
3. **リアルタイム通知の導入**:
- SlackのWebhook APIを活用し、処理結果を即時通知する機能を開発。
4. **IaC(Infrastructure as Code)の導入**:
- AWS SAMとGitHub Actionsを連携させ、インフラのコード管理と自動デプロイを実現。
5. **ワークフローの最適化**:
- AWS Step Functionsを使用し、複数のLambda関数を協調的に動作させるワークフローを設計。