Overview
Configuring AWS EC2 auto scaling group for PostgreSQL
This section reviews how to configure an AWS EC2 instance for a PostgreSQL server. We will
Create a security group that allows SSH and PostgreSQL server connections
Create a launch template
Create server using auto scaling group (recommended) OR single instance
Attach an elastic IP address to our instance
Each of these subsections contains a video that walks through the instructions.
Why use AWS EC2 Auto Scaling over a single instance?
Auto-scaling adds or removes EC2 instances depending on changes in demand on the server. By using an auto scaling group, we can keep costs down by utilizing a smaller-sized instance (i.e 2 vCPUs) and adding instances when CPU usage increases.
AWS EC2 auto scaling allows you to
Assign a launch template to your auto scale group
A launch template is a saved pre-configuration of an instance that you can use to launch instances that have the same parameters
AWS uses your launch template to add instances you've previously configured when scaling out your application
Note: scaling out is when AWS adds instances when demand increases
Configure the minimum, maximum, and desired number of instances for your application
Prevent certain instances from being automatically terminated when scaling in
Note: scaling in is when AWS removes instances when demand decreases
Set a scaling policy that defines when instances should be added or removed from the group
References
Guides
(1) Research Documentation for Creating Jupyter Hub Server Using AWS, https://docs-jupyter.davidjachochavez.org/
(2) Better Programming (Medium), How to Provision a Cheap PostgreSQL Database in AWS EC2, https://medium.com/better-programming/how-to-provision-a-cheap-postgresql-database-in-aws-ec2-9984ff3ddaea
Documentations
(3) Amazon EC2 Instance Types, https://aws.amazon.com/ec2/instance-types/
(4) Amazon EC2 On-Demand Instance Pricing, https://aws.amazon.com/ec2/pricing/on-demand/
(5) Amazon Elastic Compute Cloud, Amazon EBS-optimized instances, https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html
(6) AWS EC2 Auto Scaling User Guide, What is Amazon EC2 Auto Scaling?, https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html
(7) Amazon EC2 Auto Scaling, Creating a launch template for an Auto Scaling Group, https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html
(8) Amazon EC2 Auto Scaling, Health checks for Auto Scaling, https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html
(9) Amazon Elastic Compute Cloud, Status checks for your instance, https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html
(10) Amazon EC2 Auto Scaling, Controlling which Auto Scaling instances terminate during scale in, https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html
(11) Amazon EC2 Auto Scaling, Target tracking scaling policies, https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html
Forums
(12) StackOverflow, What is the smallest AWS EC2 Instance I can run Postgres DB on?, https://stackoverflow.com/questions/61718959/what-is-the-smallest-aws-ec2-instance-i-can-run-a-postgres-db-on
(13) StackOverflow, How does the ARM architecture differ from x86?, https://stackoverflow.com/questions/14794460/how-does-the-arm-architecture-differ-from-x86
Last updated