Advice needed for AWS set up - mysql

I am new with AWS stuff so here is my application requirement.
Node Js with express js
Mysql Database
PHP web application + API application
So how do I need to deploy it on AWS for a basic start so that after testing the platform I can deploy my production on it. So can you guys help me for:
How many instances are needed
What if I need to go with CentOS + cPanel hosting for mysql and PHP application

you can go for plain 1 VM in AWS for start and if you tell about how much concurrent user are expected on your apps so we can help you to determine the resources.

Related

Connect Heroku Add-on MySQL Database to DigitalOcean droplet for Spring Boot

Have anyone deployed Spring Boot app to DigitalOcean droplet?
I have previously created app on Heroku.com, where I also ordered MySQL Database and deployed my Web API. Due to performance issues, I want to transfer my Spring Boot app to DigitalOcean, but there is a problem: I still want to use DB I ordered on Heroku. I have all the required credentials, but can't find a way to connect my droplet. In Heroku, there is very simple way to do that, all I need to do is to change config variable DATABASE_URL, but here I cannot find the same. I hope you understand my problem and provide simple solution.
Thank You in advance!
What you need is called Environment Variables, here is the docs from DO.
Specify app-level variables on the Environment screen when creating an app. For existing apps, go to the Apps section of the DigitalOcean Control Panel. Click your app, then click the Settings tab. Next to the App-Level Environment Variables heading, click the Edit link.
https://docs.digitalocean.com/products/app-platform/how-to/use-environment-variables/

How to host my web app on heroku with MySQL database?

As far as I know, while deploying your web application on Heroku (from github) you need to provide a requirement.txt file so that every library which is used can be installed. But you cannot install MySQL like that. I've used python and streamlit to create a web application. I used MySQL to store data. I don't want the local machine's data to be exported but want to store the data when it is deployed as web app and someone fill in the details (it's basically a Student DBMS).
How can I deploy such a web application that uses MySQL on heroku ?
I've read some docs and look around and found that PostgreSQL is more suitable but I want to use MySQL because this is school project.
Heroku has a add-ons called ClearDB for Mysql
https://devcenter.heroku.com/articles/cleardb

How to deploy my application that i made to server ?

I have created an application using mySQL, Express.js, React, Node.js
My question is, which servers would allow me to deploy this application for free? I'm assuming TOMCAT wouldn't allow me to create it because I have a node.js / express.js as back-end.
Outside of Heroku, here are a few free and easy deployment options:
Serverless:
AWS Lambda: https://amzn.to/2JgBFlL
Azure Web Services: https://azure.microsoft.com/en-us/free/cloud-services/search/?&OCID=AID719825_SEM_UHdSDoOS&lnkd=Google_Azure_Brand&gclid=EAIaIQobChMIh7rFgt2k3gIVGMNkCh0wOwnqEAAYASAAEgKkP_D_BwE
Of course in the future if you have a super lightweight 'app' you're trying to deploy, Github pages is a good option.
Serverless is a really good option though because deployment becomes as simple as pointing the serverless service to a repo and committing to the repo. The rest of the deployment process is handled by in these cases, either AWS or Azure. And for AWS and Azure, you can easily link in a lightweight, free SQL DB.
The learning curve is no less daunting than learning to deploy on Heroku, but it is much much simpler once it's set up. Plus - you get the added benefit of scalability for free because AWS and Azure takes care of it for you!

AWS Elastic Beanstalk and Neo4j

I am new to web application development.I developed a web application(rest web service) that has both mysql and neo4j database. now I want to host it on the internet for a mobile app to consume.I was wandering if anyone could point me to steps i need to take to successfully deploy it on AWS.I have looked in to EC2 and Elastic Beanstalk and confused of how i should proceed further.
Thank you
I suggest you check out GrapheneDB. They're the only game in town as far as hosted Neo4j goes, as far as I know. They do a great job.

Best way to deploy java application on AWS using Netbeans?

I have a publicly accessed database on RDS that works like a charm from Netbeans. I would like to deploy my Java application on AWS. What is the simplest way to do this? I will only use the application for some very basic tasks, getting used to cloud computing working on a small scale. Is EC2 my best bet and is it possible to upload apps as easily as with the Google App Engine plugin. Can I use the same jdbc driver as I use locally, and can I use JPA against the database? I would rather not use Eclipse for now as I am in a bit of a hurry and need to get this working as soon as possible.
This is a lot of questions for one question, but I'll see if I can help you out.
1. Simplest Way to deploy to AWS
If this application is as simple as you say it is, the most cost effective solution while you're getting used to AWS will be to deploy to a micro instance and take advantage of the free tier. From Amazon:
AWS Free Tier includes 750 hours of Linux and Windows Micro Instances each month for one year. To stay within the Free Tier, use only EC2 Micro instances.
The simplest way to deploy directly from Netbeans is to use the integrated Elastic Beanstalk support. This saves you from having to configure things yourself.
Another option is to launch a Ubuntu AMI and install Tomcat. Create a WAR file from your application and place it where Tomcat can find it. I suggest using the first method.
2. Is EC2 my best bet?
This is a little open ended. For a nice learning experience as you get accustomed to AWS, the free tier for EC2 is a nice platform to learn with. If your application needs to eventually scale, using EBS is a pretty simple way to manage an application. My answer is an opinion because "best bet" depends solely on the requirements of your application, but I say yes.
3. Is it possible to upload apps as easily as with the Google App Engine plugin?
For simple applications I think so. I think it's even easier if you switch to Eclipse and use the toolkit for AWS. Whether Google App Engine or AWS is easier for you will once again depend on personal preference, the application, and your requirements.
4. Can I use the same JDBC driver as I use locally?
If you're using MySQL Connector/J then yes. Read this to understand how it works with RDS.
5. Can I use JPA against the database?
Yes. You'll change the endpoint from localhost to the endpoint of your RDS instance.
6. I would rather not use Eclipse for now...
Another personal preference, but the AWS toolkit for Eclipse is very easy to use and can speed the process up a bit.