Oracle Cloud Infrastructure VM 인스턴스 설정하기

며칠 전 클리앙 커뮤니티에 아이디 cvdf95님께서 국경절이 다가오면서 중국 정부의 강력한 VPN 차단에 따른 대응으로 V2ray를 사용하여 일반 웹사이트의 ssl 트래픽으로 위장하는 프록시 설정하는 법 강의를 올려주셨습니다. (Link)

그 글에서 그 동안 잘 몰랐던 Oracle Cloud가 Always Free 정책을 제공한다는 내용을 보고 VM 인스턴스를 깔고 V2ray 설치 및 StrongSwan VPN 셋팅을 해봤습니다.

일단 잘 돌아는 가는데 Free Tier 조건이 어디까지가 한계인지를 잘 모르겠네요. 다른 건 몰라도 제공 트래픽이 Outbound 월 10TB까지 무료라는데, Inbound 트래픽은 명시가 안되어 있어서 향후에 어떻게 과금이 될지 모르겠습니다.

가입하면 바로 30일간 Free Trial 기간을 주는데, 저는 홍콩 거주로 설정했더니 HKD 2,300의 Credit을 받았습니다. 이 Credit이 모두 소진되거나 30일이 경과되거나 둘 중의 하나의 조건이 충족되면 Free Trial 기간이 끝나고, 이 기간이 끝난뒤에는 Always Free 조건에 해당되지 않는 서비스는 자동으로 중단된다고 되어 있습니다.

우선 30일 내에 HKD 2,300의 Free Trial Credit이 어디까지 소진 되는지를 봐야 알 것 같습니다. 한 2일 돌려본 바로는 CPU Hour에서만 Credit을 공제하고 있는데, Free Trial 기간이라서 그런지 VM 인스턴스 생성 시 Always Free 정책을 만족하는 가상머신 인스턴스 구성(Compute Shape)이 없습니다. 즉 지금 가상머신을 잘 셋팅해봤자 유료 정책으로 업그레이드 하지 않는 이상 셋팅된 인스턴스는 사용 못하게 됩니다. (아래는 FAQ에서 발췌)
What happens after Free Trial credits are used up or expire?
After your Free Trial credits are used up or at the end of the 30-day period, whichever comes first, you will be notified and will have a grace period of 30 days starting from the expiration date to upgrade to paid. If you do not upgrade to paid by the end of the grace period, your Free Trial service instances and data will be deleted. However, your Always Free services will continue to operate.
뭐 성능 테스트 겸해서 간단히 셋팅했다가 Free Trial 기간 지나고 나면 다시 허용된 사양 만으로 인스턴스 만들어서 사용해봐야 할 것 같습니다. 어차피 저는 VPN이나 Proxy 용도로만 사용할 거라서 CPU 자원은 크게 중요하지 않으니까요.

현재(1.Oct.2019) 한국 Legion에서는 Always Free 정책을 만족하는 VM Instance를 만들 수 없습니다. 일본 Legion을 홈으로 하는 계정도 만들어 봤는데, 일본 Legion도 Always Free 정책을 만족하는 VM Instance를 만들 수 없습니다. (Out of host capacity 에러 발생) 새로 계정을 만드실 분들은 다른 지역을 Home Legion으로 하는 계정을 만들어 테스트 해보시기 바랍니다.

수정(3.Oct.2019) 일본 Legion은 자원할당에 문제가 있었던 것 같습니다. 10월 2일자로 Always Free 정책을 만족하는 인스턴스 생성이 가능합니다.

수정(19.Oct.2019) 오늘 Trial 기간 얼마나 남았나 확인하러 한국 Legion에 들어가봤더니 Always Free 정책이 적용되는 인스턴스 생성이 가능한 것으로 확인됩니다. 언제부터 가능했는지는 모르겠네요. 단, 지난 번 일본 Legion 처럼 Out of host capacity 에러가 나면서 실제 생성은 불가능한 상태입니다. 내일쯤 다시 한번 생성 시도해봐야 겠네요.

사족이 너무 길었네요.

일단 가입 및 인스턴스 설정하는 과정에서 여러 시행착오를 겪기도 했고 다른 분들도 어려워 하시는 것 같아 나중을 위한 기록 겸해서 내용을 정리해 봅니다.

기존에 셋팅한 계정 외에 블로그에 포스팅 하려고 새로운 계정으로 가입부터 진행했는데, 처음 계정 생성할 때와는 달리 문제가 생겨서 그 부분에 대한 이야기도 간단히 해보겠습니다.

우선 가입은 아래와 같은 순서로 진행했습니다.

처음에도 홍콩으로 지역을 설정하고 진행했기 때문에 이번에도 홍콩으로 설정했습니다


서울 Legion 선택하고 홍콩 연락처 등 적고 다음으로 진행했습니다.


전화번호로 문자 인증을 진행합니다.


계정 비번을 설정하는데, 생각보다 조건이 까다롭습니다.


위와 같은 화면이 뜨면서 결제 정보를 입력해 달라고 하면 다음 페이지에서 신용카드 정보를 입력합니다. (저는 여기서 한국 신용카드 정보 입력했습니다.)


신용카드 정보 입력이 끝나면 체크박스에 체크하고 가입을 마치면 됩니다.

그런데!!


이런 메시지가 뜨면서 신용카드가 거부됐다는 겁니다. 분명히 결제 승인 문자가 오고 바로 취소 문자가 왔기 때문에 신용카드 결제 가능 여부는 확인이 됐을텐데, 이상하다 싶어서 지난번 가입 시 사용했던 신용카드 및 또 다른 신용카드로 다시 테스트 해봤는데 위와 같이 또 거부됐다는 메시지가 뜹니다. (세 카드 모두 한국카드였습니다.)

처음 가입할 때는 아무런 문제가 없었고 승인과정도 없이 바로 계정을 사용할 수 있었습니다. 도대체 뭐가 문제인가 싶어서 Live Chat을 시도했습니다.


위 가입 진행 시점에 공유기는 GCE에 올린 Shadowsocks에 연결되어 있었고 미국 IP였습니다. 가입 시 선택한 지역은 홍콩이였으며, 사용한 신용카드는 한국 카드였죠. 게다가 입력했던 카드 중의 하나는 지난번 가입 시 사용했던 카드구요. 주소도 지난번 가입할 때와 동일한 주소로 입력했으니...

어쨌든 제가 다른 지역에서 가입 신청하고 있다는 것 파악하는 것으로 봤을 때 IP를 확인하고 있다는 것이고, 신용카드 정보로 중복 가입이라는 것 까지 파악하고 있으니 일단 가입 진행하고 있는 계정은 승인이 안 날 것 같았습니다.
그래서 아내의 명의로 새로 계정을 만들 때 내 신용카드로 결제 정보를 제공해도 문제가 없다는 것 까지 확인하고, 가입 신청은 같은 지역에서 해야한다는 것으로 대략 이해하고 채팅을 마쳤습니다.

위에서 말씀드렸던 클리앙 글의 댓글에서 cvdf95님이 가입 신청 시 신용 카드와 IP 때문에 여러 번 시도했다는 댓글이 그제서야 생각이 났습니다. (기억력이 안 좋으면 몸이 고생합니다..)
첫번째 가입할 때는 홍콩IP로 홍콩 주소지 적어서 진행해서 문제가 없었던 것 같았습니다.

그래서 다시 다른 이메일 계정으로 재가입을 시도했습니다.
일단 Web Proxy 플러그인으로 브라우저는 한국 IP인 상태로, 처음 지역 선택은 한국으로 선택하고, 한국 주소 적고, 한국 휴대전화 번호로 인증받고, 처음 가입 때 사용하지 않은 한국 신용카드 정보를 다시 넣고 진행했더니, 일단 가입신청 자체는 완료됐습니다!

홍콩으로 신청할 때는 HKD 2,300 Credit을 주더니, 한국으로 신청할 때는 SGD 400 Credit을 주네요. 얘들도 한국에서는 유한회사인가 봅니다.


15분이 지나도 로그인이 안되길래 메일을 확인해보니 가입 신청 검토 중이라네요. 처음 홍콩 정보 기재하여 가입 시에는 승인 절차가 없이 바로 Oracle Cloud 홈페이지로 넘어가서, VM 인스턴스 생성을 바로 시작할 수 있었습니다.

참고로 첫 가입신청 페이지에서 지역을 한국으로 설정하면 홍콩으로 설정했을 때와 다르게 뭔가 개인정보 제공에 동의해야 하는 체크박스가 생깁니다.
아마도 한국의 법적인 규제 때문에 처음에 뭔가 개인정보제공에 대한 동의 및 승인 절차가 반드시 필요한 것으로 생각됩니다.

가입신청이 완료되었으니 승인 메일을 기다렸고, 약 16시간 만에 승인 메일을 받았습니다.

Oracle Cloud에 로그인을 해봅니다.


상단의 VM 인스턴스 생성을 클릭합니다.


인스턴스 이름을 입력하고, 인스턴스에 설치할 운영체제나 이미지를 선택합니다.
운영체제는 초기에 Oracle Linux로 설정되어 있으니 익숙한 운영체제로 선택하시면 됩니다.

저는 지난 번에는 CentOS를 설치했어서 이번에는 Ubuntu를 선택했습니다. "항상 무료 적격" 이라는 표시가 있는 이미지만 Always Free 정책이 적용되는 이미지입니다.

위 이미지에서 밑줄친 구성,네트워크, 스토리지 옵션 표시(숨기기) 링크를 누르면 인스턴스의 일부 내용을 설정할 수 있습니다.


아래로 스크롤 해보면 "인스턴스 구성" 이라는 항목이 보이는데, 여기서 우측에 있는 "구성 변경" 버튼을 누르면 아래와 같이 선택할 수 있는 인스턴스 구성 목록이 슬라이드 되어 나옵니다.

가상 클라이언트 네트워크 설정에서 저는 공용 IP 주소 지정은 안하는 걸로 선택하고 넘어갔는데, 그러면 나중에 공용 IP를 따로 예약해서 할당 받아야하니 그냥 처음부터 "공용 IP 주소 지정"을 선택하시는게 편할 것 같습니다.


단, 현재 서울 Legion에는 Always Free 정책에 적합한 인스턴스 구성이 표시되지 않습니다. (VM.Standard.E2.1.Micro 구성이 목록에 있어야 선택할 수 있는데, 목록 자체에 표시가 안 됩니다.) 클리앙 글의 링크에 있는 중국 사이트 사이트에 가보니 서울 Legion에도 저 구성이 표시됐었는데, 목록에서 사라졌다고 합니다. 다른 Legion으로 계정 다시 신청 해봐야겠습니다.)

위에서 적었던 것처럼 30일의 무료 체험 기간이 지나고 나서도 Always Free 정책에 준하는 구성이 표시가 되지 않으면 무조건 유료 사용을 해야하는 상황이 될 수 있으므로 30일 뒤의 상황을 봐야할 것 같고, 일단 무료 체험 기간은 Credit이 소모될 예정이므로 CPU Hour는 얼마나 과금하는지 비교할 겸해서 목록에서 제일 높은 사양으로 선택해봤습니다.


볼륨 공간도 Always Free 정책에 맞춰 100GB 내에서 인스턴스 두개 돌릴 거면 그냥 50GB씩 쓰는 걸로 생각하고 변경하지 않았습니다. 필요에 따라 70GB & 30GB나 60GB & 40GB 구성으로 조정해도 될 것 같습니다.

Oracle Cloud는 서버 접속에 아이디, 암호 방식이 아닌 SSH 키를 이용한다고 하므로, 이 단계에서 SSH 키를 입력해주어야 합니다. 생성 시 입력하지 않고 나중에 설정할 수 있는 방법도 있을텐데 (안 찾아봤습니다.) Oracle Cloud가 생각보다 설정이 직관적이지 않기 때문에 가능하면 지금 설정하는게 편합니다.

SSH 생성하는 방법은 아래 링크 참고하세요.

SSH 공개키는 별도로 지정된 파일을 입력하거나 직접 공개키 문자열을 입력할 수도 있습니다.

고급 옵션 표시 부분은 따로 설정하지 않고 인스턴스를 생성했습니다.

인스턴스 생성이 끝나면 아래와 같이 생성된 VM 인스턴스의 정보가 표시됩니다.


공용 IP 주소 지정을 안하고 생성했더니 공용 IP가 없습니다. (인스턴스 생성 시 지정하신 분들은 외부에서 접근할 수 있는 IP가 표시됩니다.)
외부에서 접근을 할 수 없으니 IP를 지정해 줘야합니다. IP는 아래와 같이 지정하시면 됩니다.

위 페이지에서 아래로 스크롤을 내리고, "연결된 VNIC" 항목을 선택합니다.


위와 같이 화면이 바뀌면 연결된 VNIC 목록에서 공용 IP를 설정할 인스턴스 이름을 클릭합니다.


다시 좌측의 리소스 목록에서 "IP 주소" 항목을 클릭하고, 우측의 ... 메뉴를 선택한 후 "편집" 항목을 클릭합니다.


위와 같은 팝업 설정 창이 뜨면 "예약된 공용 IP"를 선택하고 예약된 공용 IP 입력란에 "예약된 공용 IP 새로 만들기"를 선택합니다 예약된 공용 IP 이름은 참조용으로 적어주고 "업데이트" 버튼을 누르면 인스턴스에 외부에서 접근할 수 있는 IP가 바로 할당됩니다.

외부 공용 IP까지 할당되었으면 포트포워딩(Port Forwarding)을 해줄 차례입니다.
기본적으로 SSH 연결을 위해 22번은 열려있습니다.

인스턴스에 기타 서비스를 올리고 해당 서비스가 사용하는 Port로 외부의 요청이 연결될 수 있도록 하려면 아래와 같이 하시면 됩니다.


좌측 상단 햄버거 메뉴를 누르고 "네트워킹" > "가상 클라우드 네트워크"를 클릭합니다.


인스턴스와 연결된 VNIC 이름을 클릭합니다.


서브넷 목록에서 "공유 서브넷" 을 클릭합니다.


현재 설정되어 있는 보안 목록(Security List)을 선택합니다.


TCP 프로토콜에 대해 SSH 연결을 위한 22번 포트가 열려있는 것이 보입니다.


저는 어차피 혼자 VPN 이나 Proxy 서버를 셋팅해서 쓸 거라서 모든 포트를 다 개방합니다. 해킹 당해봐야 서버 내에는 별 자료가 없어서..

위 이미지의 "수신 규칙1" 항목 처럼 소스 CIDR을 "0.0.0.0/0"으로 입력하면 전세계 모든 42억개 IP에서 오는 요청을 그대로 전부 인스턴스로 보냅니다. 
위 소스는 서브넷 마스크 형태로 입력하며, 입력하는 방법에 따라 들어오는 IP를 제한할 수 있습니다. 원하는 범위의 서브넷 마스크를 계산하는 방법은 "검색"하시면 됩니다.
"IP 프로토콜" 항목을 "모든 프로토콜"로 선택하면 모든 포트 개방입니다.

특정 포트만 선택 적으로 개방하려면 위 "수신 규칙2" 항목처럼 입력하면 됩니다. 모든 외부 IP에서 TCP 프로토콜로 들어오는 60021 포트의 신호를 인스턴스의 21번 포트로 전달하는 설정입니다. 그러면 외부에서 인스턴스의 FTP 서비스로 연결하려면 공용 IP의 60021 포트로 연결하면 됩니다.

저는 1번 처럼 모든 포트를 개방할 예정이므로 예제로 입력한 2번 설정 항목은 지웠습니다.


모든 외부로의 송신도 기본적으로 모든 포트가 열려있습니다.

여기까지 Oracle Cloud 가입, 인스턴스 생성, 포트 포워딩까지 설명 드렸습니다.

다음에는 위 인스턴스에 Strongswan으로 IKEV2 VPN 서버를 설치 및 셋팅하는 방법 및 V2Ray Proxy 서버 설치 및 설정하는 방법을 포스팅해 보겠습니다.

댓글

이 블로그의 인기 게시물

OpenWrt 공유기에 Wireguard 설정하기

Cloudflare DNS 서비스를 통해 Let's Encrypt 인증서 발급 및 갱신 자동화하고 v2-ui에 http+tls 위장 적용하기

샤오미 공유기 3세대(Mi Router R3G)에 OpenWrt 올리기