How to migrate GCP instances to AWS? - amazon-ec2

I'm trying to migrate GCP instances to AWS, I have been searching for the solution but didn't find any references. Could you please help me with this.

The OS are customized differently in different cloud, so you can only migrate files and applications, by using Cloud Storage or AWS S3 as the bridge to migration files
While for the applications, you're recommended to build from scratch, but it highly depends on what exactly you want to migrate

Related

How to deploy an AWS Kinesis Data Analytics App without downtime

We currently have an AWS Kinesis Data Analytics app that requires a .jar file to run.
We have automated the deployment for our .jar file that resides in an S3 bucket.
Our issue is, whenever the .jar file is updated we are forced to restart the kinesis app to get the new build which is causing downtime
Does anyone have a workaround or another way of deploying the app Without causing downtime ?
Flink itself does not support zero-downtime deployments. While a few users have built their own solutions for this, it requires implementing application-specific deployment automation and tooling. See
Drivetribe's Modern Take On CQRS With Apache Flink
Zero-downtime upgrades of Flink applications
for examples.

How do developers typically use Docker with a Java Maven project and AWS EC2?

I have a single Java application. We developed the application in Eclipse. It is a Maven project. We already have a system for launching our application to AWS EC2. It works but is rudimentary and we would like to learn about the more common and modern approaches other teams use to launch their Java Maven apps to EC2. We have heard of Docker and I researched the tool yesterday. I understand the basics of building an image, tagging it and pushing to either Docker Hub or Amazon's ECS service. I have also read through a few tutorials describing how to pull a Docker image into an EC2 instance. However, I don't know if this is what we are trying to do, given that I am a bit confused about the role Docker can play in our situation to help make our dev ops more robust and efficient.
Currently, we are building our Maven app in Eclipse. When the build completes, we run a second Java file that uses the AWS JDK for Java to
launch an EC2 instance
copy the.jar artifact from the build into this instance
add the instance to a load balancer and
test the app
My understanding of how we can use Docker is as follows. We would Dockerize our application and push it to an online repository according to the steps in this video.
Then we would create an EC2 instance and pull the Docker image into this new instance according to the steps in this tutorial.
If this is the typical flow, then what is the purpose of using Docker here? What is the added benefit, when we are currently ...
creating the instance,
deploying the app directly to the instance and also
testing the running app
all using a simple single Java file and functions from the AWS SDK for Java?
#GNG what are your objectives for containerization?
Amazon ECS is the best method if you want to operate in only AWS environment.
Docker is effective in hybrid environments i.e., on physical servers and VMs.
the Docker image is portable and complete executable of your application: it delivers your jar, but it can also include property files, static resources, etc... You package everything you need and deploy to AWS, but you could decide also to deploy the same image on other platforms (or locally).
Another benefit is the image contains the whole runtime (OS, jdk) so you dont rely on what AWS provides ensuring also isolation from the underlying infrastructure.

Common APIs to launch EC2 and Openstack instances

At work we use Amazon linux Ec2 instances for production purposes. Also, for our internal dev setup we use openstack Cent OS instances.
I want to make a common CLI or expose REST APIs to start and stop instances on both these cloudstacks. (I already have machine images). I understand I can use any of the common SDKs (I plan to use GO) and build this.
Recently, I came across this. I am just wondering if such a thing is already available. Or does the above repo mean something else? There have been also some other articles which mention EC2 support for openstack. I am not sure if it means the same as I what I want to achieve.
There already is some compatibility with ec2 command line clients, for Nova, what you have linked to expands on that to include some network functions (VPC etc.), and openstack heat is compatible with some aws cloudformation templates.
have you looked at euca2ools? - this client was developed by Eucalyptus cloud and is compatible with AWS and nova EC2

Accessing Heroku Postgres Instance from EC2

I have an application that we are currently running on a number of co-located servers and I'm interested in moving everything to the cloud.
I have a legacy application running Postgres and its replacement application using MySql as its data store. I'm interested in moving to EC2 and looking to do this as pain free as possible. I was planning on using Amazon RDS for the MySql data store but am looking for options for the Postgres install.
I know that Heroku is built on top of EC2 and has Postres support and was wondering
Has anyone had any experience accessing a Heroku Postgres database from an application running in EC2. Comments on Performance, Reliability ease of Administration
The other alternative is to install Postgres on EC2 with EBS volumes but I've heard mixed reviews on performance, reliablitity and ease of administration.
Thanks in advance, any experience and suggestions would be greatly appreciated.
I've done this with several colocated boxes on the east coast. Heroku actually has a completely independent service: Heroku Postgres, which is built for this specific use case. The databases you create are all independent (not related to any Heroku apps).

amazon EC2 load balanced - how to deploy web app?

We're looking to move to amazon cloud using EC2 and RDS.
I'm looking at load balancing, which I would like to do, two servers, each in a different availability zone to protect against downtime.
My question is how to deploy web applications and updates to them? I assume there is a better way than individually updating the files on each EC2 server?
In systems past, I have used the vcs puppet module to ensure that the appropriate source code is installed on my system, in addition to using puppet to build the configuration files for the apache/nginx server that I'm using. Another possibility is to push your application in a deployable state (if you're not using a scripting language) to Amazon S3, and have your run-time scripts pull the latest build from your S3 bucket.

Resources