안녕하세요 :)
오늘은 전시간에 사용했던 OpenVPN을 사용하여 Private Subnet에 있는 EC2에 접속을 할 것 입니다.
순서
1. EC2 생성 & nginx 설치
2. Target Group & ALB 설정
3. Web Page 접속
1. EC2 생성 & nginx 설치
Private Subnet에 EC2 인스턴스를 생성해 줍니다.
보안그룹의 유형은 SSH, Source는 My IP(Local IP)로 설정하였습니다.
이렇게 Private Subnet에 서버 2개를 생성했습니다.
SSH 접속을 위해 해당 명령어를 복사해줍니다.
openvpn으로 접속해 놓은 상태에서 해당 명령어를 입력했습니다.
인스턴스를 만들 때 사용했던 pem키가 없다고 뜹니다.
그래서 새로 Powershell을 열어서 해당 키가 들어있는 파일까지 경로를 이동하여 다시 접근했습니다.
그랬더니 22번 포트 타임아웃이 뜨네요.
그래서 Security Group으로 들어가서 인바운드 규칙을 수정했습니다.
혹시 OpenVPN에 관련된 포트를 안넣어 줘서 그런가하고 OpenVPN SG과 같은 인바운드 규칙으로 편집해줬습니다.
역시 접속이 안됩니다.
이것저것 해보다가 SG의 문제가 아닌가? 하는 궁금증이 생겨서 인바운드에 모든 트랙픽을 허용하는 룰을 추가해 봤더니 접근이 되더라구요. 그래서 다시 SG그룹을 수정해줬습니다.
접속이 안됐던 이유는 처음에 EC2를 생성했을 때 SSH / MY IP를 넣어줬습니다.
생각해보니 로컬PC에서 내부망으로 접속하는게 아니고 OpenVPN을 통해서 내부망으로 접근해야되기 때문에
OpenVPN의 IP를 추가해줘야 했습니다.
Private Subnet에 접근 완료!
sudo yum update -y
sudo yum install -y nginx
sudo systemctl restart nginx
해당 명령어들을 입력해서 nginx를 설치해줍니다
2. Target Group & ALB 설정
이제 Web Server에 접근하기 위해 ALB설정을 하여 ALB의 DNS로 접근해주는 단계 입니다.
우선 ALB의 SG을 먼저 생성해줍니다.
저는 추후에 ACM인증서를 발급받아 HTTPS로 접근까지 시도할 거라서 443포트도 추가 해줬습니다.
ALB에 사용될 Target Group입니다.
#Target Group은 ALB가 부하분산될 모임들입니다.
#즉 ALB가 부하분산을 할 때 어디로 분산을 할 것인지를 모은 그룹입니다.
대상그룹이 생성되었습니다.
다만 아직 ELB를 생성하지 않았기 때문에, 로드밸런서가 설정되지 않은 상태(None associated)로 나옵니다.
VPC는 로드밸런싱할 VPC를 선택해줍니다.
외부에서 ALB를 통해 웹에 들어오는거라서 internet-facing 선택하고 public subnet에 생성합니다.
2-1, 2-5에서 만들었던 설정들을 보안그룹과 대상그룹에 설정해줍니다.
ALB 생성 완료했습니다.
3. Web Page 접속
ALB의 DNS주소를 사용하여 Private subnet의 EC2에 접근을 해줍니다.
504 Gateway Time out이 뜨는걸보니 EC2만들 때 본안그룹에 HPPT를 추가 안해준거 같습니다.
1-9 사진을 보니 역시나 22번 포트만 추가되어 있습니다.
웹 서버 인스턴스 보안그룹에 80포트를 추가해줍니다.
접근 성공했습니다.
오늘은 OpenVPN을 사용하여 사용자가 VPC내부 네트워크에 있는것처럼 Private subnet의 EC2에 접근해 봤습니다.
오늘은 보안그룹에서 오류가 많이 났습니다. 하지만 덕분에 보안그룹을 통해 트래픽이 어떻게 나가고 들어오는지 다시 생각하게 되었고 머리속으로 구체적인 아키텍쳐에 대한 그림을 그려보며 해당 실습을 잘 마무리할 수 있었습니다 :)
'AWS > OpenVPN' 카테고리의 다른 글
[Open VPN #1] OpenVPN 무료버전 설치 및 사용 (1) | 2023.03.16 |
---|