나를 포함한 대부분의 사람들은 보안 전문가가 아니다. 서버 전문가도 아니다. Lightsail은 단지 저렴한 서비스일 뿐, 보안을 보장해주지 않는다. 서버에 LAMP나 LEMP를 설치하는 것은 영어를 타이핑 할 수 있다면 누구나 할 수 있다. 하지만, 유지 보수는 누구나 할 수 있는 것이 아니다.

웹호스팅은 유지 보수 관리를 업체에서 해주기 때문에, 같은 사양이라면 VPS보다 비쌀 수 밖에 없다. Lightsail을 사용한다는 것은 모든 관리를 내가 한다는 뜻이고, 각종 오류, 오동작 등에 대한 대응을 직접 구글링 해서 해결해야 한다.

그래서, 몇 년 전부터 Lightsail을 비롯한 VPS로 이전하는 것을 망설였다. Plesk라는 Control Panel이 지원이 되지 않았다면, 이번에도 다른 웹호스팅으로 넘어갔을 것이다. Plesk 자체 설정, 메일 설정, 도메인 연결 등, 나중에 재설치 할 때를 대비해서 기록을 남긴다.

일단, https://aws.amazon.com/ko/lightsail/ 로 이동해서, AWS 회원 가입 후 인스턴스 생성을 시작한다.

1. 인스턴스 생성

인스턴스는 Amazon에서 가상 서버(VPS)를 일컫는 단어이다. 인스턴스 하나당 가상 서버 하나이며, 계정당 최대 20개의 인스턴스를 만들 수 있다. Lightsail의 인스턴스는 생성하는 순간부터 비용이 산정된다. 중지를 해도 비용은 청구되며, 완전히 삭제를 해야 더이상 비용 청구가 되지 않는다.

과금은 시간당 이뤄지며, 인스턴스 생성시 보이는 월 이용료는 750시간 기준의 비용이다. 트래픽은 인바운드(서버로 올리는 트래픽), 아웃바운드(서버에서 다운 받는 트래픽) 모두 비용에 산정되며, 허용된 트래픽을 넘으면 추가 과금이 된다. 추가 과금시에는 인바운드 트래픽은 무료이나, 단가 자체가 매우 비싸다. 절대 넘기지 않도록 주의 해야 한다.

원칙상 인스턴스의 트래픽은 공유되지  않으며, 로드밸런서(월 $18)를 신청해야 트래픽 분산 및 공유가 된다. 그러나, 실제로는 인스턴스 끼리의 트래픽이 공유된다고 한다. $5 인스턴스 2개를 만들었다면, 각각 2TB가 아니고, 두 인스턴스 통합해서 4TB로 계산된다는 얘기다. 트래픽이 모자랄 경우 인스턴스를 하나 더 생성 하는 것이 추가 트래픽 요금을 내는 것보다 훨씬 싸다. 하지만, Amazon에서 공식적으로 언급한 내용은 아니라 실제 지금도 적용이 되는 지, 언제 없어질지는 아무도 모른다.

인스턴스는 더 큰 인스턴스로만 이동이 가능하다. $5 인스턴스 사용 중에 트래픽이 2TB를 넘을거 같아서, $10로 인스턴스를 바꾸는 것은 스냅샷을 생성한 후 이 스냅샷에서 새 인스턴스를 생성하기만 하면 된다. 하지만, $10 인스턴스에서 다시 $5로 내려오려면, 전체 시스템 백업을 별도로 한 후 새로운 $5 서버에 파일을 옮겨서 세팅을 새로 해야한다.

Plesk는 $3.5 플랜을 선택할 수 없다. SW 비용도 있겠지만 Plesk가 별도로 돌아야 하기 때문에 최소 사양을 1 CORE + 1GB RAM으로 잡은 것으로 보인다. $5 플랜으로도 개인 홈페이지 돌리는데는 충분해보인다.
  • 리전은 서울, 블루프린트는 Plesk Hosting Stack을 선택
  • 태그를 입력하면, 여러 개의 도메인, 고정 IP가 있을 경우 해당 태그와 연결된 항목만 표기되어 보기 편함

  • 인스턴스 생성 버튼을 누르고 1~2분 정도만 기다리면 생성 완료

2. 고정 IP 연결

인스턴스에 연결된 고정 IP는 무료이니, 무조건 신청하자. 계정당 최대 5개까지 신청 가능하다.

2020년 1월 기준 서울 리전의 IP 대역이 블랙리스트로 등록되어 있어, Naver 등으로의 메일 발신이 안되는 경우가 있다. MXToolbox에서 해당 IP가 블랙리스트로 등록되어 있는지 검사가 필요하다.
  • 네트워킹 메뉴로 이동 후, 고정IP 생성 버튼을 선택

  • 고정 IP 위치는 서울, 인스턴스를 위에서 생성한 Plesk를 선택하고 이름은 원하는대로 설정

  • 고정IP가 생성되고 인스턴스에 연결된 화면

  • MXToolbox(https://mxtoolbox.com/blacklists.aspx)로 이동해 고정IP 주소를 넣고 검사
  • UCEPROTECTL3가 아닌 Blacklist가 있을 경우 고정 IP 해제하고 다시 생성해서 IP를 변경하거나, Blacklist 해제 요청을 해야 함
  • UCEPROTECTL3는 Whitelist 등록에 돈을 요구하니 무시할 것
  • Spamhaus ZEN은 해당 사이트에서 block 해제가 가능함

3. DNS 영역 생성

계정당 3개의 DNS 영역 생성이 가능하고, 전체 월 300만 쿼리까지도  무료이다. 인스턴스가 몇 개이든 도메인을 3개까지 연결 가능하다는 뜻이며, 추가로 필요할 경우 Route53 또는 DNSEVER, DNSZi 등의 별도의 DNS 서비스를 사용해야 한다.

TTL이나 AAAA 설정이 안되는게 단점이라고 하는데, 개인 사용자에게는 별 상관 없는 부분이다. Lightsail DNS의 단점이라면 수작업으로만 입력 가능한 것과 백업을 할 수 없다는 것이다. Route53을 사용할 경우 Plesk 확장 프로그램을 이용해서 Plesk에서 만들어지는 DNS 레코드를 Route53으로 자동으로 업데이트할 수 있다.

Plesk에서 자체 네임서버를 구동하지만, 네임 서버의 IP가 조회가 안되는 상황이라 등록할 수가 없다. DNS 설정 참조용으로만 놔두고, 네임서버는 Lightsail에서 제공하는 것으로만 사용한다.
  • 네트워킹 -> DNS영역 생성 메뉴로 진입
  • 인스턴스에 연결할 도메인을 입력하고, 태그 기입 후 영역 생성

  • 레코드 추가를 눌러 도메인을 먼저 연결

  • A레코드 선택, 하위도메인은 @, 고정IP 이름을 선택하고 저장
  • 이름 서버 항목 아래에 있는 주소 4개(파란색 사각형)를 별도로 기록해 둘 것

  • 도메인 관리 업체로 이동해서 네임 서버(Name Server)를 위에서 기록한 이름 서버로 변경
  • Plesk 네임 서버는 현시점에서는 IP 검색이 안되어, 웬만한 업체에서는 등록 자체가 안됨

  • 네임 서버 변경 후 https://junklab.net 으로 접속시도
  • 네임 서버가 업데이트 되는 기간 중에는 이전 웹사이트가 그대로 보이거나, 비공개 연결 오류창이 뜨거나 할 수 있음

  • ssl 설정이 안되어 비공개 연결 오류창이 뜨는 것이니, 고급 옵션을 눌러 강제 진입하면, Plesk 초기 화면이 나옴

4. SSH 접속

Lightsail 인스턴스는 SSH를 기본 제공하나, 아이디/패스워드 입력 방식이 아니다. SSH KEY를 받아서 별도의 프로그램으로도 접속할 수 있지만, 브라우저를 사용한 방법이 더 간편하다. SSH를 에뮬레이팅하는 것이 아닌지, 방화벽으로 둘러쌓인 환경에서도 사용이 가능하다는 장점이 있다.

다만, 한글 입력이 안되기 때문에, 한글자판 상태에선 명령어를 아무것도 입력할 수가 없다.
  • SSH연결용 아이콘을 누르거나, 인스턴스 이름을 클릭해서 인스턴스 관리 메뉴로 진입

  • SSH를 사용하여 연결 버튼을 클릭

  • 새 창에서 SSH연결이 되면, 초기 화면에 표시되는 Plesk 가이드 읽어보기

  • DNS 용 53 port, Plesk 용 8443/8447 port가 필요(DNS는 실제로는 사용 안함)
  • 인스턴스 관리 메뉴 -> 네트워킹으로 이동해서 방화벽 추가

  • sudo plesk login을 입력하여 임시 로그인 코드 생성
  • 노란색으로 하이라이트된 로그인 주소 복사

5. Plesk 설치

Plesk 설치 시 최고 관리자 계정을 먼저 생성하게 된다. ID는 admin으로 고정이고 전체 Plesk를 관리하는 매우 중요한 계정이기 때문에 취급에 주의가 필요하다. 비밀번호는 16자리 이상으로 만들고, 혹시 잊어버릴 경우 위의 임시 로그인 코드 생성부터 다시 진행 한다. 
  • 브라우저를 열고 로그인 주소로 접속
  • https 설정 때문에 브라우저에 따라 연결이 바로 되지 않을 경우, 고급 버튼을 눌러 맨 아래의 이동 링크를 클릭

  • admin 계정(이름 변경 불가)의 비밀번호를 생성
  • Generate를 눌러 16자리의 비밀 번호 생성하고 기록해 둘 것 

  • Plesk 설치중

  • Plesk 설치 완료

6. 언어 및 시간대 변경

  • Tools&Setting -> Plesk Appearance -> Language

  • ko-KR 체크 박스 클릭하고, Make Default 선택 

– 새로고침하면 한글로 표시됨

  • 도구 및 설정 -> 일반 설정 -> 시스템 시간

  • 시간대를 Asia/Seoul로 변경 후 저장
     

7. 추가 관리자 생성(옵션)

인스턴스를 관리할 사람이 또 있을 경우, 관리자 계정을 추가할 수 있다. 추가 관리자는 다른 관리자 계정을 추가할 수 없다는 것만 빼고는 admin 계정과 동일한 권한을 가지기 때문에, 함부로 생성하거나 비밀번호를 단순하게 생성해서는 안된다. 

추가 관리자도 시스템의 계정 중 하나 이기 때문에, 여기서 생성한 사용자 이름은 다른 도메인 계정에서도 사용할 수 없다.
  • 도구 및 설정 -> 보안 -> 추가 관리자 계정

  • 관리자 계정으로 로그인하면 추가 관리자 메뉴가 없어짐
  • 다른 모든 기능은 admin과 동일함

8. Plesk 업데이트

Plesk 자체도 보안 문제가 생길 수 있기 때문에, 업데이트는 항상 신경쓰고 있어야 한다. 

Plesk 업데이트는 Linux 시스템을 건드리는 것이기 때문에, Ubuntu의 root 계정을 요구한다. 
  • 도구 및 설정 -> Plesk -> 업데이트
  • root 계정은 Ubuntu 시스템의 root 계정을 의미함

  • 인스턴스 SSH 접속 후 sudo passwd를 입력해 root용 password를 설정
  • new password: 가 표시되면 비밀번호 입력
  • 화면에는 표시가 되지 않으며, 연속 2번 입력하면 password가 저장됨

  • 위에서 설정한 비밀번호로 로그인
  • 최신버전이 있을 경우 제품 업그레이드를 선택

  • 업그레이드 진행 중

  • 업그레이드 완료

9. 시스템 업데이트

Ubuntu의 시스템을 최신으로 업데이트 할 수 있다. 모두 업데이트 버튼을 눌러도 자동으로 진행된다고 경고 창 비슷한 것이 뜰 때가 있는데, 그냥 놔두면 며칠 뒤에 자동으로 업데이트가 된다.