AWS 서버 설정과 관련된 내용을 정리해 보겠습니다. 대략 2년동안 GCP 서버를 사용해서 그런지 인터페이스가 좀 다르게 변경되었 있었습니다. 가입절차는 생각보다 간단했습니다. 신용카드 정보만 확인 되면 모든 과정이 빠르게 완료 되었습니다.

AWS Ubuntu 22.04 설치 스크립트


AWS 설정

인스턴스 생성

EC2 > 인스턴스 > 인스턴스 시작

GCP 클라우드 내용을 정리하면서 SQL 서버를 별도로 활용하는 방법도 고민해 봤었지만, 서버비용이 조금 늘어나더라도 동일한 호스팅 서버에 SQL 데이터베이스도 설치한 뒤, 관리옵션을 최적화 하는 방법을 활용하고 있습니다. 다음의 내용은 GCP 서버에서 작업을 하고있는 환경 입니다.

$ du
Filesystem 1K-blocks    Used         Available    Use%
/dev/root  `80,106,868` `8,037,920`  `73,052,564` 10%

서버 운영에 필요한 내용들을 모두 설치한 결과 8Gb 정도 차지하는 것을 볼 수 있습니다. 이를 참고해 보면 작업 서버에서 실제로 필요로하는 용량 + 10Gb 를 최소 서버용량으로 설정을 하고, 향후 늘어날 용량을 예상하여 인스턴스 크기를 설정하면 됩니다.

AWS 에서 제공하는 인스턴스 목록은 다음과 같습니다. 리눅스 깡통서버 요금은 온디맨드 Linux base요금 에 시간당 금액이 표시되어 있는값을 참고 합니다. t2.medium 요금제를 보면 Linux 는 0.0576 USD 시간당 으로 표시되어 있습니다. 이를 월별 금액을 환산해 보면 대략 41달러로 55,000원 입니다.

\[0.0576 \times 24 \times 30 = 41\]

AWS 인스턴스 목록

Free Tier 성능은 실제요금을 부과하면 20달러 입니다. GPC 에서 최소스펙을 활용하면 10달러 이내로도 설정 가능합니다. 크레딧 등을 활용하는 방법을 최대한 활용하고 실제 부과하는 스펙을 활용하는 경우에는 Google 을 활용하는걸 추천 합니다.

인스턴스 생성

생성된 인스턴스 목록에서 작업을 진행할 대상을 선택 하고 연결 버튼을 누르면 다음과 같은 설명 페이지가 나오게 됩니다

인스턴스 접속방법

해당 페이지의 예시대로 터미널에 입력을 하면 다음과 같은 오류를 출력하게 됩니다. 물론 정상적으로 접속되는 분들은 넘어가셔도 되는 부분인데, 아래와 같은 오류가 발생하는 이유는 키파일을 저장할 때 저장경로 없이 Download 폴더에 바로 저장되는 경우였습니다. 이 파일을 사용자가 원하는 위치로 변경하게 되면 파일의 권한이 변경되어 발생하는 오류 입니다.

$ ssh -i "testkey.pem" ubuntu@ec2-111-222-33.ap-northeast-2.compute.amazonaws.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'testkey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: testkey.pem

이때는 속성을 다음과 같이 변경한 뒤 위 접속명령을 실행하면 정상작동되는 것을 확인할 수 있습니다. 만약 권한변경을 했음에도 오류가 발생하는 경우는 새로 키를 발급받는 방법은 추천 합니다. 고치려다가 더 힘들어 지는 경우가 많았기 때문 입니다.

$ chmod 600 "testkey.pem"
$ ssh -i "testkey.pem" ubuntu@ec2-111-222-33.ap-northeast-2.compute.amazonaws.com

Root 활성화 & 사용자 추가

인스턴스를 생성할때 특정한 속성들이 그래도 갖고 있는지 확인 합니다. 다음의 스크립트는 메모리와 운영체게 버젼을 확인하는 스크립트 입니다.

$ watch free

$ lsb_release -a
Description:	Ubuntu 22.04.2 LTS
Codename:	jammy

$ hostnamectl
Operating System: Ubuntu 22.04.2 LTS              
          Kernel: Linux 5.19.0-1025-aws
    Architecture: x86-64
 Hardware Vendor: Xen
  Hardware Model: HVM domU

GCP 와 동일한 내용으로 사용자 접속이 원할하도록 Root 활성화 및 작업을 진행할 사용자를 추가 합니다. 구글과 차이는 마지막 nvim 을 설치할 때 무척 느린것을 확인할 수 있었습니다.

$ sudo passwd root
$ sudo adduser `사용자이름`
$ sudo usermod -aG sudo `사용자이름`
$ sudo snap install nvim --classic

앞의 설정을 완료한 뒤 다음의 내용을 수정하면 됩니다.

$ sudo nvim /etc/ssh/sshd_config
# PermitRootLogin prohibit-password
PermitRootLogin yes
# PasswordAuthentication no
PasswordAuthentication yes

인스턴스 내용 확인

AWS 기본 운영체계가 외국 Mirror 사이트에서 가져오기 때문에 작은 프로그램도 설치까지 시간이 오래 걸렸습니다. 때문에 패키지 소스를 가져오는 Mirror 사이트 주소를 카카오로 변경이 필요 합니다. 상세한 내용은 ubuntu22.04 mirrror-server구축 을 참고하여 작업을 진행하였습니다.

윗 부분에 새로운 Mirror 사이트를 입력하고 아래에 기록된 기존의 Mirror 사이트 주소들은 모두 비활성화 합니다. 참고로 맨 아랫부분의 deb http://security.ubuntu.com/ubuntu 로 된 security 로 시작되는 주소들은 활성화 상태로 남겨놓았는데 업데이트시 오류없이 정상작동하는 것을 볼 수 있었습니다.

$ sudo vi /etc/apt/sources.list

# ubuntu 22.04
deb http://mirror.kakao.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu/ jammy-security main restricted universe multiverse

#### deb http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/ jammy main restricted
#### deb http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
#### deb http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/ jammy universe
#### deb http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/ jammy-updates universe
#### deb http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

참고로 NeoVim 은 앞의 Snap 으로는 설치가 진행되지 않았습니다. 앞의 Mirror 사이트를 변경한 뒤 다음의 내용대로 진행하면 됩니다. 기타 시간대 변경 및 한글폰트등의 설정 내용은 맨 위에 첨부된 설치 스크립트 내용을 참고 하면 됩니다.

sudo add-apt-repository ppa:neovim-ppa/stable 
sudo apt-get update -y
sudo apt-get install neovim -y

Node.js Version Manager

2023년 9월 Node.js 설치방법이 바뀌었습니다. 결론은 예전 설치방법도 진행은 가능하지만, 60초 동안 경고메세지를 확인해야 되어서 다른 방법으로 설치하기를 권장하고 있다고 요약할 수 있습니다. 새로운 설치 방법은 nodesource / distributions - Github 를 참고합니다.

우선 과거 설치방법을 살펴보면 다음과 같습니다. 아래 내용은 Install NodeJS 18 on Ubuntu 22.04

$ sudo apt install curl
$ sudo apt-get install build-essential libssl-dev
$ curl -s https://deb.nodesource.com/setup_18.x | sudo bash
$ sudo apt install nodejs -y