여러가지/Docker & AWS

[섹션 2] LAMP 웹 서버 및 Application Load Balancer 구성(2)

15June 2023. 11. 24. 03:02

ㄹ. EFS를 통한 네트워크 파일 시스템 구성

: 마운트, 서로 다른 인스턴스의 자원 공유 가능하게 함

 

1) EFS 용 Security Group

VPC > 보안 그룹 생성

: (EC2 인스턴스와 EFS의 마운트 타겟)두 리소스 사이에 트래픽이 이동하는 것을 허용하는 보안 그룹 필요

보안 그룹 이름: lab-vpc-efs-sg

-> 소스: EC2 인스턴스에 적용되어있는 보안 그룹 선택

키: Name

값: lab-vpc-efs-sg

2) EFS 생성

- Availability

- Lifecycle

- Performance/Throughput mode

- Network

..

이름: lab-vpc-efs

스토리지 클래스: Standard

[ ] 자동 백업 활성화

처리량: 버스트

키: Name

값: lab-vpc-efs

-> 퍼블릭 서브넷

3) EFS - EC2 마운트

a. EFS 탑재 핼퍼 설치 및 마운트 포인트 생성(public-ec2-a1) 

-> 마운트 전

> sudo yum install amazon-efs-utils -y  // EFS 탑재 핼퍼 설치

> mkdir /var/www/html/efs  // 마운트 포인트 생성

b. 마운트

파일시스템 > lab-vpc-efs > 연결 (코드 복사)

> cd /var/www/html

> sudo mount -t efs -o tls fs-06812ee81cd60125b:/ efs

> wget https://lab-s3-web-hosting-june.s3.amazonaws.com/car.jpg (섹션 1의 버킷 안 car.jpg, mycar.html의 객체 URL)

> wget https://lab-s3-web-hosting-june.s3.amazonaws.com/mycar.html

(+) public-ec2-c1도 동일하게 진행 (wget 제외)

=> wget 명령어로 파일을 불러오지 않았는데, 이미 존재한다. 마운트 했기 때문이다.

4) 웹 브라우저를 통한 EFS 마운트 테스트

a. 기본

b. public-ec2-a1의 mycar.html 내용 변경

=> public-ec2-c1의 웹페이지도 변경된 것 확인

 

ㅁ. Application Load Balancer를 통한 이중화 네트워크 구성 (1)

: public EC2를 타겟으로 하는 Application Load Balancer

1) Target Group 생성

- Target type

- Protocol/Port

- Target registration

...

대상 그룹 이름: lab-vpc-public-tg

2) Application Load Balancer 구성

- Scheme

- Network

- Security Group

- Lisner/Rule

...

(선수 작업) 보안 그룹 생성

보안 그룹 이름: lab-vpc-alb-public-sg

키: Name

값: lab-vpc-alb-public-sg

 

로드 밸런서 이름: lab-vpc-alb-public

보안 그룹: lab-vpc-alb-public-sg

3) 웹 브라우저를 통한 Application Load Balancer 작동 테스트

-> 로드 밸런서 DNS 이름

-> public-ec2-c1

-> public-ec2-a1

 

ㅂ. Bastion host와 NAT Gateway를 통한 Private EC2 인스턴스의 외부 통신 구성

1) Private Subnet에 EC2 생성

(private-ec2-a1)

Key pair: ec2-private-seoul

보안 그룹: private-ec2-sg

=> 그 외의 구성은 퍼블릭 EC2와 동일, 단, 사용자 데이터 제외

2) Public Subnet의 EC2를 통해 Private Subnet의 EC2에 접속

(public-ec2-a1)

> vi ec2-private-seoul.pem  // ec2-private-seoul.pem 내용 복사

> chmod 400 ec2-private-seoul.pem 

> ssh -i "ec2-private-seoul.pem" ec2-user@10.1.3.50  // private-ec2-a1

 

-> 외부와 통신 안됨

3) NAT Gateway 생성

이름: nat-gw-a1

서브넷: public-subnet-a1

탄력적 IP 할당

4) Route Table 설정

private-subnet-a1의 Route Table에 nat-gw-a1 추가

-> NAT Gateway를 통해 외부로 트래픽 나감

5) Private Subnet의 EC2의 외부 통신 테스트

-> 외부와 통신 됨

(+) private-ec2-c1, nat-gw-c1 생성 및 동일한 작업

public-ec2-a1에서 private-ec2-c1으로 접속 및 외부 통신 확인

 

 

ㅅ. Application Load Balancer를 통한 이중화 네트워크 구성 (2)

: private EC2를 타겟으로 하는 Application Load Balancer

=> Target Group에 Private 인스턴스 등록

1) Target Group 생성

이름: lab-vpc-alb-private-tg

키: Name

값: lab-vpc-alb-private-tg

2) Application Load Balancer 구성

(선수 작업) 보안 그룹 생성

보안 그룹 이름: lab-vpc-alb-private-sg

로드 밸런서 이름: lab-vpc-alb-private

=> 로드 밸런서에 Public 서브넷 등록

3) 웹 브라우저를 통한 Application Load Balancer 작동 테스트

-> 로드 밸런서 DNS 이름

-> private-ec2-c1

-> private-ec2-a1