Architecture Recommendation

0

Hi, I am new to AWS. We are a start-up and working on a telehealth application. We don't have any infrastructure expertise in our team. For our test environment, we need a server with 2CPU, 4gb ram and 128gb storage and MySQL database. Can anyone please recommend which AWS service to use and how much it will cost monthly.

Thanks, Atif

Atif
asked 8 months ago268 views
4 Answers
1

Hello.

If you want to use a relational database on AWS, you will use EC2 or RDS.
In the case of EC2, you need to install the database yourself on an OS such as Linux.
For RDS, simply select the database engine you wish to use and start it.
RDS is a fully managed database service, where AWS automates tasks related to database management and operation. EC2, on the other hand, is a self-managed service that provides virtual machines, and the user manages the operating system and software.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html
Basically, we recommend that you choose RDS.

In addition, the following database engines can be used with RDS.

MariaDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL

Since it was for testing, we did not consider availability and quoted a single AZ.
Running it at the specs you want to use for a month would be about 64.36 USD.
https://calculator.aws/#/estimate?id=8838a2636e71961eeff500ff8535e5a51a67a206

Config Summary
Storage for each RDS instance (General Purpose SSD (gp3)), Storage amount (128 GB), 
Quantity (1), 
Instance type (db.t3.medium), 
Utilization (On-Demand only) (100 %Utilized/Month), 
Deployment option (Single-AZ), 
Pricing strategy (OnDemand)
profile picture
EXPERT
answered 8 months ago
profile picture
EXPERT
reviewed 8 months ago
  • Hi Riku, Thanks for your quick reply. If I am understanding correctly your suggestion is to use RDS for MySQL. It means we still need EC2 for example for deploying our application (it is JAVA based) and for webservice like Tomcat etc. Can you please suggest what is equivalent of 2cpu, 4GB RAM in EC2. I am confused with so many options like M7, M5, T2, T3 etc. and approximate cost of running these instance. Rally appreciate your help.

  • For EC2, we assume that t3.medium will cost about 40.61 USD per month. https://calculator.aws/#/estimate?id=93aeb09bcefe910571021f0f4743bfad5a61da33

    Tenancy (Shared Instances), Operating system (Linux), Workload (Consistent, Number of instances: 1), 
    Advance EC2 instance (t3.medium), 
    Pricing strategy (On-Demand Utilization: 100 %Utilized/Month), 
    Enable monitoring (disabled), EBS Storage amount (128 GB), 
    DT Inbound: Not selected (0 TB per month), DT Outbound: Not selected (0 TB per month), DT Intra-Region: (0 TB per month)
    

    The following documentation may be helpful for instance types. For test environments, a smaller instance type such as T3 is recommended. For environments that require performance, such as production environments, it is recommended to select a larger instance type such as M6. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/general-purpose-instances.html https://aws.amazon.com/ec2/instance-types/?nc1=h_ls

0

Hey Atif, I believe this link could be helpful during your AWS Journey https://skillbuilder.aws/roles#devops-engineer, there are several free trainings in related your needs.

profile pictureAWS
ladybug
answered 8 months ago
0

Hi,

i'd suggest to choose a serverless architecture with corresponding services:

  • AWS Lambda for Compute
  • RDS Aurora Serverless for database

Why? Because those fully AWS-managed services will take care of the "undifferentiating heavy-weight lifting" for you: patching, scaling, resilience, etc. is all done by them instead of your team spending time on them.

Additionally, they are based on pay-as-you-use model: so, during the dev and ramp-up period, you will get minimal invoices.

Finally, I think that Lambdas are very key re. security (especially for healthcare industry): you can have lots of them implementing very granular features and you can then apply distinct permissions to them. It's harder to do on a monolithic EC2-based architecture.

See https://aws.amazon.com/serverless/ and https://aws.amazon.com/serverless/faqs/?nc=sn&loc=3 and https://docs.aws.amazon.com/whitepapers/latest/optimizing-enterprise-economics-with-serverless/understanding-serverless-architectures.html

Best,

DIdier

profile pictureAWS
EXPERT
answered 8 months ago
profile picture
EXPERT
reviewed 8 months ago
0

Depending on your requirements I think there's a lot of great AWS services you can leverage on to achieve your business goals!

You mentioned "test" environment and tagged this question with "Devops" so i assume you are setting up a pipeline! you can definitely consider containers (ECS Fargate/ECR) coupled with codepipeline as well as RDS to scale up/down as per your demands. (ie: dynamic test environments)

Some resources that might help you: **Fargate getting started guide: **https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html ECR documentation: https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html CodePipeline quick start: https://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-codepipeline.html **RDS creating a DB instance: **https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html

Happy to help! Brian

profile picture
answered 8 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions