Best way to run Redis/Rejson with HA on AWS - amazon-web-services

As AWS & GCP is not providing managed service for any of the modules of Redis. I am looking forward to running Redis ReJson with HA configuration on AWS.
Is it best way to set it up on EC2 with RDB backup? How EBS storage will work as i want multi AZ also auto failover.
Right now somewhere i am planning for deploy it on Kubernetes with helm chart : https://hub.helm.sh/charts/stable/redis-ha
Which one will be better option to deploy EC2 or Kubernetes ? & How data replication will work in multi-AZ if deployed using EC2 or Kubernetes?

RedisLabs provides a managed Redis with modules support on both AWS and GCP.
See: Cloud PRO https://redislabs.com/redis-enterprise-cloud/

Related

How can I use AWS EBS Volumes with bare metal Kubernetes

I am using a manually created Kubernetes Cluster (using kubeadm) deployed on AWS ec2 instances (manually created ec2 instances). I want to use AWS EBS volumes for Kubernetes persistent volume. How can I use AWS EBS volumes within Kubernetes cluster for persistent volumes?
Cluster details:
kubectl veresion: 1.19
kubeadm veresion: 1.19
Posted community wiki for better visibility with general solution as there are no further details / logs provided. Feel free to expand it.
The official supported way to mount Amazon Elastic Block Store as Kubernetes volume on the self-managed Kubernetes cluster running on AWS is to use awsElasticBlockStorevolume type.
To manage the lifecycle of Amazon EBS volumes on the self-managed Kubernetes cluster running on AWS please install Amazon Elastic Block Store Container Storage Interface Driver.

UI in aws ubuntu 16.04 for kubernetes dashboard

I set up kubernetes environment in aws ec2(ubuntu 16.04) instances. There is one master and two slaves. I have created the dashboard in the master node, to access it i required web based UI. I tried to install gnome environment in ec2 instance, but its not working. Is there any other way to access the dashboard of kubernetes or setting up web-UI in aws ec2 instance?
According to the AWS documentation:
This tutorial guides you through deploying the Kubernetes
dashboard to your Amazon EKS cluster, complete with CPU and memory
metrics. It also helps you to create an Amazon EKS administrator
service account that you can use to securely connect to the dashboard
to view and control your cluster.
EDIT:
Check out those guides:
Kubernetes Visualizer
How to Visualize Docker & Kubernetes
Setting up Kubernetes visualization of a cluster
They will help you learn about and setup a Visualizer.
Please let me know if that helped.

Choosing microservice using AWS EC2 and ECS

I am trying to develop a spring cloud micro services. And I planned to deploy into AWS cloud. When I reading AWS resources I found that ECS providing configuration less environment for deploying microservices other than EC2. My doubt is that
Can I choose ECS resource for my complete services deployment without configurations?
For creating ECS service, is EC2 instance mandatory? Can I use ECS only in my account without creating EC2 VM? I need to know about ECS is alternative for EC2?
ECS is a service which offers clustering of vm for docker container, manages container lifecycle.
1) Yes. You can use ECS for your service deployment and it needs some basic configuration which will be one time.
2) No. To run docker container you need EC2 instance without that its not possible to run. EC2 instance are managed by ECS so you only need to provide some config like region,security group etc.
For complete config and deployment refer below link.
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_GetStarted.html

How to do auto scaling for Rancher and Kubernetes clusters on AWS EC2?

Using AWS EC2 to install Rancher cluster. Then setup Kubernetes cluster from Rancher server.
About auto scaling, there are some ways to do:
Use Rancher cattle webhook service
https://rancher.com/docs/rancher/v1.6/en/cattle/webhook-service/
This way should use monitoring tool Prometheus to monitor CPU usage, then add or delete nodes due to alerting.
Use terraform to generate rancher-master-ha, rancher-nodes, networking, database dynamictly
http://rancher.com/aws-rancher-building-resilient-stack/
This can well done for Rancher cluster.
Horizontal Pod Autoscaling Walkthrough
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
It's official horizontal pod autoscaling way.
Kubernetes Autoscaler
https://github.com/kubernetes/autoscaler
It's also a official auto scaling way for Kubernets cluster.
Use AWS Auto Scaling
https://aws.amazon.com/autoscaling/
About this way, how to connect it to Rancher cluster and Kubernetes cluster running on EC2?
There are many ways to do the auto scaling, but which is the best way? And the very important thing is, how to use AWS Auto Scaling for this architecture?
Since you deployed Kubernetes with Rancher, you should use Rancher webhooks for this operation.
Use Prometheus/Grafana to set up webhook when CPU utilization is over some %.

Does AWS support Kubernetes?

I've read that AWS does not support Kubernetes and builds their own Docker orchestration engine EC2 Container Service. However, on Kubernetes getting-started -page there is a guide on how to run Kubernetes on AWS:
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/getting-started-guides/aws.md
Which is right?
You can install Kubernetes on a normal Amazon EC2 server.
The new container service is a separate offering by Amazon, called ECS.
EDIT: AWS released in 2018 a new container service for Kubernetes called EKS: https://aws.amazon.com/eks/
Amazon Elastic Container Service for Kubernetes (Amazon EKS) makes it easy to deploy, manage, and scale containerized applications using Kubernetes on AWS. Amazon EKS runs the Kubernetes management infrastructure for you across multiple AWS availability zones to eliminate a single point of failure.
Kubernetes provides scripts to simple setup a cluster on a set of EC2 machines. The setup does pretty much everything needed to get started quickly.
Here is the link: https://github.com/GoogleCloudPlatform/kubernetes/blob/release-1.0/docs/getting-started-guides/aws.md
Yes its possible to setup Kubernetes on AWS See:http://kubernetes.io/v1.0/docs/getting-started-guides/aws.html
You can also manually setup Kubernetes on AWS by launching a EC2 instance
Foe setting in Redhat ami https://access.redhat.com/articles/1353773
(Note: Kubernetes needs flannel network to be setup for managing networking between docker containers running on different hosts(minions)
Amazons Container Service is unrelated to Kubernetes.
There are 3 main options for installing Kubernetes on AWS:
CoreOS have a cli for installing and managing kubernetes on aws: https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html
Kubernetes have some scripts for setting up a cluster on AWS: http://kubernetes.io/docs/getting-started-guides/aws/
Manual installation on EC2. Lots of options here: http://kubernetes.io/docs/getting-started-guides/#cloud
As an aside minikube is now a thing which is nice for running locally to try stuff out:
http://kubernetes.io/docs/getting-started-guides/minikube/
AWS recently launched EKS, which provides a managed k8s master nodes. This should be
what you are looking for.
Yes. You can use kubeadm to install kubernetes on EC2 instances.
There are other tools also available.
KOPS
EKS
Kubeadm