Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

쟝이의 세상

AWS에서 애플리케이션 로드 밸런서를 사용하여 EC2 인스턴스 관리, 배포 본문

수업내용

AWS에서 애플리케이션 로드 밸런서를 사용하여 EC2 인스턴스 관리, 배포

zyangee 2024. 10. 18. 15:09
📎 실행 과정
1) ALB 생성
2) ALB 보안그룹 생성 ← 2A, 2C 등록
3) (인스턴스 차원)Auto scaler ← ALB: 2A 인스턴스, 2C 인스턴스
min:1 / max:2 / CPU: 50%→30%(인스턴스 개수가 하나 사라짐)
4) 2A(관리 서버) → 접속 → EKS 설치
5) HPA → 파드(pod)
6) SVC(Load Balancer) → aws: ALB생성(k8s에서의 metalLB 역할)

 

📌 이미지(AMI) 생성

AMI는 특정 상태를 캡쳐한 이미지이다.
예를 들어, 어떤 인스턴스(2a 인스턴스)에 OS, 애플리케이션, 설정 파일 등이 포함된 환경을 구성하고, 해당 상태를 이미지로 저장해둔 것이다.

 

EC2 > 인스턴스 > VEC-PRD-HTTPD-PUB-2A 인스턴스 선택 > 작업 > 이미지 및 템플릿 > 이미지 생성

생성화면

- 이미지 이름: VEC-PRD-HTTPD-WEB-AMI-20241018
- 이미지 설명: VEC-PRD-HTTPD-WEB-AMI-20241018[현재 시간 붙여주면 좋음]

결과 화면

 

📌 시작 템플릿 생성

EC2 > 시작 템플릿 > 시작 템플릿 생성

생성 화면

입력 구분 입력 내용
시작 템플릿 이름 및 설명 시작 템플릿 이름 VEC-PRD-NGINX-TEMP
템플릿 버전 설명 VEC-PRD-NGINX-TEMP-[현재날짜][현재시간]
애플리케이션 및 OS 이미지 내 AMI "선택하기"
인스턴스 유형 유형 t2.micro
키 페어 키 페어 이름 zyangee
네트워크 설정 서브넷 VEC-PRD-VPC-NGINX-PUB-2C
보안그룹 선택 VEC-PRD-VPC-NGINX-PUB-2C-SG
고급 네트워크 구성 퍼블릭 IP 활성화
고급 세부정보 IAM 인스턴스 프로파일 s3fullaccess
종료 동작 종료
사용자 데이터 #!/bin/bash
yum install httpd -y service httpd start chkconfig httpd on
aws s3 cp s3://zyangee-as-demo/index.html /var/www/html --region ap-northeast-2

 

결과 화면

 

📌 인스턴스 생성

생성 화면

입력 구분 입력 내용
이름 및 태그 이름 VEC-PRD-VPC-HTTPD-PUB-2C
키 페어 키 페어 이름 zyangee
네트워크 설정 VPC vec-prd-vpc
서브넷 VEC-PRD-VPC-NGINX-PUB-2C
퍼블릭 IP 자동할당 활성화
보안그룹 기존 보안그룹
일반 보안 그룹 VEC-PRD-VPC-NGINC-PUB-2C-SG
고급 네트워크 구성 기본IP 10.250.11.13
종료 시 삭제
고급 세부 정보 IAM 인스턴스 프로파일 s3fullaccess
사용자 데이터 #!/bin/bash
yum install httpd -y service httpd start chkconfig httpd on
aws s3 cp s3://zyangee-as-demo/index.html /var/www/html --region ap-northeast-2

결과 화면

👇🏻 인스턴스 IP 접속 화면

 

📌 대상 그룹 생성

대상 그룹 생성하기 전에 대상 그룹에 넣을 인스턴스 실행해주기

 

EC2 > 대상그룹 > 대상그룹 생성

생성 화면

입력 구분 입력 내용  
1차 그룹 세부 정보 지정 대상 그룹 이름 VEC-NGINX-ALB-TG
프로토콜- 포트 HTTP(80)
VPC vec-prd-vpc
2차 대상 등록 인스턴스 (PUB)2a, 2c 선택

👇🏻 생성된 결과 확인

 

  • 대상 그룹 대상 상태 확인

 

📌 로드밸런서 생성

EC2 > 로드밸런서 > 로드밸런서 생성

생성 화면

입력 구분 입력 내용
Application Load Balancer 선택
기본 구성 로드밸런서 이름 VEC-PRD-ALB
네트워크 매핑 VPC vec-prd-vpc
가용영역 ap-northeast-2a subnet: ~-PUB-2A 선택
ap-northeast-2c subnet: ~-PUB-2C 선택
보안그룹 보안그룹 선택 VEC-NGINX-ALB-SG
리스너 및 라우팅 80 대상 그룹 선택

결과 화면

 

📌 레코드 생성 및 로드밸런서 리스너 추가, 편집

Route 53 > 호스팅 영역 > zyangee.store > 레코드 생성

  • www 레코드 생성

 

  • (아무것도 없이) 레코드 생성

 

👇🏻 레코드 생성된 결과

 

EC2 > 로드밸런서 > 로드밸런서 선택 > 리스너 추가, 편집

  • 리스너 추가
입력 구분 입력 내용
리스너 구성 프로토콜 HTTPS(443)
대상 그룹 VEC-NGINX-ALB-TG
기본 SSL/TLS 서버 인증서 ACM에서(인증서 선택)

결과 화면

 

  • 리스너 편집 (HTTP:80)
입력 구분 입력 내용
리스너 세부정보 프로토콜 HTTP:80  
라우팅 액션 URL로 리디렉션  
URI 부분 프로토콜 HTTPS:443
☑️ 사용자 지정 호스트, 경로, 쿼리를 사용하십시오
호스트 zyangee.store
경로 /
쿼리 (빈칸으로 두기)
상태코드 301

생성 결과 화면

👇🏻 "http://www.zyangee.store" 입력하면 "https://zyangee.store" 로 리디렉션

더보기
리디렉션 결과 화면

 

📌 Auto scaling 그룹 생성

  • 1단계 - 시작 템플릿 선택

 

  • 2단계 - 인스턴스 시작 옵션 선택

 

  • 3단계 - 고급 옵션 구성

입력 구분 입력 내용
로드밸런싱 ☑️ 기존 로드 밸런서에 연결
기존 로드 밸런서에 연결 ☑️ 로드 밸런서 대상 그룹에서 선택
기존 로드밸런서 대상 그룹 VEC-NGINX-ALB-TG
상태 확인 ☑️ Elastic Load Balancer

 

  • 4단계 - 그룹 크기 및 크기 조정 구성

입력 구분 입력 내용
그룹 크기 원하는 용량 2
크기 조정 원하는 최소 용량 1
원하는 최대 용량 2
대상 추적 정책 사용 여부 선택 대상 추적 크기 조정 정책

 

  • 생성 결과 화면

 

 

‼️ 인스턴스로 auto scaling 되는 지 확인 작업