Oracle Cloud 오라클 클라우드 인스턴스 flask 웹서버 외부 접속 허용

·2021년 10월 8일
0

Oracle Cloud

목록 보기
2/3
post-thumbnail

https://velog.io/@danceintherain/%EC%98%A4%EB%9D%BC%ED%81%B4-cloud-%ED%94%84%EB%A6%AC%ED%8B%B0%EC%96%B4-%EA%B0%80%EC%9E%85
지난 8월 8일에 오라클 클라우드 가입하고 프리티어 이용해서 인스턴스 만들어뒀는데, 두 달이 지나서야 뭔가를 해보려고 했다. python flask로 아주 간단하게 접속하면 Hello world를 띄우도록 해서 실행시키고 지난번 설정한 공용 ip로 접속해봤더니, 역시나 안 된다.
외부에서 접속하게 하려면 접속할 포트를 열어줘야(방화벽에서?) 했던 것!

아래 게시글들에서 캡쳐와 함께 친절하게 설명해주셔서 열심히 따라했다.
https://pythonblog.co.kr/blog/30/
https://hoing.io/archives/369

1. ORACLE CLOUD 오라클 클라우드 보안 설정

한글메뉴명 기준으로,
좌측 메뉴를 눌러 -> '컴퓨트' 메뉴 -> '인스턴스' 메뉴로 들어간다.
내가 생성해놓은 인스턴스 이름이 보인다, 눌러서 들어간다.
우측에 "기본 VNIC" 에 "서브넷: subnet-20210808-xxxx"를 누른다.

'보안목록'이 나오는데, 나의 경우는 목록이 하나밖에 없었다.
Default Security List for vcn-20210808-xxxx 를 누른다.

포트 22 SSH Remote Login Protocol에 대한 TCP 트래픽입니다. 라고 하면서 22번 포트만 열려있다.
'수신 규칙 추가'를 누르고, '소스 CIDR'에는 '0.0.0.0/0'이라고 입력, (모든 IP를 허용한다는 의미), 'IP 프로토콜'은 'TCP', 소스 포트 범위는 비워두고, '대상 포트 범위'에 추가하고자하는 포트를 입력해준다. 나의 경우에는 80, 443, 5000을 추가했다. 80은 http, 443은 https, 5000은 flask로 서버 띄웠을 때 기본으로 설정되는 포트.

2. 우분투에서 방화벽 해제 설정 - iptables

터미널로 해당 서버에 접속해서 우분투 Ubuntu 20.04 LTS 에 터미널 명령어를 아래와 같이 차례로 입력했다.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT

3개의 명령 다 아무 반응도 없다, 정상이다.
다 입력하고 난 뒤 sudo iptables --list 라고 쳐보면 뭐가 길게 나오는데 맨 위쪽에 아래와 같이

방금 내가 추가했던 3개가(80은 http, 443은 https) 추가된 것을 볼 수 있다.

나의 경우 여기까지 하고나서 "hello, world"를 보여주는 flask 파일을 구동시키고 접속해봤는데 안됐었다. 왜인지 몰랐는데, 분명히 아까 했던 위의 1(오라클 클라우드 보안 설정 수정)이 안되어있어서 1을 다시 해줬다.

3. 테스트


터미널로 SSH접속해서 위와 같이 코딩한 app.py를 python3 app.py 명령어로 실행시켜두고,
내 웹 브라우져에서 공용IP주소 xxx.xxx.xxx.xxx:5000 을 넣었더니 드디어 Hello, Flask World를 볼 수 있었다.

profile
백엔드 개발자. 공동의 목표를 함께 이해한 상태에서 솔직하게 소통하며 일하는 게 가장 즐겁고 효율적이라고 믿는 사람.

0개의 댓글