EC2 > AutoScliang
WEB Auto Scaling 그룹 생성
시작 템플릿 지정
VPC와 가용 영역 지정
로드 밸런서 연결 > 기존 로드 밸런서에 연결 > 로드 밸런서 대상 그룹에서 선택
- Elastic Load Balancer 상태 확인 켜기
- 상태 확인 유예 기간 30초로 설정
- CloudWatch 내에서 그룹 지표 수집 활성화
대상 추적 크기 조정 정책 생성
- 원하는 최대 용량 : 2
- 대상 추적 크기 조정 정책
- 대상 값 : 80
- 인스턴스 워밍업 : 30
- 평균 CPU 사용률이 80 이상이 되면 최대 용량으로 지정한 2만큼 인스턴스가 스케일 아웃되도록 생성
- 확대 정책만 생성하려면 축소 비활성화 체크
Auto Scaling으로 생성될 EC2에 Name 태그 추가
Ga-WEB-SG > 인스턴스 관리
수명주기가 Pending → InService, 상태가 Healthy 이면 잘 된 거임
- Pending에서 InService까지 되는 데 시간이 조금 걸림
LoadBalancer 대상 그룹 Healthy 확인하기
AutoScaling으로 생성된 WEB-C 인스턴스에 접속 후 index.html 수정
[root@bastion ec2-user]# ssh -i Ga-WEB.pem ec2-user@10.100.12.35
Last login: Mon Mar 18 06:25:21 2024 from 10.100.1.53
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
[ec2-user@ip-10-100-12-35 ~]$
[root@ip-10-100-12-35 ~]# echo "WEB C" > /var/www/html/index.html
[root@ip-10-100-12-35 ~]# curl localhost
WEB C
WEB-A 인스턴스 시작 후 LoadBalancer DNS로 브라우저에서 새로고침 해보기 - 라운드 로빈 테스트
대상그룹 Healthy 확인
새로고침 하면서 WEB A와 WEB C가 번갈아서 나오는 것을 확인
DB 보안그룹 인바운드 규칙 수정
기존 DB 인바운드 규칙
Auto Scaling으로 가용영역 C에 생성할 WAS에서 DB에 대한 인바운드 규칙 허용하기
- 이 부분을 안하게 되면 로드 밸런서 대상 그룹에서 Unhealthy가 되며, AutoScaling으로 인한 인스턴스가 무한 생성되는 오류가 생김
- WAS-C Subnet 대역대인 10.100.13.0/24 허용해 주기
WAS Auto Scaling 그룹 생성
시작 템플릿 지정
VPC와 가용 영역 지정
로드 밸런서 연결 > 기존 로드 밸런서에 연결 > 로드 밸런서 대상 그룹에서 선택
태그 생성
- 여기서 Name 태그를 걸어주면, 새로 생기는 인스턴스의 이름이 자동으로 할당됨
Ga-WAS-SG > 인스턴스 관리
수명주기가 Pending → InService, 상태가 Healthy 이면 잘 된 거임
- Pending에서 InService까지 되는 데 시간이 조금 걸림
LoadBalancer 대상 그룹 Healthy 확인하기
AutoScaling으로 생성된 WAS-C 인스턴스에 접속 후 test.jsp, dbtest.jsp 간단한 내용 추가하기
[root@bastion ec2-user]# ssh -i Ga-WAS.pem ec2-user@10.100.13.221
Last login: Tue Mar 19 02:16:43 2024 from 10.100.1.53
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
7 package(s) needed for security, out of 10 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-100-13-221 ~]$
tomcat test → WAS-C tomcat test
[root@ip-10-100-13-221 ROOT]# cat test.jsp
<html>
<head><title>hello world</title></head>
<body>
WAS-C tomcat test
now_time : Sat Jan 20 11:41:45 UTC 2024
</body>
</html>
out.println("WAS-C EC2"); 추가
[root@ip-10-100-13-221 ROOT]# cat dbtest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<h1>DB</h1>
<%
Connection conn=null;
try{
String Url="jdbc:mysql://ga-db.cx2yks8a6je4.ap-northeast-2.rds.amazonaws.com/tomcatDB";
String Id="adminGa";
String Pass="test1234";
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(Url,Id,Pass);
out.println("WAS-C EC2");
out.println("was-db Connection Success!");
}catch(Exception e) {
e.printStackTrace();
}
%>
내용 수정 curl로 확인
[root@ip-10-100-13-221 ROOT]# curl localhost:8080/test.jsp
<html>
<head><title>hello world</title></head>
<body>
WAS-C tomcat test
now_time : Sat Jan 20 11:41:45 UTC 2024
</body>
</html>
[root@ip-10-100-13-221 ROOT]# curl localhost:8080/test.jsp
<html>
<head><title>hello world</title></head>
<body>
WAS-C tomcat test
now_time : Sat Jan 20 11:41:45 UTC 2024
</body>
</html>
[root@ip-10-100-13-221 ROOT]# curl localhost:8080/dbtest.jsp
<h1>DB</h1>
WAS-C EC2
was-db Connection Success!
WEB-C 인스턴스 시작 후 External LoadBalancer DNS로 브라우저에서 새로고침 해보기 - 라운드 로빈 테스트
새로고침 하면서 WAS A와 WAS C 내용이 번갈아서 나오는 것을 확인
'Project > 3-Tier Architecture' 카테고리의 다른 글
[3-Tier] 가비아 도메인 신청 후 AWS Route 53 연결 (0) | 2024.03.19 |
---|---|
[3-Tier] AWS Cloud Watch를 활용한 Auto Scaling Stress부하 테스트 (0) | 2024.03.19 |
[3-Tier] AMI(Amazon Machine Image)생성과 시작 템플릿 만들기 (0) | 2024.03.04 |
[3-Tier] Internal ALB 내부 로드밸런서 생성 (WAS ALB) (0) | 2024.03.01 |
[3-Tier] External ALB 인터넷 경계 로드 밸런서 생성 (WEB ALB) (0) | 2024.03.01 |