We have our accounts, and we have our requirements - the next step is to sketch out at a high level what services we will use, where they will reside, and a quick point on CI/CD.
Services
There are several AWS services that we will be utilizing in this project:
Amplify
This is a neat little service that allows us to build out web and mobile applications. This service integrates our front end using Flutter or ReactNative, and hooks it straight up to the back end!
Location Services
Launched back in June 2021, this service specializes in maps, geocoding, geofencing, tracking, and routing. Something that will be pretty important when navigating the rivers.
Serverless
API Gatweay, Lambda, and DynamoDB make up the primary serverless triad. By serverless, in this context, it means that we do not manage the underlying infrastructure. Indeed these three services allows our application to scale in and out dynamically while minimizing operational overhead.
File Storage
S3 and CloudFront will be used to manage any media that is uploaded - from logos and images for the application, to images other users upload. They will be stored with an S3 bucket, and then hosted by CloudFront. CloudFront is a content delivery network (CDN), the content in edge locations that are closest to the user, reducing the amount of time it takes to fetch and deliver the content. This improves the user experience by reducing latency and improving performance.
CI/CD
We will be building our application using GitHub and GitHub Actions to deploy the code.
Before we get into deployment, we want to setup our Git Repositories and align them with our AWS Accounts.
Due to the simplicity of this project, I will only setup 2 repos - one for the application that will be deployed to Development and Production, and a second one that manages the Shared Services account.
Next we will setup AWS SSO to allow us to login to our AWS Accounts and also grant our GitHub repos permission to deploy to the AWS Accounts.
Top comments (0)