Using Amazon EC2 with Baas - google-app-engine

I am looking for a back end web service interface for our mobile apps but also
need to host a Ubuntu server behind this. Google seems to have an ideal solution
for this with their Compute and App engine, how do I do this with Amazon AWS. Reason being
is the Amazon EC2 has free tier.
Thanks

Related

Google App Engine equivalent VPC Peering with MongoDB Atlas

I find it odd that it's common to host your DB miles away from your webserver, which makes little sense to me.
Also, the cost of serving data from your DBaaS to your PaaS web service and back, then from the web service to the end user, means you're paying more than double as much.
Ideally, I would want a PaaS that scales really well and can host my database and web in the same region at least, while also minimizing costs.
I see many articles on how to do this the AWS way, with VPC Peering. While GCP has VPC also, I have not figured out how I can enable Google App Engine to exist in the same private cloud as a GCP hosted MongoDB Atlas cluster.
Is it possible? If so, how?
If the answer is "just use AWS then", unfortunately AWS does not have the desired PaaS per say, other than another 3rd party like Heroku, that then won't do VPC Peering.
Edit:
VPC peering is now available for GCP and Azure as well.
Original post:
It is not possible to have Google App Engine and a GCP hosted MongoDB Atlas cluster in the same Virtual Private Cloud.
Since they are different projects each one is in a different Virtual Private Cloud. The only way for the two VPCs to communicate internally would be VPC Peering, which is not currently supported. So the only way for them to communicate is publicly, by adding the IP addresses of the GCP services in the whitelist of the Atlas project.
Atlas VPC Peering Documentation:
Atlas does not support VPC Peering for clusters deployed on Google
Cloud Platform. For Atlas clusters deployed on GCP add the IP addresses of your GCP services to Atlas project IP whitelist to grant those services access to the cluster.
Choose the region of your MongoDB Atlas cluster to be the same as your Google App Engine application. Having the services in the same region minimizes latency and network costs.

Upload java chat server

recently I have build a chat application with a client and a server it works fine on a virtual machine. But now I am stuck what I need to do with the server application?
Where can I upload it?
I had found that I can upload apps to Google(app engine) but I don't know the address of the server so the client can't connect to it...
please help me I hope my question is clear...
Google App Engine is a PaaS and cannot run any Java Server application that you have written.
So, you will have to make sure that you understand the App Engine platform and write applications using various services that are provided as part of the platform.
To get started, check the following: https://developers.google.com/appengine/docs/java/gettingstarted/introduction
Google also has an offering called Compute Engine, that provides you with Linux VMs hosted on the Google infrastructure.
So if you are looking at VMs, where you want to host your application, you could look at that. You definitely have more flexbility with the Compute Engine but you have to deal with configuration, settings things up and more Administrative stuff.
Compute Engine is not free whereas App Engine comes with a generous free quota.

Install tomcat on Google app engine?

I am pretty new to this whole idea of cloud and started of with Google app engine. I was able to create the basic 'hello world' program.
When i tried to understand the difference between a cloud and a server I learned that Cloud is where you have an access to virtual instance created exclusively for you and you are free to choose and install software of your choice.
But I don't see such an option with Google-cloud/app-engine. What if I have a tom-cat based application server which I would like to deploy on a cloud? Will Google app engine be of any help or should I try other cloud service providers such as Amazon EC2, hp cloud etc?
/DJ
The cloud type that you are referring to is called Infrastructure as a Service cloud.
OTOH, Google App Engine is Platform as a Service cloud.
The difference is that IaaS are a bunch of virtual machines that you need to setup yourself (OS + app stack), while PaaS typically comes with it's own API, where you write your app against the API and the rest (sw stack + scalability) is taken care of.
AppEngine comes with it's own servlet container (Tomcat is also a servlet container), so from this standpoint you could use your code on AppEngine. But the problem lies elsewhere: AppEngine imposes a set of limitation on the apps:
app must use GAE provided databases.
app can not write to filesystem
app can not have listening sockets
requests must finish in 60 seconds (e.g. no Comet or WebSockets -> no push)
You might want to review the FAQ.
To add to Peter's excellent answer, note that Google also has an IaaS service called Google Compute Engine.
Regarding other cloud query-
Before you start with cloud you might once try other options. Currently deploying application in almost all services are very easy.
few of them are-
Jelastic , Heroku , rackspace , nimbus , openshift etc.
Difference between cloud and server is very well explained already.
Since you mentioned about tomcat based application , I have worked with Jelastic for the same and found very easy to implement.
http://jelastic.com/docs/tomcat
http://jelastic.com/tomcat-hosting
Try all possible option , it will help you more .

Deploy Java Web Application and MySQL database in the cloud

my issue is that I've been developing a Java Web app in Netbeans 7.2, which I've used Hibernate and JSF Facelets to communicate and show the data from a MySQL database deployed in my local server (localhost).
But now, I want to deploy both (my java web app and mysql database) in the cloud in a web server, or something but I don't know even how to start this. I've seen something about Google App Engine, but I didn't get the idea, and many others...
I just need to deploy my app to give access to other people to use my web app.
Google Appengine is a Framework.
its not webserver where you can deploy your app as on your local machine.
what you are looking for is
Amazon EC2
Google ComputeEngine
OpenShift
and others...... (to many to list them all)
most of them are not free.
some like openshift are if you dont need much resources.
there you can install the server you need, (its just like a remote server)
and deploy your app to.

If I create a succesful dot com company utilizing google app engine/datastore will google own it?

Or is it easier to host my own website and database.
The main reason I would use google app engine is the "free" hosting and scalability;
Has anyone got experience using app engine, was it a good experience ?
The answer is no, Google does not own either your code or your data. Both of them are completely yours. Google only provides hosting for it - they have no more claim on your data and IP than Amazon does if you go with EC2. Take a look at section 6.3 of the terms.
I'm running mapfaire.com on the App Engine and I'm having a very good experience. I intend to continue using it for all my applications.

Resources