Search code examples
amazon-web-servicesamazon-ecs

AWS advice needed for approach to building a MAUI - API -SqlServer C# app


I am building an app on AWS with several components. In general I'm a C# / MS developer and my knowledge expands outwards from there.

I'm building a MAUI mobile app that will post/get from an API. This API will crud a SqlServer database. And there will be an Angular website for viewing and managing the db too.

After doing a tour of Google, Azure and a few smaller unknowns, I decided to go with AWS - that's decided even if there are cheaper good value options. I like their consistent approach and tutorials, single billing etc.

Now the architecture questions looms again and I'm hoping to tap into the experience of others to save losing too much time exploring the wrong options. Effectively I want to simply post/get json from a phone to the online server: Maui -> API -> SqlServer.

Fundamentally everything is built locally and now I want to move it online. How do I do it?.. Initially I thought about shoving everything into a container or many containers? Now I'm challenged with the idea of do I use the AWS API Gateway?

Do I use SqlServer in a container or AWS RDS SqlServer??

Do I use Auth0 or the AWS IAM to manage n public users?

Also to consider: I have, say, a policeman app that needs full bandwidth and top performance always to hit the api, and then there's a public app that can run slower and should be tweaked separately. Do I put these in different containers?, Different services??

The biggest Q atm is sqlserver and APIs in containers or AWS products?

A good answer here could save me days of work and tonnes of energy - Thank you :)


Solution

  • For your use case, I would consider this approach.

    Mobile app -> API Gateway -> Lambda implemented in C# -> RDS.

    This is known as a serverless solultion as you do not have to manage servers or containers, etc.

    The mobile app is the user-facing component that runs on the user's device, whether it's an iOS or Android device. The mobile app will handle the user interface, user interactions, and local data storage (if needed). It will communicate with the backend services through an API to fetch data, perform actions, and synchronize data.

    The API Gateway serves as the entry point for the mobile app to access the backend services. It provides a standardized and secure interface for the mobile app to interact with the backend. The API Gateway can handle tasks such as authentication, authorization, request routing, and load balancing. It can also perform request transformation, caching, and other cross-cutting concerns before forwarding the requests to the backend.

    The AWS Lambda functions, implemented in C#, represent the business logic and data processing components of the backend. These serverless functions are triggered by the API Gateway when the mobile app makes requests. They can perform various tasks, such as querying the database, processing data, and returning the appropriate responses to the mobile app. The use of C# in the Lambda functions are supported.