Amazon RDS를 사용하여 MySQL 데이터베이스를 복수의 가용영역(AZ)에 이중화로 구성하고 Linux 기반의 가상 서버와 MySQL 데이터베이스를 연결해보자 RDS가 복수의 가용영역에 구성되게 되면 한 데이터베이스는 Master로, 한 RDS는 Standby로 구성되며, Master의 데이터베이스에 장애가 생기면 자동으로 Standby되어있는 데이터베이스로 대체되어 서로의 역할이 바뀌게 된다. 읽기 전용(Read Replica) 데이터베이스는 실시간으로 Master 데이터베이스와 싱크를 맞추며 변경사항을 업데이트 한다. 1. Amazon RDS를 통한 MySQL 데이터베이스 이중화(Multi-AZ) 구성 RDS용 SG 생성 Subnet Group 생성 복수의 AZ에 DB 생성 DB 엔진 DB 인스..
target tracking policy에 따라서 Auto Scaling의 Scale-Out을 테스트해보자 target tracking policy에서 기준으로 설정한 cpu 사용을 늘리기 위해 Auto Scaling으로 생성된 2개의 인스턴스에 Application Load Balancer를 통해 부하를 준다. 간단하게 ApacheBench 테스트를 통해 진행한다. public-ec2-a1에 ssh 접속한다. Application Load Balancer에 부하를 줄 수 있도록 소프트웨어 패키지를 설치한다. url에 총 20만개의 request를 보낼건데 1000개를 보내겠다는 의미이다. ApacheBench 테스트가 시작이 된 것이고, ALB로 계속 부하를 주게 된다. ALB의 타겟으로 설정되어 있는..
Launch Template과 Application Load Balancer로 Auto Scaling Group을 만들어보자 Launch Template과 Launch Configuration 두가지로 고를 수 있다. 버전 : 템플릿에서 변경사항이 발생 했을 때 새로운 버전을 만들 수 있음 Launch Template을 재정의해서 커스텀으로 인스턴스의 속성을 지정하거나 수동으로 인스턴스의 유형을 추가할 수 있다. Auto Scaling을 통해 생성되는 인스턴스 타입이나 종류를 더 상세하고 유연하게 설정할 수 있다. 인스턴스 속성 지정 : 인스턴스 속성을 기준으로 인스턴스의 CPU와 메모리 요구사항을 설정하여 인스턴스를 설정하는 옵션 수동으로 인스턴스 유형 추가 : 직접 인스턴스의 타입을 선택하여 인스턴스..
Auto Scaling 구성에 필요한 3가지 항목들을 먼저 준비해보자 1. 현재 Private subnet의 웹서버에 대한 Custom AMI 2. EC2 인스턴스를 미리 설정한 값에 따라 생성할수 있게 해주는 Launch Template 3. Auto Scaling에서 사용할 Application Load Balancer private-ec2-a1의 Custom AMI를 생성해보자 Custom AMI로 Launch Template을 만들어 보자 AWS에서는 미리 설정한 구성 값에 따라서 인스턴스를 생성할 수 있게 해주는 기능으로 Launch Configuration, Launch Template 두가지를 제공하고 있다. 이 두가지는 비슷하긴 한데 Launch Template이 더 상세하고 유연한 설정을..
가상 서버의 용량을 자동으로 증가 또는 축소하는 오토 스케일링 기능을 사용하여 인프라에 확장성과 탄력성을 구현해보자 클라우드 컴퓨팅의 가장 큰 장점이자 클라우드 컴퓨팅을 사용하는 이유 중 하나이다. 오토 스케일링은 서버에 설정한 특정값에 따라 규모를 조정하여 안정적으로 시스템이 운영되도록 하는 기능이다. 1. Auto Scaling을 위한 Launch Template 및 Application Load Balancer 구성 Private subnet의 EC2에 대한 Custom AMI 생성 Auto Scaling을 위한 Launch Template 생성 AMI Key pair Network Storage 등 Auto Scaling 용 Application Load Balancer 구성 (+ Target g..
private 영역의 ec2 인스턴스를 타겟으로 하는 ALB(Application Load Balancer)를 구성해보자 웹서버를 외부와 직접적인 통신이 가능한 public 영역에 그대로 두는 것은 실제 웹서비스를 제공하는데 있어 보안 측면에서 그렇게 적절한 방법은 아니다. 따라서 웹서버를 외부와 직접적인 통신이 제한되어 있는 private 영역에 두고, 이를 ALB를 통해 트래픽을 분산하고 웹 서비스를 제공할 수 있는 환경을 구성해보자 target group 생성 로드 밸런서 생성하기 로드밸런서의 타겟이 private subnet들인데 네트워크 맵핑이 public subnet인 이유는? ec2 인스턴스 같은 리소스들처럼 로드밸런서도 네트워크 인터페이스의 ip를 통해서 통신을 하게 되는데 외부 인터넷과 ..
private 영역에 EC2 인스턴스를 만들고 통신이 가능한 환경을 구성해보자 EC2 인스턴스 생성하기 나머지는 이전 public ec2 만들 때와 동일한 옵션으로 생성한다. 다운로드 받았던 pem 키페어를 이용하여 인스턴스에 접근할 수 있었다. public-ec2-a1에 ec2-private-seoul.pem키를 생성하기 public-ec2-a1에서 private-ec2-a1에 SSH로 접근하기 public-ec2-a1을 통해서 private-ec2-a1에 접속하였다. public-ec2-a1은 private-ec2-a1에 접속하기 위한 중개 서버가 되는데 이를 Bastion host라고 한다. bastion이란? 수호자, 요새 Bastion host는 내부 네트워크와 외부 네트워크를 연결해주는 일종의..
Application Load Balancer를 이용해서 네트워크 이중화를 구성하고, 트래픽을 분산시키는 방식에 대해 알아보자 EC2의 로드 밸런싱 > 타겟 그룹 설정하기 로드 밸런서는 기본적으로 트래픽을 받으면 리스너를 통해 타겟 그룹으로 전달하게 되는데 우선 로드 밸런서를 통해 들어온 트래픽을 받을 대상인 타겟 그룹을 먼저 생성한다. ALB는 protocol HTTP, HTTPS를 지원한다. 여기서 설정한 protocol과 port는 ALB와 타겟이 되는 EC2 인스턴스 사이의 통신에 대한 것인데 타겟이 되는 인스턴스들이 여기서 설정하는 protocol과 port로 오는 요청만 받아들인다는 의미이다. 헬스 체크 : 타겟이 되는 인스턴스의 상태가 정상적인지 지속적으로 체크하는 것 Register tar..
- Total
- Today
- Yesterday
- SG
- javascript
- springboot
- ecr
- Docker
- LOKI
- react
- github action
- RDS
- 리액트
- redux
- AWS
- Grafana
- 모니터링
- ECS
- EC2
- CSS
- html
- 인프라
- ALB
- ci/cd
- js
- Workflow
- subnet
- 로깅
- Hook
- VPC
- Grafana Alert
- Service
- 서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |