목차
개요
웹사이트를 운영하는 방법에는 여러가지가 있지만, 나는 지금까지는 호스팅만을 사용해왔다.
하지만 호스팅을 사용하면 여러가지 불편한 점들이 많아 ODROID 같은 SBC를 구매해서 개인용 서버를 구축하려 하던 중에 오라클 클라우드를 알게 되어 '어차피 꽁짠데 한 번 해보기나 하자!'라는 생각으로 계정을 생성하게 됐다.
사용해보니 국내에도 서울과 춘천 리전이 있어 속도도 괜찮고 사용법도 어렵지 않아 매우 만족스럽다.
내가 진행한 과정들을 기록하기 위해 VM 인스턴스 생성 방법을 글로 남긴다.
일단 링크에 접속해 puttygen.exe와 putty.exe를 다운로드한다.
원래는 2021년 3월에 RaonHive에서 작성한 글이지만.. NodeBB 업데이트 중 문제가 생겨 이미지가 전부 날아갔다. 나중에 추가할 예정.
계정 생성
[이미지]
오라클 클라우드에서 평생 무료로 클라우드 서비스를 제공한다.
대충 가입하고 주소는 영문 주소를 입력해야 된다고 하던데 나는 한글로 해버렸다.
전화번호는 +82(국가번호)부터 입력하기 때문에 핸드폰 번호에서 0을 빼야한다.
→ 010 1234 5678일 경우 +82 10 1234 5678
문자를 확인한 뒤 결제 수단을 등록해야 한다.
VISA나 MASTER 카드면 가능.
오라클 클라우드 구조화
바로 VM 인스턴스를 생성해도 되지만 보안을 위해 VM 인스턴스를 생성하기 전 root 구획을 2개의 하위 구획으로 나누고 각각에 VCN을 지정해주는 것이 좋다.
그 이유는 VCN 설정에서 허용할 포트를 지정해줄 때, root 구획에 2개의 VM 인스턴스를 모두 생성할 경우 2개 모두에 같은 포트를 허용해줘야 하기 때문이다.
1번 VM은 웹 서비스를 위해 사용하고 2번 VM은 개인적으로 사용한다고 가정하면, 1번 VM으로 인해 80포트와 443포트를 열면 2번 VM은 사용하지도 않을 포트를 허용해줘야 하는 것이다.
그렇기 때문에 VM 인스턴스를 생성하기 전 root 구획에 2개의 하위 구획을 생성해서 각각에 다른 VCN을 생성해주는 것이 좋다.
[이미지]
[이미지]
좌측 상단의 [메뉴 버튼]을 누르고 [구획] 메뉴로 진입해서 [구획 생성] 버튼을 클릭한다.
하위 구획의 이름을 지정해주고 상위 구획으로는 루트 구획을 지정해준 다음에 구획 생성 버튼을 클릭하면 된다.
2개의 VM 인스턴스를 사용할 예정이기 때문에 2개의 하위 구획을 생성해준다.
[이미지]
[이미지]
구획이 생성되는데 약간의 시간이 걸릴 수 있다.
구획이 생성되고 나면 [가상 클라우드 네트워크(VCN)] 메뉴로 진입해서 하위 구획을 선택하고 VCN 마법사 시작 버튼을 눌러 진행한다.
VCN 이름 외에 따로 설정할 건 없고 바로바로 진행하면 된다.
[이미지]
그 뒤 다시 메뉴에서 [네트워킹] > [가상 클라우드 네트워크] 메뉴 진입 후 [생성한 VCN명]을 클릭하면 위와 같은 화면이 나온다.
[보안 목록] > [Default Security...]로 들어가 [수신 규칙 추가] 버튼 클릭.
[이미지]
2개 항목을 똑같이 작성해서 추가해준다.
웹 서비스에 사용할 경우 80포트와 443포트를 허용해야 한다.
VM 인스턴스 생성
[이미지]
[컴퓨트] > [인스턴스]로 들어가 [인스턴스 생성] 버튼 클릭.
[이미지]
[VM명을 입력]하고 [이미지 변경] 버튼을 눌러 우분투로 변경한다.
[이미지]
네트워킹 구성에서 편집을 눌러 아까 생성한 VCN으로 가상 클라우드 네트워크와 서브넷이 설정됐는지 확인하고 아니라면 맞게 설정해준다.
[이미지]
생성 버튼을 누르기 전에 미리 다운로드 받은 [puttygen.exe]을 실행한다.
상단의 키 메뉴에서 [SSH-2 RSA] 선택, 하단의 매개변수는 [RSA]를 선택하고 생성 버튼을 누른 뒤 바 근처에서 마우스를 움직여주면 바가 채워지며 완료된다.
[이미지]
생성이 끝나면 [key passphrase]에서 비밀번호를 설정해주고 [Save private key] 버튼을 눌러 키 파일을 저장한다.
키 파일을 잃어버리면 다시 생성할 수 없으니 키 파일 저장 후 위의 문자열을 전체 복사한다.
진행 과정에서 막히면 VM 인스턴스를 종료하고 다시 시작해야 될 수도 있기 때문에 저 key 문자열도 따로 저장해두는 것이 좋다.
[이미지]
인스턴스 생성 화면으로 돌아가서 네트워킹 아래의 SSH 키 추가에서는 [공용 키 붙여넣기]를 선택하고 방금 복사한 긴 문자열을 그대로 붙여넣기한다.
[이미지]
아래의 부트 볼륨 설정은 크기 지정만 50GB로 바꿔준다.
어디서 본 건지는 정확히 기억이 안 나는데 이렇게 하라는 분이 있었다.
프리티어에서 VM을 2개까지, 용량은 100GB를 제공하기 때문에 50GB로 2개를 딱 맞춰서 쓰려는 것 같다.
이렇게 인스턴스 생성을 완료하고 다시 메뉴를 눌러 [컴퓨트] > [인스턴스]로 들어가서 [생성한 인스턴스]를 클릭한다.
[이미지]
하단 메뉴에서 [연결된 VNIC]를 누르고 [네트워크 설정 때 생성한 VNIC]를 클릭한다.
[이미지]
[IP 주소]에서 [점 3개]를 눌러 [편집]한다.
[이미지]
처음에는 임시 공용 IP로 지정되어있는데 예약된 공용 IP로 바로 전환은 불가능하고, 일단 [공용 IP 없음]을 눌러 [업데이트] 해준 뒤에 다시 [예약된 공용 IP]로 지정하면 전환이 가능하다.
당연하지만 예약된 IP는 하나의 VM에서만 사용 가능하다.
여기까지 진행하면 VM 인스턴스 생성 및 설정이 완료된다.
SSH 접속 방법
[이미지]
PC에서 접속할 때는 [putty.exe]를 실행하여 [Host Name]에 오라클 클라우드에서 [VM 인스턴스에 지정한 예약된 IP]를 입력한다.
아래 Saved Sessions에 대충 저장할 이름을 적고 Save 버튼을 누르면 IP가 저장되기 때문에 다음에 접속할 때 조금 더 편하게 접속할 수 있다.
[이미지]
그 뒤 좌측 메뉴에서 [SSH] > [Auth]를 클릭해서 [puttygen으로 생성한 키 파일(.ppk)]을 등록하고 [Open] 버튼을 누르면 SSH에 접속된다.
[이미지]
나는 컴퓨터보다 안드로이드 태블릿을 사용할 때가 많아 태블릿에서는 Admin Hands라는 앱을 사용한다.
리뷰를 보면 한글 입력 시 오류가 나는 거 빼곤 다 좋다고 하는데, 내가 한글 입력할 일이 없어서 잘 쓰고 있다.
[이미지]
sftp로 접속하면 태블릿에서도 EditPlus처럼 파일 편집이 가능하다.
[이미지]
다시 putty 화면으로 돌아와서, ssh에 접속하면 [ubuntu]를 입력하고 암호는 [puttygen으로 키 파일을 만들 때 설정했던 비밀번호]를 입력하면 된다.
비밀번호 입력 시에는 아무것도 안 뜨지만 제대로 입력하고 엔터를 누르면 접속된다.
[이미지]
우분투 세팅
SSH 접속 후에는 기본 패키지들을 업데이트 해준다.
아래 명령어를 입력하면 현재 설치된 패키지들의 최신 버전을 확인하고 업데이트 해준다.
복사해서 putty에서 명령어를 붙여 넣을 때는 Ctrl+V가 불가능하고, 마우스 우 클릭을 해주면 명령어가 붙여 넣어진다.
다른 분들 글을 보면 기본 패키지 업데이트 후에 나노 에디터를 설치하던데, 내 경우에는 기본 패키지를 업데이트 하고 나면 나노 에디터가 항상 기본으로 설치되어있었다.
$ sudo apt update && sudo apt -y upgrade
위 명령어로 설치를 할 때 99%에서 진행이 멈추고, putty에 다시 접속 후 같은 명령어를 다시 입력하면 'Waiting for cache lock: Could not get the lock ...' 이라는 문구가 무한 반복되며 업데이트가 되지 않는 경우가 있다.
그럴 때는 아래의 명령어를 입력해서 잠긴 캐시 파일을 삭제해야 된다.
$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock*
잠긴 캐시 파일 삭제 후 아래의 명령어로 업데이트를 마저 진행하면 된다.
출처 : 글 쓰는 개발자 - https://writingdeveloper.blog/323
$ sudo dpkg --configure -a
$ sudo apt update
업데이트가 끝나면 아래 명령어로 우분투의 시간을 설정하고 확인한다.
$ sudo timedatectl set-timezone Asia/Seoul
$ timedatectl
오라클 클라우드 Free-Tier로 생성되는 VM 인스턴스는 1GB의 램을 제공한다.
부족한 램을 해결하기 위해 아래 명령어로 SWAP 공간을 만들어 권한을 설정하고 SWAP 파일을 생성해준다.
$ sudo fallocate -l 3G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=71432f3c-95eb-4c80-af06-dc0af6848c1b
위와 같은 문구가 나오면 다시 아래의 명령어를 이어서 입력해준다.
$ sudo swapon /swapfile
그 뒤에는 재부팅 시에도 스왑공간이 사라지지 않게 아래의 명령어로 설정 파일을 수정한다.
$ sudo nano /etc/fstab
위 명령어로 열리는 파일의 하단에 아래의 내용을 입력한다.
작성 후에 Ctrl+O, 엔터, Ctrl+X를 입력하면 나가진다.
/swapfile swap swap defaults 0 0
마지막으로 hostname을 변경해준다.
호스팅이 아닌 서버를 사용하는 것이기 때문에 호스팅보다 메일 기능을 사용하기가 쉬운데, 지금까지 겪은 바로는 미리 수정해두는 것이 좋은 것 같다.
아래 명령어로 hostname 파일을 열면 오라클 클라우드에서 VM 인스턴스에 설정한 이름이 hostname으로 나온다.
hostname을 [도메인.com]으로 변경해준다.
$ sudo nano /etc/hostname
변경을 하고 나면 재부팅을 해준다.
$ sudo shutdown now -r
우분투를 재시작하면 ssh에 바로 접속이 안되니 잠시 기다리다 접속한다.