aws는 free tier가 1년이지만 oracle cloud는 평생(상시常時) 무료라고 합니다.
https://www.oracle.com/kr/cloud/free/

그래서 도전해 봤는데, 삽질을 많이 하고, 경험을 정리해서 올립니다.

1. https://cloud.oracle.com 에 회원가입합니다. 신용카드 등록 필요합니다.

2. 왼쪽 상단 메뉴아이콘 눌러서 `컴퓨트 > 인스턴스`를 클릭합니다. Free Tier로 2개까지 무료 인스턴스를 만들 수 있습니다.

인스턴스 메뉴

3. `인스턴스 생성`을 클릭하고 설정을 시작합니다. 서버 이미지는 Oracle Linux 8이 기본인데, 네트워크 설정 등에서 삽질을 무한히 경험해서, 개인적으로는 CentOS나 Ubuntu를 추천합니다. 우측의 이미지 변경을 클릭합니다.

이미지 변경

이 글은 CentOS 8 Stream 이미지를 기준으로 진행하겠습니다.

CentOS 8 Stream 이미지 선택

자동으로 키 쌍 생성하면, Private Key를 다운로드 받을 수 있습니다. 사용자 홈에 `~/keys/` 폴더를 만들고, 다운 받은 key파일을 이동합니다. `chmod 400 ~/keys/ssh-key-2023-07-09.key`으로 퍼미션을 수정합니다.

접속 key

인스턴스를 만들면 공용 IP가 자동으로 붙습니다.

인스턴스 정보

터미널에서 `ssh -i ~/keys/ssh-key-2023-07-09.key opc@132.145.91.36` 명령으로 접속할 수 있습니다. fingerprint 저장은 `yes` 라고 답합니다. 윈도우의 경우 Git Bash창에서 같은 명령을 사용할 수 있습니다. 우분투 이미지는 opc@ 대신 ubuntu@ 아이디로 접속할 수 있습니다.

인스턴스 접속 시도
인스턴스 접속 완료

`sudo dnf install nginx` 명령으로 웹서버를 설치합니다. aws보다는 약간 오래 걸리는 느낌이 있습니다.

nginx 웹서버 설치

설치 후 다음 명령으로 nginx를 시작합니다. 
`sudo systemctl start nginx` 그리고, 잘 동작하는지 확인합니다.
`curl localhost`

nginx 서버 시작

AWS와 달리 인스턴스 안에서도 iptables 방화벽을 열어야 됩니다. iptables 리셋하는 방법도 있는데, 나중에 다른 글에서 다루겠습니다. 
`sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT`

iptables에 80 포트 추가

클라우드 가상 방화벽도 열어야 됩니다. 서브넷을 선택합니다.

서브넷 선택

보안 목록에 `Default Security List*`를 선택합니다.

보안 목록 선택

`수신 규칙 추가`를 선택하고 소스 CIDR은 `0.0.0.0/0`, 대상 포트 범위에 `80`을 입력하고 추가합니다.

80 포트 추가

브라우저에서 nginx 화면을 확인할 수 있습니다. 역시 오라클이라 빨간색으로 테마를 꾸며놨습니다.

브라우저 확인

 

https://okjsp.tistory.com/1165644382

 

오라클 클라우드 무료로 사용시 주의사항

무료에는 대체로 조건이 있습니다. 그냥 막 퍼주는 것은 아닙니다. 유휴 컴퓨팅 인스턴스 Idle Compute Instances Important 유휴 컴퓨트 인스턴스 회수 Reclamation of Idle Compute Instances 유휴 상시 무료 컴퓨

okjsp.tistory.com

참고:

 

크롬개발자 도구의 Lighthouse 체크해 보았는데, Performance에 `Use HTTP/2`가 1순위로 올라와서, nginx의 ssl 설정을 바꾸는 작업을 했습니다.

Performance Issue list

Before:

before http2

After:

after http2

설정은 아주 쉬웠습니다. `443 ssl` 문구를 찾아서, `http2` 단어만 추가하면, 적용됩니다.

http2 추가

CloudFlare나 Apache HTTPD, 로컬 서버 등의 설정은 https://dassur.ma/things/h2setup/ 링크에 잘 설명되어 있습니다.

Lighthouse는 웹페이지 진단도구이고, 개발자도구 탭에 기본으로 보입니다.

Lighthouse

 

+ Recent posts