시나리오
동작 구조
1. TargetGroup을 생성한다
2. Launch Configuration 생성
- AutoScaling 으로 인해 자동 생성 및 삭제될 인스턴스 템플릿과 같은 것
3. AutoScaling Group을 생성하며 위에서 생성한 LaunchConfiguration을 지정한다
(Start Instance 설정 부분에서 설정한 인스턴스 수 만큼 자동으로 인스턴스가 생성된다)
4. 앞서 생성한 TargetGroup을 편집하여 AutoScaling Group 생성을 통해 자동으로 생성된 Instance를 지정한다
5. LoadBalancer를 생성하여 TargetGroup을 지정한다
목표
1. 이미 생성된 인스턴스로부터 AMI이미지 생성
2. 로드밸런서 생성 및 구성
3. Auto Scaling Group 생성 및 구성
4. Private Subnet 대역 내에서 AutoScaling 을 통해 인스턴스 수를 자동조정
5. CloudWatch 경보 생성 및 인프라 성능 모니터링
기존 인프라
목표 인프라
Auto Scaling용 AMI 생성
1) EC2 서비스로 이동
2) Instances 선택
3) Web Server1 을 우클릭한다
4) Image -> Create Image를 클릭하여 해당 동작중인 Instance를 이미지화 한다
Image Name : Web Server AMI
Image description : Lab AMI for Web Server
create 선택
로드밸런서 생성
1) EC2 서비스의 좌측 탭에 Load Balancers를 클릭
2) Create Load Balancer 를 선택
Application Load balancer를 Create한다
(Http , Https 트래픽에대한 로드밸런서이다)
Configure Load Balancer 페이지
Basic
Name : LabELB
Ipaddress Type : Ipv4
Listener
Http / 80
Avaliability Zones
Public Subnet 1 , 2 선택
Configure Security Groups 페이지
보안그룹을 설정한다
1) Select an existing Security Group을 선택하여 이미 존재하는 보안그룹을 선택한다
2) Enable HTTP access 포함하는 Security Group을 선택한다
Configure Routing 페이지
Target Group : New target Group <= 새로운 타켓 그룹을 생성하여 지정한다
Name : LabGroup
Targe type : instance
Protocol : Http
Port : 80
Health checks
Protocol : Http
Advanced health check settings을 눌러 확장
Healthy threshold : 3
Unhealthy threshold : 2
Timeout : 10
interval : 30
Success codes : 200
따로 할 것은 없다 netxt Review 를 클릭
설정 정보를 확인하고 Create를 클릭한다
Auto Scaling Group 생성
1) Auto Scaling Group 생성
1) 위의 결과로 LabELB가 만들어진 것을 볼 수 있다
2) 좌측탭의 Auto Scaling Groups를 클릭한다
Create Auto Scaling Group 를 클릭한다
우측 하단의 Get Started 를 클릭한다
1) 좌측의 My AMIs를 클릭한다
2) 맨처음 생성했던 Web Server AMI를 Select한다
1) t2.micro를 선택
2) Next: Configure details를 클릭한다
1) Name : LabConfig
2) Monitoring 의 Enable CloudWatch detailed monitoring 를 체크한다
3) Next : Add Storage를 클릭
4) Storage에 대한 작업은 따로 할 것이 없다 넘어간다
1) Select an existing security group을 체크
2) Description탭에 Enable HTTP Access라고 적힌것을 선택
3) Review를 클릭
설정 정보를 확인한다음 Create launch configuration을 클릭한다
1) I acknowledge XXX 를 체크한다
2) Create launch configuration를 클릭한다
1) Group Name : Lab AS Group
2) Group Size : Start with 2 instances
3) Network : My Lab VPC
4) Subnet : Private Subnet 1
5) 하단의 Advanced Details를 클릭하여 확장
1) Receive traffic from one or more load balancers 를 체크
2) Target Groups : LabGroup
3) Health Check Type : ELB
4) Monitoring : Enable CloudWatch Detailed Monitoring
5) Next 클릭
1) Use Scaling policies to adjust the capacity of this group 를 체크한다
2) Name : Increase Group Size
3) Excecute policy when : add new alarm을 눌러 새로운 alarm을 추가한다
1) Whenever : Average of CPU Utilization
2) Is : >= 65 Percent
3) For at least : 1 consecutive periods(s) of 1 Minute
4) Name of alarm : High CPU Utilization
5) Create Alarm 클릭
1) Execute policy when : High CPU Utilization 이 생성된 것을 볼 수 있다
2) Instances need : 60 seconds to warm up after each step
Decrease Group Size
1) Name : Decrease Group Size
2) Execute policy When : Add new alarm을 눌러 새로운 alarm을 생성한다
1) Whenever : Average of CPU Utilization
2) Is : <= 20 Percent
3) For at least 1 Consecutive periods of 1 Minute
4) Name of alarm : Low CPU Utilization
5) Create Alarm을 클릭한다
1) Key : Name , Value : Lab Web Instance
2) Review 클릭
설정 정보를 확인하고 Create Auto Scaling Group를 클릭한다
Auto Scaling Group의 Start인스턴스를 2로 했기 때문에 Auto Scaling Group을 생성했을 때
2개의 인스턴스가 자동으로 생성되는 것을 볼 수 있다.
2) Auto Scaling 작동 확인
1) 좌측탭의 Target Groups를 클릭
2) 생성된 LabGroup을 클릭
3) 하단의 Targets를 선택한다
4) 하단의 2개의 인스턴스가 확인되면 정상 생성된것이다.
추가 적으로 Load Balancers 탭의 LabELB를 클릭하고 DNS명을 기억해놓는다
나중에 사용자들이 해당 Name으로 접속 하게 할 것이다.
Auto Scaling 테스팅
Cloud Watch를 검색하여 클릭한다
좌측탭의 Alarms를 클릭한다
AutoScaling Group을 만들때 만든 Alarm 2개가 보인다
'AWS > Elasticity & Management' 카테고리의 다른 글
AWS - CloudWatch란? (0) | 2019.01.12 |
---|---|
AWS - AutoScaling 서비스 및 테스팅(부하발생기) (0) | 2019.01.07 |
AWS - LoadBalncer 이용 WebServer Loadbalancing하기 (0) | 2019.01.06 |
AWS - SNS(Facebook 등) 서비스 아키텍쳐 구축방법 (0) | 2018.11.23 |
AWS - 이론) Elasticity, Management 서비스 (0) | 2018.11.19 |