# OCI 장점과 단점
## 장점
- aws와 달리 평생 무료다.
- aws와 달리 인스턴스 여러개를 무료로 제공한다.
- 프리티어로 aws보다 훨씬 좋은 성능을 제공한다.
## 단점
- 웹 접근성이 aws에 비해 별로 좋지 않다(회원가입부터 약간 힘들고, 로그인 시 매번 새로고침을 해줘야한다)
- aws RDS와 달리 db 엔진을 선택할 수가 없다. => ATP라는 RDS와 비슷한 DB를 제공하지만, DataGrip과 연결이 매우 까다롭다.
- ATP는 DB 접근이 3개월간 없을 경우, 영구삭제된다.
이런 단점이 있음에도 불구하고 OCI를 애용하는 이유는 성능이 넘사벽인데다가 aws와 달리 과금걱정이 전혀 없기 때문이다.
free tier 클라우드 서비스를 비교한 github과 oci의 공식 무료 리소스 자료다.
AWS(1년 무료) | OCI(amd64) | OCI(arm) | |
Instance 수 | 1개 | 2개 | 최대 4개 |
CPU(core) | 1Core | 1Core | 최대 4Core |
RAM | 1GB | 1GB | 최대 24GB |
Storage | 30GB | 최대 200GB | 최대 200GB |
"최대"라고 언급한 부분은 한 계정당 사용할 수 있는 최대 리소스로, 만약 4개의 instance를 모두 만들게 되면 각 instnace는 4/4개의 Core, 24/4GB의 램, 200/4GB의 스토리지를 가질 수 있다.
# OCI compute instance 생성
## 계정 생성
계정 생성은 알아서 열심히 하자...!
참고로 카드 등록에서 계속 막히는 경우에는
## 인스턴스 생성
Create instance를 선택한다.
적당히 구분할 수 있도록 compute instance 이름을 설정한다.
나는 arm서버를 구축할 것이기 때문에 반드시 aarch64를 선택해야한다.
4code, 24gb mem까지 free tier기 때문에 이렇게 설정해준다.
새로운 key를 만들어도 되지만, 이미 생성해서 쓰고있는 pub key가 있기 때문에 기존의 파일을 업로드 시켜줬다.
Networking 파트는 자동 입력되어 있는 값을 그대로 사용했다.
마지막으로 생성을 하면, 위 사진과 같이 instance의 상태가 RUNNING으로 변하게 된다.
# Xshell로 SSH 연결하기
Xshell이라는 ssh 무료 클라이언트를 이용하여 ssh로 접근해보자.
# 필수 프로그램 설치 / 설정
## Java(zulu)
## 한국 시간으로 변경
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# Docker/DB 설치하기
OCI의 단점으로 RDS같이 DB 엔진을 지정할 수 없다는 점이 있다.
ATP라는 OracleCloudInfrastructre 전용 DB를 사용할 수는 있지만, 연결하는게 귀찮다..(따로 드라이버를 받아야한다)
따라서, 기존에 사용하던 방식대로 MySQL을 docker를 이용해서 사용하기로 했다.
위 블로그를 따라서 설치하면 된다. 다른 블로그 글들은 모두 실패했다..
version: "3.1"
services:
mysql:
image: mysql:latest
container_name: mysql
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: {wd}
TZ: "Asia/Seoul"
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --max_connections=150
volumes:
- /home/ubuntu/docker/data/mysql:/var/lib/mysql
아무 공간에 저렇게 작성한 뒤, docker-compose up -d 명령어로 mysql을 실행할 수 있다.