[섹션 2] LAMP 웹 서버 및 Application Load Balancer 구성(2)
ㄹ. 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