Skip to main content

How to create an Auto Scaling group - Load Balancer with a domain name managed from route53 - AWS

Let's assumed you have requested your ACM, so in other words, you've got already your SSL for your domain name and you've got the domain name ready too with Route53.

Let's start deploying an EC2 instance and let it ready with the microservices and frontend we need, for the purpose of this example the instance was set it up with a Centos7 with a service which autostarts the backend Java services and with Nginx as the one is going to be running the front end plus a Reverse Proxy. once you've restarted that instance and it starts without any trouble starting up the whole services, so let's create an Image of that instance.

we are going to be

1  Creating a Classic load balancer
2: Creating a Launch Template
3: Creating an Auto Scaling Group

 let's start creating a classic load balancer 



Select your security group 

Choose your certificate from ACM, for this purpose that process was done before about requesting the ACM certificate


Now pay attention to step 5, we have not selected in there any instance to start with, so that it is going to be managed with an Auto Scale group starting from a launch template


After you have created the load balancer, you've got to make an alias from the domain name to the Load Balancer, so go to Route53 - DNS Management  - Hosted zones and select your domain name, click on Create Record Set, click on Alias YES, click on Alias Target and pick up the Load Balancer name you gave and click on Create


now the domain name is pointing to the Load Balancer

now let's go to AUTO SCALING  - Launch Configurations and click on My AMIs and select the AMI I create before 




I have chosen a t2.micro for the purpose of the example


I have chosen Create Auto Scaling Group after the Launch template was created, the path to go there is EC2 - AUTO SCALING - Launch Configurations, just select your template and create the auto-scaling group in there


I have given a name to the AutoScaling group, I have added the subnets, and pay attention to the one important thing, I have clicked on Receive traffic from one or more load balancers, so when I did that it immediately allowed me to attach the available load balancers to it, the Health Check Grace Period is by default 300 seconds, I changed by 150







in some seconds you will see the instances being deployed on the EC2 - Instances
making this short if you delete one instance of the maximum instance, it will automatically start a new one, if the instances are getting to the average CPU utilization, it will start a new instance automatically and if the instances are not being used, it starts turning down the instances.


Java Api and Frontend to test it 

Comments

Popular posts from this blog

How to deploy a VueJS App using Nginx on Ubuntu

There are thousands of blogs and websites out there explaining how to do a hello world and how to start with VueJS, but in this little post, I’m just going to be explaining how to do deploy a VueJs app after you have run the command through the CLI npm run build . So when you run the command npm run build a dist folder is created and that folder’s got the essential .js files to run our app, when we want to run our app on an Nginx server by default the vue-router is not going to work well so that Nginx does not come ready to work by default with a VueJs app This is basically for a Linux Ubuntu distribution if you’ve got any other Linux distribution just pay attention where is going to be set the www/html folder and the Nginx settings so that this is useful for any Linux distribution  Install and configure nginx sudo apt install nginx Double check to make sure the nginx service is running with command service nginx status, then open your browser and enter url

How to do pagination SpringBoot with Jbctemplate, MySQL

We are going to be working on a topic which is a basic need when doing any app, and it is Pagination. let's get started creating a product table at https://mockaroo.com/ create table products ( id INT, name VARCHAR(50), code VARCHAR(50) ); insert into products (id, name, code) values (1, 'Hettinger-Goyette', '42549-680'); insert into products (id, name, code) values (2, 'Konopelski-Klein', '49527-724'); insert into products (id, name, code) values (3, 'Smitham, Kuhlman and Balistreri', '53238-003'); insert into products (id, name, code) values (4, 'Hettinger, Weissnat and Goodwin', '0143-9916'); insert into products (id, name, code) values (5, 'Rowe Inc', '42291-898'); insert into products (id, name, code) values (6, 'Ernser-Hauck', '10544-617'); insert into products (id, name, code) values (7, 'Maggio and Sons', '68788-9087'); insert into products (id, name,

How to secure SpringBoot with SSL and Tomcat or Undertow

when we are going to take our applications to production mode, we must have an SSL certificate for the FrontEnd and   BackEnd too, in this case, our backend is a  SpringBoot which is using a tomcat embedded server. Terminology TLS vs SSL TLS is the successor to SSL. It is a protocol that ensures privacy between communicating applications. Unless otherwise stated, in this document consider TLS and SSL as interchangable. Certificate (cert) The public half of a public/private key pair with some additional metadata about who issued it etc. It may be freely given to anyone. Private Key A private key can verify that its corresponding certificate/public key was used to encrypt data. It is never given out publicly. Certificate Authority (CA) A company that issues digital certificates. For SSL/TLS certificates, there are a small number of providers (e.g. Symantec/Versign/Thawte, Comodo, GoDaddy, LetsEncrypt) whose certificates are included by most browsers and Operating System