A high-level infrastructure diagram illustrating service integrations and user flows.
- User requests an IP address for a DNS name.
- Route53 resolves the IP address from an alias record for the CloudFront distribution.
- User sends an HTTP request to CloudFront using the resolved IP address.
- CloudFront calls ViewerRequestFunction handling auth and basic redirects for static site urls.
- CloudFront forwards request to upstream S3 Web Bucket if requested file is not found in the cache.
- CloudFront logs request to S3 Logs Bucket.
- User requests and IP address for a Api DNS name.
- Route53 resolves the IP address from an alias record for the API Gateway.
- User sends an HTTP request to API Gateway using the resolved IP address.
- API Gateway forwards the request to the Lambda function.
- ACM certificate for CloudFront.
- Route53 DNS zone for creating DNS records.
- Developer pushes updates to a GitHub repository.
- GitHub Actions triggers the
: deploy
workflow when code update conditions are met.
- Developer builds code locally and deploys it to
dev
environment using themake
commands.
- Manager triggers the
: release
workflow to create the latest release and deploy it to the production environment.
- [Conditional] GitHub Actions release Deployer image to ECR if its code was updated.
- GitHub Actions uploads release package to S3 Source Bucket.
- CodePipeline detects the new release package and triggers the deployment pipeline.
- [Conditional] CodePipeline waits for the deployment approval (
prd
environment only). - CodePipeline runs CodeBuild Deploy project.
- CodeDeploy deploys the release package to the target environments.
- IAM OIDCProvider for GitHub.