(1) CLI를 통해 Key Pair 생성
(2) NAT Gateway
(3) Load Balancing
1. Private & Public Key 생성 및 올리기
* 이전 실습에서는 AWS에서 키 페어 가져오기로 진행하였다
* cmd 창에서 명령어로 AWS로 키 올리기
2. VPC 생성
3. 서브넷 생성
* web과 was를 pub 이름으로 묶어서 진행
- PUB_A : 10.0.0.0/24, ap-northeast-2a
- PUB_C : 10.0.1.0/24, ap-northeast-2c
- DB_A : 10.0.2.0/24, ap-northeast-2a
- DB_C : 10.0.3.0/24, ap-northeast-2c
4. 인터넷 게이트웨이 생성
5. 라우팅 테이블 편집
- 네트워크 대역이 다를 때 Local 대역에 속하면 Local끼리 통신
- 네트워크 대역이 다를 때 Local 대역에 속하지 못하면 인터넷 게이트웨이를 통해 외부로 내보냄
- 현재 라우팅 우선순위는 Local(내부)에 있음(서브넷 마스크가 긴 것에 먼저 맞춤 10.0.0.0/16 > 0.0.0.0/0)
→ 내부에 없는 애들은 외부(인터넷 게이트웨이)로 내보냄
- 외부와 통신할 서브넷을 명시적으로 연결
- 라우팅 테이블에 연결되지 못한 인스턴스들은 공인 IP를 할당받아도 외부로 나갈 수 X
- DB는 업데이트를 위해 인터넷이 연결되어있어야 하기 때문에 NAT 게이트웨이를 통해서 사용
→ NAT 게이트웨이는 포트포워딩 기능이 없기 때문에 외부로 나갈 순 있지 외부에서 들어오기 불가능
→ NAT 게이트웨이는 인터넷 가용 영역에 있어야 하기 때문에 공인 IP 할당
1. NAT 게이트웨이 생성
2. 라우팅 테이블 생성
3. 라우팅 편집
- 네트워크 대역이 다를 때 Local 대역에 속하면 Local끼리 통신
- 네트워크 대역이 다를 때 Local 대역에 속하지 못하면 NAT 게이트웨이를 통해 외부로 내보냄
4. 명시적 서브넷 연결
- 명시적 서브넷에 연결되어있지 않다면 공인 IP를 할당 받더라도 외부 통신 불가
5. 보안 그룹 편집
6. 인스턴스 생성
* 고급 세부 정보의 사용자 데이터에 스크립트 작성 시 인스턴스가 생성될 때 실행
→ 인스턴스 생성 시 공인 IP를 주지 않아도 사용자 데이터를 실행 시키기 위한
최소한의 인터넷이 연결되도록 설정되어있음 (설정이 끝나면 끊김)
7. 공인 IP 할당
- 인스턴스의 사용자 데이터가 정상적으로 실행이 되면 공인 IP로 내용 확인 가능
<NAT 게이트웨이 설정 확인>
- WEB_A1은 인터넷 게이트웨이 라우팅에 연결되어있기 때문에 공인 IP를 통해 외부 접속 가능
- DB_A1는 NAT 게이트웨이 라우팅에 연결되어있기 때문에 외부로 나가기만 가능
1. WEB_A1에 개인키 올리기
- WEB_A1에서 DB_A1로 SSH 접속을 위해서는 DB_A1에는 공개키가, WEB_A1에는 개인키가 존재 해야함
* RSA 공유키 충돌 오류 *
- 원격 호스트 식별 정보가 변경되어서 발생하는 오류
- 해당 경고를 제거하려면 /root/.ssh/known_hosts에 올바른 Host Key 추가
→ [ssh-keygen -R] 명령어를 사용하여 known hosts 정보 갱신
- known hosts 정보 갱신 후 scp 명령어 사용 가능
* 개인키의 이름 : id_rsa
공개키의 이름 : authorized_keys
2. 개인키의 권한 수정
- 개인키는 600 권한
3. ssh 접속
4. 외부 통신 확인
- DB_A1은 NAT 게이트웨이를 통해 외부와 연결
5. MySQL 설치
* 현재 WEB_A1에는 웹 시작 페이지 작동중
WEB_C1 인스턴스 생성 후 두 인스턴스를 로드밸런싱 설정
1. 인스턴스 생성
- PUB_C 서브넷에 WEB_C1 인스턴스 생성
- curl http://169.254.169.254/latest/meta-data/local-ipv4 : 접속하는 인스턴스의 메타정보를 볼 수 있는 명령어(IP)
위의 명령어를 /var/www/html/index.html에 입력하면 인스턴스의 IP만 출력된다
2. 공인 IP 해제
3. 대상 그룹 생성
- Health checks : 로드밸런서가 정상적인 웹 서버로만 트래픽을 보내기 위해 서버의 정상상태를 확인하는 것
- 로드밸런싱을 적용할 인스턴스 설정
4. 로드 밸런서 생성
- 리스너 : 프론트엔드 (외부에서 접속하는 사용자를 위함)
- 대상 그룹이 모두 Healthy가 되어야 설정 적용 성공
5. 로드밸런싱 확인
- cmd 창에서 nslookup 확인
- 새로고침으로 로드 밸런싱 설정 적용 확인
[AWS] 볼륨 | S3 | RDS (0) | 2022.06.22 |
---|---|
[AWS] Bastion | MySQL DB + PHP | MySQL DB + wordpress (0) | 2022.06.21 |
[AWS] PPK Key (puttygen) 생성 | 자체 PEM Key 생성 | SSH 내부 접속 (0) | 2022.06.17 |
[AWS] VPC | VPC 실습 (0) | 2022.06.16 |
[AWS] Docker를 이용하여 MySQL DB + wordpress 연동 (0) | 2022.06.16 |