Suhwanc

 

어제 하루 종일 aws ec2 인스턴스를 만들어놓고 안에 서버를 열어두었는데

도무지 외부에서 인스턴스의 public ip 로 접근이 안되길래 여기저기 찾아보면서 별짓 다해본 경험을 정리해두고자 한다. (정확히 말하자면, 내건 탄력적 ip로 설정해두었다!)

 

 

1. 보안 그룹 설정

 

안되는 이유를 검색하면 90% 등장하는 것이 보안 그룹 설정이었다.

보안 그룹은 간단히 말하면, 내 컴퓨터에서 서버를 열고 다른 사람이 들어올 수 있도록 하는 포트 포워딩 기능을 총괄한다.

크게 인바운드, 아웃바운드가 있는데 일단 아웃바운드는 인스턴스에서 나가는 정보니깐 모두 열어놓은게 기본값이고

인바운드는 인스턴스로의 접근이기 때문에 아무나 막 들여보내주면 안 된다.

 

따라서 인바운드에서 내가 접근을 허용할 포트 번호를 추가해주는 과정이 필요하다.

 

 

나는 기본적으로있는 RDP 이외에 (RDP는 인스턴스 접근 시 원격으로 접근하니까 당연히 있어야 함!)

http로 public ip에 접근할 수 있도록 HTTP를 모두 오픈했고, 

내 프로그램이 3000번 포트로 접근 시 동작하기 때문에 3000번 포트도 모두 열어두었다.

 

일단 이 보안 그룹 설정은 당연히 해야 할 아주아주 기본적인 내용이다. 

 

 

2. 윈도우 방화벽 설정

 

이런.. 보안 그룹 설정을 했는데도 아직 ip 접근이 안된다.

잘못한 것도 없는데 자꾸 거부당한다고 뜨거나 연결할 수 없다고 한다 ㅠㅠ

 

이럴 때 만약 우리의 인스턴스가 윈도우 서버라면, 방화벽 문제를 살펴보아야 한다 ㅠ

 

[과정]

1. 인스턴스 내부에서 "firewall" 검색

2. 좌측에 "Advanced settings" 클릭

3. "inbound Rules" 클릭

4. 오른쪽 "New Rules" 클릭

5. Port 클릭 후 다음 버튼

6. 위에 TCP 선택 후 아래에 보이는 Specific local ports 에 80, 443, 3000 등 아까 인바운드에 넣은 거 대충 다 넣어주기

7. 그다음 모두 allow 누르면 된다.

 

 

아이고.. 이래도 안된다.

 

 

3. 재부팅 & 명상의 시간

 

하다 보니 aws ec2에 보안 그룹을 설정하면 반영되는 딜레이가 좀 걸리는 것 같았다.

혹시 기다려보면 될 수도 있으니 인스턴스 재부팅을 한 번 하면서 마음에 안정을 갖도록 하자 ㅠㅠ

 

 

4. iis 설정

 

와 이래도 안돼?.. 여기까지 왔다면 일단 고생하셨다는 말을 드리고 싶다.

 

이번엔 iis라는 internet information service라는 놈인데.. 이걸 설치하면 아마 인스턴스 내부에 있는 파일을 읽어올 수 있을 것이다.

아래 영상을 참조하자.

edu.goorm.io/learn/lecture/12947/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-%EC%95%84%EB%A7%88%EC%A1%B4-%EC%9B%B9-%EC%84%9C%EB%B9%84%EC%8A%A4-aws/lesson/561675/ec2-%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-%EC%9B%B9%EC%84%9C%EB%B2%84-%EC%82%AC%EC%9A%A9

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

만약 이 과정이 된다면, 여러분의 방화벽은 문제가 없을 가능성이 크다.

 

여기 나와있는 대로 index.html 파일을 외부에서 접근하다 보면 어느새 갑자기 나도 되는 현상을 목격할 수 있다.

 

 

5. 명상의 시간 & 취침

 

여기까지 안되면 나도 잘 모른다. 일단 다시 생각해보던지 다음 날 일어나서 생각해보자.

 

 

 

6. 기상 후 아웃바운드 설정

 

아침 해가 밝았다. 교수님께 말씀을 드려야 하는데.. 그전에 혹시 모르니 다시 해보자.

 

이번엔 내 프로그램이 동작하는 3000번 포트의 아웃바운드를 건드려보았다.

아니 분명 aws ec2에서 아웃바운드는 모두 열었다고 하지 않았어요?!라고 하면..

인스턴스에서 방화벽은 아직 남아있잖아요? ㅠㅠ

 

맞다. 우린 아까 인바운드만 건드렸었다.

이번엔 2번 과정과 비슷하게 아웃바운드에서의 규칙을 추가해보자.

 

 

7. 성공!

 

암튼 난 성공했다! 다 했는데도 안되면 저도 몰라요 ㅠㅠ