Is their any fullfledged PaaS providing from Amazon AWS? - amazon-web-services

Is there any PaaS providing from Amazon like Heroku , Pivotal Cloud Foundry, IBM Bluemix?
I know that they have many PaaS helpful services like Amazon RDS for database as a service, Amazon elastic Beanstalk etc which makes blur line between IaaS and Paas concept. but at the end of the day we need to orchestrate all of these thing together. So is there any orchestration providing available from AWS ?

One of the challenges in AWS is that its difficult to draw the line between SaaS, PaaS and IaaS, since there are large number of services available with different functionalities.
However, you can consider AWS Elastic Beanstalk as a PaaS which allows you to provision Web and Database Servers without deeply knowing the underling IaaS aspects of AWS (Though it provisions EC2 instances, Elastic Load Balancers and Autoscaling Groups behind the scene).
If you are planning on using Docker Orchestration, you can consider using AWS ECS as an alternative to docker Swarm.
In addition, there is the AWS Serverless Stack (API Gateway, Lambda) which also can be used to develop applications which is fully managed by AWS.

Related

Suggestion in Deployment of ASP.NET Core Web API in AWS

I have a ASP.NET Core Web API planning to deploy in AWS, I don't have enough background in AWS what is the good package to subscribe in AWS?
My option is Amazon EC2 or Cloud Computing or there is other package for Web API? And my other concern is I also have files to upload by the client need at least of 1 or 2 TB of cloud storage. Can I connect the Cloud Storage services of Amazon to Amazon EC2. I really don't how to start.
You could look at Elastic Beanstalk (EB) as explained in Creating and deploying .NET applications on Elastic Beanstalk. EB is AWS Platform as a Service (Paas) offering which allows you to deploy your code, without managing much or any of EC2 instances, load balancers, security groups and more.
Alternatively, if you can run your app in a docker container, maybe it would be easier to deploy it using ECS Fargate. EB can also be used to deploy dockerized applications.
For storage you can use EFS if you require filesystem-like storage that can be shared across multiple instances, containers or lambda functions.

AWS offerings + Kubernetes - is there some cross over?

So I am reading about kubernetes and AWS service offerings. For example, one of the main advantages of kubernetes is load balancing but AWS has this too.
How do all these products tie in with one another? Are lots of them doing the same job? Is it just a case that there are so many tools out there now?
Maybe this isn't the correct forum for this question. If not I can remove, but just feel a bit overwhelmed with all the various options, and wondering if they are all completely different.
AWS offers much more services than load balancing, automating deployment, scaling, and management of containerized applications, which Kubernetes is.
If you mean Amazon EC2 Container Service (ECS), so both of them fast and scalable solutions for container management.
Actually, there is an managed Amazon Elastic Kubernetes Service also, which integrated with other AWS infrastructure, such as security, monitoring, etc.
So, it depends on your needs. You can read compare of AWS ECS and Kubernetes.
UPDATE
Here is a big comparison of managed Kubernetes services across Digital Ocean, Scaleway, OVHCloud and Linode.
Kubernetes is an infrasructure-agnostic framework for orchestrating containers. It can run on your laptop (Minikube), or installed on a couple of EC2 instances in AWS, or in a fully-managed offering from GCP, Azure and other cloud providers. Many users and organizations choose Kubernetes because of this portability.
AWS, OTOH, is a global cloud provider,or hyperscaler, with over 200 different services. It is impossible to cover them all. Nevertheless, if we narrow it to container-centric services: AWS offers its own proprietary orchestration tools: ECS and Fargate.

How does AWS Elastic Beanstalk fulfil characteristics of cloud computing

I am quite new to cloud computing. I've learned that AWS Elastic Beanstalk takes care of everything in background for the user, but how does it do it exacly ?
Suppose I've deployed a backend written node.js, and I have database that AWS RDS connected with the app
How are those services(AWS EB & AWS RDS) fulfil "On-demand self-service, Resource pooling, Rapid elasticity and Measured service" characteristics in practise ?

AWS & Azure Hybrid Cloud Setup - is this configuration at all possible (Azure Load Balancer -> AWS VM)?

We have all of our cloud assets currently inside Azure, which includes a Service Fabric Cluster containing many applications and services which communicate with Azure VM's through Azure Load Balancers. The VM's have both public and private IP's, and the Load Balancers' frontend IP configurations point to the private IP's of the VM's.
What I need to do is move my VM's to AWS. Service Fabric has to stay put on Azure though. I don't know if this is possible or not. The Service Fabric services communicate with the Azure VM's through the Load Balancers using the VM's private IP addresses. So the only way I could see achieving this is either:
Keep the load balancers in Azure and direct the traffic from them to AWS VM's.
Point Azure Service Fabric to AWS load balancers.
I don't know if either of the above are technologically possible.
For #1, if I used Azure's load balancing, I believe the load balancer front-end IP config would have to use the public IP of the AWS VM, right? Is that not less secure? If I set it up to go through a VPN (if even possible) is that as secure as using internal private ip's as in the current load balancer config?
For #2, again, not sure if this is technologically achievable - can we even have Service Fabric Services "talk" to AWS load balancers? If so, what is the most secure way to achieve this?
I'm not new to the cloud engineering game, but very new to the idea of using two cloud services as a hybrid solution. Any thoughts would be appreciated.
As far as I know creating multiregion / multi-datacenter cluster in Service Fabric is possible.
Here are the brief list of requirements to have initial mindset about how this would work and here is a sample not approved by Microsoft with cross region Service Fabric cluster configuration (I know this are different regions in Azure not different cloud provider but this sample can be of use to see how some of the things are configured).
Hope this helps.
Based on the details provided in the comments of you own question:
SF is cloud agnostic, you could deploy your entire cluster without any dependencies on Azure at all.
The cluster you see in your azure portal is just an Azure Resource Screen used to describe the details of your cluster.
Your are better of creating the entire cluster in AWS, than doing the requested approach, because at the end, the only thing left in azure would be this Azure Resource Screen.
Extending the Oleg answer, "creating multiregion / multi-datacenter cluster in Service Fabric is possible." I would add, that is also possible to create an azure agnostic cluster where you can host on AWS, Google Cloud or On Premises.
The only details that is not well clear, is that any other option not hosted in azure requires an extra level of management, because you have to play around with the resources(VM, Load Balancers, AutoScaling, OS Updates, and so on) to keep the cluster updated and running.
Also, multi-region and multi-zone cluster were something left aside for a long time in the SF roadmap because it is something very complex to do and this is why they avoid recommend, but is possible.
If you want to go for AWS approach, I guide you to this tutorial: Create AWS infrastructure to host a Service Fabric cluster
This is the first of a 4 part tutorial with guidance on how you can Setup a SF Cluster on AWS infrastructure.
Regarding the other resources hosted on Azure, You could still access then from AWS without any problems.

AWS Elastic Beanstalk Vs EC2 Container Service (ECS) - Docker

Have been running Docker with Elastic Beanstalk to deploy a relatively simple app, and it has been working great. Now with ECS on the horizon, I am interested to know what the differences are between the two services, and why one might use one over the other?
Amazon's documentation says the following:
Q: How is Amazon ECS different from AWS Elastic Beanstalk?
AWS Elastic Beanstalk is an application management platform that helps customers easily deploy and scale web applications and services. It keeps the provisioning of building blocks (e.g., EC2, RDS, Elastic Load Balancing, Auto Scaling, CloudWatch), deployment of applications, and health monitoring abstracted from the user so they can just focus on writing code. You simply specify which container images are to be deployed, the CPU and memory requirements, the port mappings, and the container links. Elastic Beanstalk will automatically handle all the details such as provisioning an Amazon ECS cluster, balancing load, auto-scaling, monitoring, and placing your containers across your cluster.
Elastic Beanstalk is ideal if you want to leverage the benefits of containers but just want the simplicity of deploying applications from development to production by uploading a container image. You can work with Amazon ECS directly if you want more fine-grained control for custom application architectures.