LAB. Server LoadBalancer
워크플로우
1. vpc 생성
2. 보안 그룹 생성
3. 인스턴스 생성
4. 대상 그룹 생성
5. 로드밸런서 생성

1. VPC 생성
- name : lab
- IPv4 CIDR 블록 : 10.0.0.0/16
- az : a, c
- 프리티어는 t2에서 a랑 c를 지원하기 때문에
- subnet
- public : 10.0.0.0/24(2a), 10.0.1.0/24(2c)
- private 4 : 10.0.2.0/24(2a), 10.0.4.0/24(2a), 10.0.3.0/24(2c), 10.0.5.0/24(2c)
- NAT 게이트웨이 : 1개의 AZ에서
- VPC 엔드포인트 : 없음
- DNS 옵션 : 활성화
2. 보안 그룹 생성
- ALB-SG
- vpc : lab-vpc
- inbound : 80 - anywhere
- WEB-SG
- vpc : lab-vpc
- inbound : 80 - ALB-SG
3. 인스턴스 생성
- web1
- AMI : Amazon Linux 2023 AMI
- 인스턴스 유형: t2.micro
- key : lab-key
- vpc : lab-vpc
- 서브넷 : private1(10.0.2.0/24)
- 퍼블릭 IP : 비활성화
- 보안그룹 : WEB-SG
- 스토리지: 8G
- 사용자 데이터
#!/bin/bash -ex
# Install http php, mysql
dnf update
dnf install httpd php php-mysqlnd php-fpm php-json mariadb105 -y
#Web Service start
systemctl enable --now httpd
#Download web data
cd /var/www/html/
wget https://aws-largeobjects.s3.ap-northeast-2.amazonaws.com/AWS-AcademyACF/lab7-app-php7.zip
unzip lab7-app-php7.zip -d /var/www/html/
chown apache:root /var/www/html/rds.conf.php
- web2
- AMI : Amazon Linux 2023 AMI
- 인스턴스 유형 : t2.micro
- key : lab-key
- vpc : lab-vpc
- 서브넷: private2(10.0.3.0/24)
- 퍼블릭 IP : 비활성화
- 보안 그룹 : WEB-SG
- 스토리지: 8G
- 사용자 데이터
#!/bin/bash -ex
# Install http php, mysql
dnf update
dnf install httpd php php-mysqlnd php-fpm php-json mariadb105 -y
#Web Service start
systemctl enable --now httpd
#Download web data
cd /var/www/html/
wget https://aws-largeobjects.s3.ap-northeast-2.amazonaws.com/AWS-AcademyACF/lab7-app-php7.zip
unzip lab7-app-php7.zip -d /var/www/html/
chown apache:root /var/www/html/rds.conf.php
4. 대상 그룹 생성
- 대상 그룹 생성
- 1단계 : 그룹 세부 정보 지정
- 유형 : 인스턴스
- name : web-alb-tg
- 프로토콜/포트 : HTTP/80
- IP 주소 유형 : IPv4
- vpc : lab-vpc
- 프로토콜 버전 : HTTP1
- 상태 검사
- 2단계 : 대상 등록
- 사용 가능한 인스턴스
- 선택한 인스턴스를 위한 포트 : 80
- [아래에 보류 중인 것으로 포함 선택 후 대상 그룹 생성] 클릭
5. 로드밸런서 생성
- 로드 밸런서 생성
- 유형 : Application Load Balancer
- name : web-alb
- 체계 : 인터넷 경계 (외부 접속용)
- 로드 밸런서 IP 주소 유형 : IPv4
- 네트워크 매핑
- vpc : lab-vpc
- 매핑
- az (ALB가 있을 위치 지정-퍼블릭 서브넷에 있어야 외부 연결 가능) : public
- 보안 그룹 : ALB-SG
- 리스너 및 라우팅
- 프로토콜 : HTTP
- 포트 : 80
- 대상 그룹 : web-alb-tg
동작 확인