Reputation: 1056
as my question states I need to deploy my web application to AWS.
first let me clear my situation.
I have been using shared host service(JustHost) , to host my website (website built upon Laravel Framework) + php files for the android Application. I used to manage everything like database and files through CPanel.
well since my package is about to expire, also I m expecting more users by the end of September . so I thought about migrating to AWS.I heard a good things about it , Also the current host I m using, it get s slow time to time, and the upload speed is very slow. [I have received few complains from the android users as well as website users].
However when I checked the AWS , I m lost , there are too many services to choose from. also I don't know what excatly I should do .
after long hours of research , the following is what I've understood so far.(correct me if i m wrong), followed by my questions.
I need and EC2 instance as my server. *is it safe 100% to host my data php files and web Application?? I read that EC2 instance could be destroyed *
I need RDS instance What about storing databse in my EC2?
do I really need S3 ?? isn't EC2 enough ?
in some articles I read for deployment, it s better to use Beanstalk is it really necessary ?
Moreover let me illustrate my requirements.
first my Application is not that big , but it s growing, all I need so far is to host my web application (Laravel) and (php files ) for the android app.
is there a way to see the database and manage it from GUI (like phpMyadmin), as well as the files ( because I m used to GUI like Cpanel, i feel lost using cmds) I thought about installing, phpMyAdmin, but i don't users to access the phpMyadmin through website .(example : mywebsite.com/phpMyadmin )
is there a way to auto deploy the web Application from Github to the server?
I would appreciate any answers , regarding my questions ( also I think it would be helpful for anyone who is lost like me)
PS: as i mentioned before I don't need extra big stuff, I need the basics to run the android app and web app , until now I have only 200 users , I m expecting 2000 by the end of September.
Upvotes: 3
Views: 1398
Reputation: 1121
Where to start! First thing you should do is read up on EB Deploy here http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html
I would recommend using elastic beanstalk as it handles the setup of EC2 and RDS internally, less for you to worry about. It also allows you to auto scale as your app grows, and provides you with an easy way to swap your demo and production environments when releasing new features.
You're going to need a bit of command line to deploy, but it's as simple as running "EB deploy" from the working directory once you have checked your code in, you can even set this up to run automatically through GIT, but as its so simple, I wouldn't recommend it to avoid accidental deployments.
On the RDS side of things, there is no GUI as such, but get yourself a copy of MySQL workbench, and connect to your RDS that way. You'll need to look into opening up security rules to allow your computer to connect to the RDS instance.
In regards to S3, Elastic beanstalk deploys your application to S3 as part of the deployment process, so again you don't need to worry about setting this up.
To map a domain, you can use a CNAME record to point the www. subdomain to the application endpoint that gets generated by Elastic Beanstalk, for non-www domains, you need to set your domain up through Route 53. I have found it easier to actually purchase a domain through Amazon, as they handle the set up their side. If you already own a domain, read this article about pointing the A record to an AWS Load balancer http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.Route53.html
Upvotes: 1