In this article we will describe how to create a couple of EC2 instances and how to deploy ClusterControl on EC2.
We will use MySQL Cluster here, but the same steps are applicable to Galera and MySQL Replication.
We assume you already have an EC2 account.
We will not cover how you add extra disk capacity in this tutorial.
It looks like a lot but takes approximately 20 minutes to get a running Cluster.
Creating the Instances
After having logged in on the EC2 Console ( https://console.aws.amazon.com/ec2 ) the first screen you will see is the following.
Press Launch Instance and the following screen shows up:
We will be using "Launch Classic Wizard",so make sure it is selected.
Here you can also select an AMI to use. We strongly recommend that you chose a 64-bit AMI, for this exercise we use the Basic 64-bit Amazon Linux AMI (it is a Redhat inspired image, and uses RPMs to install software). If you prefer to use an Ubuntu AMI, you can press "Community AMIs" , and in the search box you can enter the AMI id ami-8eb584fa and then you will be presented with this AMI: 881935613136/ylastic-base-ubuntu-10.10-maverick-amd64-20110704-1604. Select that one if you want to use Ubuntu, you can also use various RighScale images as well. Just make sure that the "Root Device" says "EBS".
Finally, press "Continue"
In the next screen we chose the number of instances. We will create five m1.large instances (m1.micro does not work with MySQL Cluster), we specify also that we want the servers in the same availability group (here you have some more advanced options, perhaps have 50% of the nodes in availability zone A and the other 50% in availability zone B. For now we don't consider using more than one availability zone):
- 1 instance for ClusterControl
- 2 instances for Data Nodes
- 2 instances for SQL Nodes
Press "Continue".
Press "Continue".
Next we get to a screen where some other fine adjustments can be made. We will skip this part too.
Press "Continue".
Now we have to create a keypair. Here we have written 'severalnines', but you can give it basically any name you want. The keypair is used to login to the EC2 instances we are about to launch.
Press the "Create & Download your Key Pair" and save the keypair. We will soon copy the keypair, so remember where you put it!
Then press "Continue".
On the next screen we define the firewall, select the default security group (you can add more security rules later).
Press "Continue".
Finally, we are ready to launch the instances.
Press "Launch".
You will be presented with a new screen and just press Continue. You will now return to the EC2 Dashboard, and then press "Running Instances" (upper right). You will see the follow screen:
Select the instance on the top. In the lower frame (you will see Private IP Address):
The top instance we will use for ClusterControl. Click through the instances one at a time and record the PRIVATE IP addresses. Here is an example how we will layout MySQL Cluster nodes on the instances (the ip addresses will most likely be different in your setup):
10.202.58.20 - ClusterControl Server (also note the public DNS for this one, e.g, ec2-107-22-127-220.compute-1.amazonaws.com).
10.32.11.164 - Management Node 1
10.202.163.0 - Management Node 2
10.80.237.132 - Data Node 1
10.10.223.14 - Data Node2
10.32.11.164 - SQL Node 1
10.202.163.0 - SQL Node 2
Please note that the SQL Node (mysql server) is colocated with one management server, and that is perfectly fine.
At this stage we can go and select a Configurator: http://www.severalnines.com/resources/configurator
We will use the Cluster Configurator to setup a MySQL Cluster.
Preparations
Before we actually start using the Configurator we need to upload the keypair to the EC2 ClusterControl server.
Locate the severalnines.pem file you created and downloaded.
Put it in a good place e.g, in your home catalog for convenience, and do:
chmod 400 severalnines.pem
If using the Amazon AMI:
johan@goldfish:~$ scp -i severalnines.pem severalnines.pem ec2-user@ec2-72-44-55-2.compute-1.amazonaws.com:
The authenticity of host 'ec2-72-44-55-2.compute-1.amazonaws.com (72.44.55.2)' can't be established.
RSA key fingerprint is e0:cf:55:c4:d9:94:dc:80:c1:9b:f6:fe:5d:ea:3e:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-72-44-55-2.compute-1.amazonaws.com,72.44.55.2' (RSA) to the list of known hosts.
severalnines.pem 100% 1696 1.7KB/s 00:00
Ubuntu AMI:
johan@goldfish:~$ scp -i severalnines.pem severalnines.pem ubuntu@ec2-72-44-55-2.compute-1.amazonaws.com:
The output should be the same as above.
If you can't connect with either ubuntu or ec2-user, then try root. Some AMIs uses this.
The user you can log in with to the instance is called the OS User. The OS User will be needed in the Configurator.
At this stage you have copied the keypair (the .pem file) to the home catalog on the ClusterControl Server. That is great, because now we can use this to ssh without password from the ClusterControl instance/server and all the other instances
Remember this:
If using Amazon AMI:
EC2 Keypair location /home/ec2-user/severalnines.pem
If using Ubuntu AMI:
EC2 Keypair location /home/ubuntu/severalnines.pem
Cluster Configurator
In the Cluster Configurator you will have to set (this is the same options you have to enter for any Configurator you use):
- Cloud Provider - select Amazon EC2
- OS : If you use
Amazon AMI select RHEL6
An Ubuntu AMI, then select Ubuntu - If prompted for Use RPM, select Yes (default) -- applies only to RHEL5/RHEL6.
- OS User:
Amazon AMI: enter ec2-user , without single quotes
Ubuntu: enter ubuntu - If you want to change passwords for the mysql database and the cmon (clustercontrol) user, then you should do it now. Please don't use strange characters like " or \ or $ (behavior is unknown/untested)
- System Memory (Data nodes): m1.large
On the next screen "Map nodes to hostnames, setting directories, and specifying EC2 keypair" you will need to add the ip addresses you recorded a couple of steps back.
Leave data directories and WWWROOT to the suggested values.
For the Keypair enter either:
/home/ec2-user/severalnines.pem
or (if using Ubuntu)
/home/ubuntu/severalnines.pem
When you have entered the IP addresses, press "Next".
You have now reached the screen "Configuration Files".
Enter your email address. Tick the box if you want to have emails from us on updates etc (sent about once per month).
Press "Generate Deployment Scripts".
You will get to a new page and the deployment package will be emailed to you.
Deploying
Copy the deployment package to the ClusterControl Server:
johan@goldfish:~$ scp -i severalnines.pem mysqlcluster-71-rpm.tar.gz ec2-user@ec2-72-44-55-2.compute-1.amazonaws.com:
# or
johan@goldfish:~$ scp -i severalnines.pem mysqlcluster-71.tar.gz ubuntu@ec2-72-44-55-2.compute-1.amazonaws.com:
Log in to the Cluster Control server:
johan@goldfish:~$ ssh -i severalnines.pem ec2-user@ec2-72-44-55-2.compute-1.amazonaws.com
# or
johan@goldfish:~$ ssh -i severalnines.pem ubuntu@ec2-72-44-55-2.compute-1.amazonaws.com
chmod 400 severalnines.pem
tar xfvz mysqlcluster-71-rpm.tar.gz
cd mysqlcluster-71-rpm/cluster/scripts/install
./deploy.sh
# answer yes on the questions and off you go!
Comments
70 comments
nice article
thanks for sharing with us
<a href="https://brollyacademy.com/azure-data-factory-training-in-hyderabad/">Azure Data Factory Training In Hyderabad</a>
"Brolly Ai's Custom GPT course is top-notch! The comprehensive content and hands-on approach provide an excellent learning experience for anyone interested in diving deep into GPT customization. Highly recommended!"
<a href="https://brollyai.com/custom-gpt-application/">Custom GPT Applications </a>
It seems like you're asking for a comment or feedback on the provided tutorial. Here's a possible response:
---
This tutorial provides a detailed step-by-step guide for setting up EC2 instances and deploying ClusterControl for MySQL Cluster on AWS. The instructions are clear and well-organized, making it relatively easy for readers to follow along.
One suggestion for improvement could <a href="https://embeddedhash.in/embedded-systems-course-in-hyderabad/"> Embedded Systems Course in Hyderabad</a> be to include more explanations or context for certain steps, especially for readers who might be new to AWS or database clustering. For example, elaborating on the purpose of certain configurations or commands could enhance understanding for beginners.
Additionally, it might be helpful to include troubleshooting tips or common pitfalls that users might encounter during the setup process. This could help prevent frustration and assist users in resolving issues quickly.
Overall, it's a comprehensive guide that covers the essentials for deploying ClusterControl on EC2, and with a few enhancements, it could be even more user-friendly for a broader audience.
It seems like you're asking for a comment or feedback on the provided tutorial. Here's a possible response:
---
This tutorial provides a detailed step-by-step guide for setting up EC2 instances and deploying Cluster Control for MySQL Cluster on AWS. The instructions are clear and well-organized, making it relatively easy for readers to follow along.
One suggestion for improvement could <a href="https://pmpacademy.in/" > PMP certification course in Hyderabad</a> be to include more explanations or context for certain steps, especially for readers who might be new to AWS or database clustering. For example, elaborating on the purpose of certain configurations or commands could enhance understanding for beginners.
Additionally, it might be helpful to include troubleshooting tips or common pitfalls that users might encounter during the setup process. This could help prevent frustration and assist users in resolving issues quickly.
<a href="https://skill-centre.com/azure-devops-training-in-hyderabad/">Azure DevOps Training In Hyderabad</a>
<a href="https://skill-centre.com/azure-devops-training-in-hyderabad/">Azure DevOps Training In Hyderabad-Bangalore</a>
Looking to master Spring Boot and build robust Java applications? Join Login360's Spring Boot Training in Chennai, where expert trainers guide you with hands-on sessions, real-world projects, and industry-relevant skills. Whether you're a beginner or looking to upskill, our course is designed to help you become a job-ready professional in no time!
Actually I read it yesterday but I had some ideas about it and today I wanted to read it again because it is so well written. Thanks for sharing
Visit here
Highly appreciable regarding the uniqueness of the content. This perhaps makes the readers feel excited to get stick to the subject. Certainly, the learners would thank the blogger for coming up with the innovative content which keeps the readers to be up to date to stand by the competition.
Visit here
Actually I read it yesterday but I had some ideas about it and today I wanted to read it again because it is so well written. Thanks for sharing
Visit here : Best Spring Boot Training Classes In Chennai
Please sign in to leave a comment.