저번 시간에 ALB까지 만들어보았다.
이번 시간엔 ALB를 사용하여 트래픽을 분산하고 AutoScaling을 통해 자동으로 인스턴스를 확장 또는 축소를 해볼 것이다.
AMI 생성
웹 서버 AMI(Amazon Machine Image)를 만들면 일관된 환경에서 여러 웹 서버 인스턴스를 빠르게 배포할 수 있다.
확장성을 향상시키고 관리를 단순화할 수 있다.
먼저 만들었던 인스턴스로 들어간다.
들어가서 화면의 오른쪽의 작업 -> 이미지 및 템플릿 -> 이미지 생성을 통해 ami를 생성한다.
이걸 통해서 이미지 생성 창으로 들어와서 대충 이름 짓고 ami 생성을 한다.
NAT Gateway 각 가용영역에 추가
NAT Gateway를 사용하여 프라이빗 서브넷의 인스턴스가 인터넷에 연결할 수 있도록 한다.
각 가용 영역에 NAT Gateway를 추가함으로써 고가용성을 제공하고 네트워크 성능을 향상시킨다.
그러니까 NAT 게이트웨이에 들어와서 먼저 생성을 한다.
여기서 서브넷을 선택할 때 public 중 하나만 선택하면 된다.
이렇게 설정하고 NAT 게이트웨이를 생성한다.
왜 퍼블릭에서 생성을 할까? NAT 게이트웨이가 사설 ip를 공용 ip로 바꾸는 거니까 사설이지 않나?
아니다. 일반적으로 NAT 게이트웨이는 퍼블릭 서브넷에 위치하여 생성된다.
NAT 게이트웨이는 인터넷과 통신해야 하므로 퍼블릭 서브넷에 위치하여 퍼블릭 IP 주소를 할당받고 인터넷과 통신할 수 있다.
퍼블릭 서브넷에 NAT 게이트웨이를 배치함으로써 프라이빗 서브넷에 있는 인스턴스가 NAT 게이트웨이를 통해 인터넷에 액세스할 수 있다.
NAT 게이트웨이는 퍼블릭 서브넷에 위치하기 때문에 인터넷과 통신할 수 있으며, 프라이빗 서브넷의 인스턴스는 NAT 게이트웨이를 통해 퍼블릭 서브넷으로 트래픽을 전달하여 인터넷에 연결된다.
따라서 NAT 게이트웨이를 생성할 때, 보통 퍼블릭 서브넷에 위치하여 생성하고 퍼블릭 서브넷을 선택하여 연결하는 것이 일반적인 방법이다.
각 가용영역에 추가하기 위해 NAT 두 개를 만든다.
이렇게 두 개를 만들면 각 가용영역에 추가하는 것이다.
Private Routing Table에 NAT Gateway 라우팅 항목 추가
프라이빗 서브넷의 인스턴스가 NAT Gateway를 통해 인터넷에 액세스할 수 있도록 라우팅을 구성한다.
이를 통해 네트워크 트래픽이 올바른 경로를 따라 목적지에 도달할 수 있습니다.
라우팅 테이블에 들어가서 private 라우팅 테이블 두 개가 있는지 먼저 확인한다.
그 후 들어가서 이제 라우팅 항목을 추가하면 된다.
이렇게 해서 두 개 만들면 된다 끝!
AutoScaling 만들기
AutoScaling을 사용하면 웹 애플리케이션의 부하에 따라 인스턴스를 자동으로 확장하거나 축소할 수 있다.
이를 통해서 사용자 트래픽에 따라 자원을 효율적으로 관리할 수 있습니다.
먼저 EC2에 들어가서 시작 템플릿 생성을 한다.
why?
템플릿 생성은 반복적인 작업을 줄이고 일관성을 유지하기 위한 것이다.
특히, 동일한 구성을 여러 번 사용해야 할 때 유용하다.
오토 스케일링은 프라이빗 환경에서 하는 게 좋으므로 네트워크 설정 부분에서 서브넷을 프라이빗으로 한다.
오토 스케일링을 프라이빗 서브넷에서 사용하면 보안이 강화되고 인프라가 더욱 확장 가능해진다.
외부 공격으로부터 보호하면서 인터넷 연결을 통해 안정적으로 서비스를 제공할 수 있음을 의미한다.
이렇게 하고 시작 템플릿을 생성한다.
그 다음에 LB를 만들건데 대상 그룹으로 묶은 다음 하면 더 편하다,
오토 스케일링 그룹 생성을 하면 알아서 생성이 되기 때문에 굳이 하진 말자.
Auto Scaling Group
여기서 시작 템플릿을 확인할 수 있잖아. 이 시작 템플릿을 기반으로 이제 수행을 할거다.
이제 이렇게 묶음으로써 연결을 시켜준다.
이제 로드밸런스를 만들어야 하므로 새 로드 밸런서에 연결해야 한다.
만드는 과정에서 가용 영역 및 서브넷을 퍼블릭으로 바꿔야 하는데
이렇게 바꿔야 하는 이유는 ALB 자체를 인터넷에 노출시키기 위해서다.
여기서 대상 그룹을 만들 수 있기에 굳이 대상그룹을 들어가지 않았던 것이다.
대상 그룹 생성 누른다.
이름도 tg(target group)를 붙인다.
최종 검토를 하자
이제 그룹 생성을 하면 된다.
EC2 인스턴스를 확인해보면 새로운 두 인스턴스가 생성된 것을 확인할 수 있는데 이 부분은 이제 각각의 Private 영역에 있는 인스턴스들이 대상 그룹으로 묶인 상태로 오토 스케일링이 적용된 상태이다.
로드밸런서 들어가서 체크한 후 DNS를 복사한다.
이 도메인으로 로드밸런서가 얘네한테 토스해서 프라이빗에 있는 애들을 볼 수 있다.
=> 새로고침 할 때마다 IP 바뀜(auto scaling 생기는 수대로)
+) 오류 고치기
=> auto scaling 그룹에서 타겟 그룹이랑 연결
이후 기본 인스턴스를 지우고 나서도 auto scaling 때문에 다시 생성된다.
보안 그룹은 모든 트래픽 or 이렇게 SSH/HTTP
실습은 자주 할 수록 더 좋다. 앞으로도 많은 포스팅 올리도록 하겠다.
'Cloud > AWS' 카테고리의 다른 글
[AWS] ALB와 오토스케일링 사용 실습 -1 (6) | 2024.12.17 |
---|---|
[AWS] DockerHub + EC2를 활용하여 간단하게 배포하기 (45) | 2024.08.05 |
[AWS] ECR에 도커 이미지 업로드 (44) | 2024.07.31 |
[AWS] EFS 실습 (with EC2, VPC) (38) | 2024.06.28 |
VPC 간 통신 및 인터넷 접속을 위한 AWS 구성 요소의 역할과 설정방법 (31) | 2024.05.31 |