Is it possible to use Amazon web service to host a Rails application?
Thanks.
Yes, you should be able to set that up in several different ways on AWS.
Since you can configure an EC-2 instance much like a dedicated server, you can install any software you want and configure it to your needs.
There are some nice ruby tools here:
http://amazon-ec2.rubyforge.org/
Also 37 signals is on AWS - http://aws.amazon.com/solutions/case-studies/37signals/
I recommend a simple Amazon Linux AMI Micro instance EBS backed to get started on the free tier.
http://aws.amazon.com/free/
This more of an Updated Answer.
You can use Elastic BeanStalk for Ruby deployment using Passenger. Checkout the links AWS Elastic Beanstalk Runs Ruby and Integrates with Amazon VPC and AWS Elastic Beanstalk - Ruby Support and VPC Integration
As Tom mentioned, a simple EBS AMI should be enough to get started. At BitNami we have created Ruby on Rails AMIs and make them available for free We also offer a hosting service on top of Amazon that you can combine with the AWS free tier service to basically get free server for 1 year (618Mb RAM, 30gb) which is more than enough for development and light hosting.
Related
I have a rails application that is currently hosted on Heroku. It is used on our local network only, and my boss does not want a 3rd party hosting our data. I convinced IT to set me up a virtual windows server to deploy my app on. However, it has been very difficult to set up for production.
Is there anyway that I can use a hosting service for my application, but have the database reside on our local network?
Or is there an easier way to deploy a rails app on a windows server? I have been looking into using the Linux Subsystem for Windows.
If your app is used on your local network only, why not ditch Heroku and host your Rails app locally as well? What benefit is a scalable cloud hosting provider giving you? Especially since it seems your boss has security concerns about remote hosting of a database. Bringing the entire thing in house may be the best solution.
Simple answer is yes you can, but why would you. It's simpler to run your application locally than connecting your remote app to a local database.
Your best bet is to use a Linux virtual machine instead of Windows, usually there is to much hassle to get rails application to work on windows, especially compiling native gems.
I suggest that you get a CentOS VM, and install Nginx with passenger gem using rbenv or rvm.
Digital Ocean has a nice guide that explains this process in details:
How To Deploy Rails Apps Using Passenger With Nginx on CentOS 6.5
What are the useful gems or softwares that will help deployment of RoR 3.2 application on the clouds?
There is no specific requirements since I just want to get experience with it. But I am thinking of Amazon EC2 as a primary environment to test the application. The goal is to deploy it in the multiple servers.
I guess the most naive way would be launching the same application on multiple servers at the same time, but that will requires a lot of manual restart/reboot which requires a lot of human resources.
Is a single application of ruby on rails just not suited well for deployment on multiple servers?
We use Capistrano (https://github.com/capistrano/capistrano) to communicate with multiple EC2 instances on AWS.
We use Chef (https://github.com/opscode/chef) to do the system management configuration.
You can get cookbooks for various applications that you want to install (eg nginx, monit, logrotate...) from Opscode (http://community.opscode.com/cookbooks)
You will need both Capistrano and Chef to setup and deploy to AWS.
Puppet is another system management configuration that you can use too. (https://github.com/puppetlabs/puppet)
This is what Capistrano is for.
https://github.com/capistrano/capistrano/wiki/
I am planning to deploy an application on AWS. It is an application that exposes some REST/Json webservices.
It has a CMS UI created used active_admin.
Can I deploy that system in AWS? Or it is intended to be used only to deploy webservices systems?
Thanks
In addition to Joe's answer, EC2 gives you a virtual server. You can log on the the virtual computer with ssh and install any software you need.
You don't even have to run a web server - if you wanted to run a program to process information (ie, render computer graphics images), you could do that as well.
I think what you are looking for is Amazon EC2 (which is part of AWS). You can setup a small instance pretty quickly and that should let you deploy your rails application.
There is a lot of demand in my country for rails and hosting, yet there is not one provider that does this. Are there packaged solutions, or at least guides, out there that can help me get started with providing hosting to people?
You can think of it as a local Heroku.com
I think there is no detailed guides, because every hosting is differs because the demands are different.
For a small sites the Apache/NginX and Phusion Passenger will be very good, because it is easy to use. For large sites, a dedicated VPS is a better solution, because it cannot stale performance (e.g. memory) from other sites.
Some special cases, you can use separated mongrel or webrick instances and proxy them over the webserver.
See the following keywords in google: capistrano, phusion passenger, ruby enterprise, linux rails hosting, xen vps hosting.
Partnering with Jelastic PaaS is a perfect match here. This cloud platform provides out-of-box support for Ruby hosting with automated deployment to containers, automatic scaling and intuitive UI for management https://jelastic.com/blog/ruby-paas-hosting/
And it can be installed on top of any infrastructure (bare metal, IaaS, clouds like Azure or GCP). Currently, it is already available in many countries from local service providers https://jelastic.cloud/
If interested, just drop a message here https://jelastic.com/cloud-platform-for-hosting-providers/
Does anyone have done the rails application deployment on EC2 using poolpary gems and Chef server(not Chef solo). Please share your experiences if you know some blogs or code links(except poolpartyrb.com and related to it).
The poolparty script must be able to launch an selected AMI instance with two EBS blocks(data and DB) use one elastic ip,fetch code repo and install Chef server on selected instance. Or if you have used Chef server for rails deployment please share your exp.
Thanks,
Pravin
How far did you get with your pool party script?
launching EC2 instances is explained in this detailed example
the EBS part is explained in this github issue
to deploy an application from git, use chef's deploy resource
installing chef is done using gem install chef
Maybe you can share what you have and where exactly you're currently stuck.