ElastiCache on aws EC2 - amazon-web-services

I have implemented the Elastic Search by installing it into the EC2 as well as consuming the Managed service from aws.
Is there any similar way to install the ElastiCache into the EC2 rather than using managed service from AWS. If there is, how it will be installed in EC2?

Redis and Memcached both are very popular software for caching the data. You can install these on any platform including the EC2 server. You can follow memcached installation and Redis installation to install them on Ubuntu EC2 instance. AWS also offers the managed version of these as ElastiCache, wherein you have to choose which one you want to use ie Redis or Memcached.
As mentioned in the home page of elastiCache :
Managed, Redis or Memcached-compatible in-memory data store.
Benefits of having a self-managed (wherein you have to install/manage Redis or elasticsearh) is nicly explained here.

Related

How to connect Lightsail with Elasticache

How do we connect AWS Lightsail to Elasticache? I've set VPC peering but that's as far as I get. Anyone knows a step-by-step guide that shows how to do it?
[edit]
We have an application that uses Memcached to persist some data between nodes. The installation currently uses 4 servers: two nodes, 1 RDBMS and 1 Memcached server and is currently running on DigitalOcean servers. Our intention is to install the nodes on Lightsail servers and use AWS services directly from the Lightsail servers, such as RDS and Elasticache.
There are no problems connecting to an RDS MySQL instance from the Lightsail servers but a timeout occurs when trying to attach to the Memcached service. I know it's a security issue, I just can't find any doc that makes that connection work.

Creation of VMS within AWS Ec2

I am trying to design and making architecture of cloud application deployment resources in AWS cloud using EC2, S3, and RDS. Here I have a little bit of confusion about AWS infrastructure, which I am describing here.
I already have a AWS EC2 machine - Ubuntu 16.04 LTS. Is possible to create another VMs within my Ubuntu? I mean, can I use Linux or CentOS within my EC2 Ubuntu machine?
I am a beginner in cloud and AWS world, still exploring about AWS infrastructure.
When you instantiate your EC2 instance you are required to select an AMI. the AMI is an amazon machine image. This essentially describes what OS (CentOS, Ubuntu, RedHat, etc) will be installed on your EC2 instance. Most likely you selected the Amazon Linux AMI which installs amazon's own flavor of CentOS. Once the instance is up, you will not be able to install a different OS on it. You will have to terminate your existing instance and spin up a new EC2 instance with the AMI that you want.
That being said, you can also use a tool such as Docker https://www.docker.com/. This allows you to spin up docker containers. Each docker container acts like a VM and will allow you to spin up multiple different docker containers with whatever OS you want within your single EC2 instance.

Enterprise Apps with Docker and Elastic Beanstalk

I'm new to Docker and EB but not AWS. I've worked in environments where dedicated tenancy is a requirement, whether due to HIPPA or some other data protection requirements.
So far as I can tell, in order to deploy a Docker image, you must use Beanstalk, which means you aren't able to have a dedicated tenancy. I found this forum question that says if you create a VPC, you can have a dedicated Beanstalk. Is this correct? If so, will it work with Docker? If so any guides would be helpful.
Have you looked at Amazon's ECS service? It is a Docker container service that doesn't use Elastic Beanstalk.
You can also install Docker on any EC2 instance.
If you use a VPC then you can set the default tenancy to dedicated, which will result in dedicated tenancy instances being created by Beanstalk. You should be using a VPC already if you are concerned with HIPAA compliance, or if you want access to pretty much any of the new features released by Amazon in the last year.
Also, EBS stands for Elastic Block Storage, Elastic Beanstalk is usually abbreviated EB.
If you'd like to venture a bit more, you can also use other tools like
Kubernetes
Apache Mesos
RancherOS
For a more comprehensive list of Docker/Container related projects you can see this post:
How to scale Docker containers in production
You can run them all in EC2 with VPC, also using dedicated tenancy if you'd like to.

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

Explaining AWS services, ec2 and rds

I don't understand the use for AWS EC2 and RDS as separate services.
Is an EC2 instance a necessary prerequisite of launching an RDS instance? Can you have a database on your EC2 instance?
RDS is a database-as-a-service; you don't know or care what it is running on, because you don't install it, manage it or perform any of the maintenance on the box it runs on (i.e. software updates). AWS takes care of all of that for you and simply charges you by the hour for using the service.
You can install SQL Server or MySQL (or any other database) on your own EC2 instance, but now its your responsibility to administer. Both are valid uses cases, but in general, for small databases, and especially for test and dev databases, I install SQL Server on my own EC2 instances and manage it myself to have flexibility and save money.
For larger, more critical and production databases, RDS is often a better choice - at a higher cost. The best scenario for you will depend on a lot of things (your budget, your skills, the need for high availability etc).
You can install any databases on ec2 instance (whatever in windows or Linux). ec2 is a standalone virtual server with your fully control
But RDS service, you needn't care of the detail on how to install the database, set the environment, upgrade the version, backup/restore, multi-AZ setup, and so on, AWS RDS Service will take care all of them. Get it ready and you can immediately connect it and start your work. The way to provide RDS services are very similar as service elasticache (memcached & redis)
There is no require for you to launch a new ec2 instance for RDS service setup.
Don't mix ec2 and RDS. They are separate services.
Another way to make you understand this question is,
Amazon RDS is a Software as a Service (SaaS) that provides a full featured relational database service