AWS 라이트세일 Docker 개발 환경 Todo(2023)

개인적으로 테스트할 목적으로 AWS 라이트세일 Docker 개발 환경 구성시 해야할 일, todo 리스트를 정리해 보았습니다.

처음 서버를 열면 뭐부터 어떻게 해야할지 고민될 때도 있고, 개발을 위한 최소 환경 점검 차원에서 매번 해야할 일에 대한 사항을 목록화 해볼 목적인데요,

평소에도 aws lightsail을 만들고 없애고 자주 반복하다보니, 매번 하는 작업 정리 차원에서 포스팅하였으며, 개인적으로 테스트를 위한 용도로 쓰기 때문에 좀 더 구체적인 부분은 본인에 맞게 수정하시면 될 거 같습니다.

AWS Lightsail 생성 및 주요 작업

Lightsail Plan 선택 및 설치

원하는 플랜으로 AWS Lightsail 공간을 생성합니다.

AWS 라이트세일 공간 생성

SSH 키 다운로드 후 보관

Manage > Connect

Download default key를 클릭하여 SSH 키를 잘 보관해 둡니다.

default key 보관

그리고 위의 화면에서 같이 보이는 USER NAME을 같이 메모해 둡니다.

user name : ec2-user

고정 IP 생성

AWS Lightsail에서는 고정 IP를 최대 5개까지 생성이 가능합니다.

Manage > Network

터미널 프로그램 혹은 ftp 프로그램으로 쉽게 접근하기 위해 고정 IP를 세팅합니다.

Attach Static IP

aws lightsail 고정 ip 세팅

필요한 외부 포트 개방

Docker 에 DB 등의 서비스가 있고 외부에서 gui 등을 통해 접근하고자 한다면 예상되는 포트를 미리 열어줍니다.

Manage > Network

PostgreSQL 을 주로 사용할 예정이므로 미리 5432 포트를 열어둡니다.

그 외에 다른 예상되는 서비스의 포트가 외부 연결이 필요하다면 여기에서 지정할 수 있습니다.

아래의 포트는 일반적으로 PostgreSQL DB 가 사용하는 포트입니다.

aws lightsail postgresql 포트 개방

FTP 설정

해당 계정으로 파일을 업로드/다운로드 하기 위해서 SFTP 형태로 FTP를 세팅합니다.

아까 다운로드 받아 놓은 SSH 키를 SFTP 연결시 사용합니다.

프로토콜 : SFTP
로그온유형 : 키파일
사용자 : ec2-user(위에서 키파일 받을 때 메모해둔 user name)

AWS Lightsail ftp 연결 설정

터미널 서비스 연결

(필수는 아니지만 putty 사용시), 먼저 [putty-gen](PuTTYgen Download – Download Putty 0.79)을 다운받아 SSH 파일을 PPK 확장자로 변환합니다.

터미널 접속을 위한 PPK 파일 변환

본인이 주로 사용하는 터미널 프로그램을 실행한 후 SSH 를 매핑하여 터미널 접속 세팅합니다.
(여기서는 mobaXterm 프로그램을 사용)

SSH 설정을 선택하여 다음과 같이 정보를 입력 후 터미널 접속 합니다.

remote host : 위에서 메모한 user name@위에서 연결한 고정아이피 주소

터미널 프로그램으로 접속

AWS Lightsail에 Docker 설치

참고로 설치할 lightsail OS 환경은 다음과 같습니다.

linux : Amazon Linux 2023  

fedora 계열 인 듯 한데, 어쨋든 AWS에 최적화 되어있고 Long term supprt를 한다고 합니다.

다른 리눅스 버전에 따라 아래의 방법과 상이할 수 있으며 [Docker 공식 문서](Install Docker Engine | Docker Docs)를 참고해보시기 바랍니다.

Docker 설치

sudo yum update -y

sudo yum install docker -y

설치가 완료되면 정상적으로 설치가 되었는지 다음과 같이 확인해 볼 수 있습니다.

docker -v

...
Docker version 24.0.5, build ced0996

Docker 서비스 시작

설치를 했으니 이제 Docker 서비스를 시작합니다.

// 도커 서비스를 시작
sudo service docker start

// 현재 aws lightsail 유저에 권한 부여
sudo usermod -a -G docker ec2-user

// 시스템 시작시 자동 실행 등록
sudo chkconfig docker on

이 후 작업 후 반드시 /시스템 리부팅/을 진행합니다.

Docker compose 설치

아래의 명령어를 통해 docker compose를 설치해 줍니다.

sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose version

...

Docker Compose version v2.23.0

Docker 샘플 소스 복사(FTP) 후 테스트

아직 CI/CD 그런 건 없으므로 아까 설정한 FTP 클라이언트를 통해 소스를 업로드 하고 Docker 기반 앱이 정상적으로 처리되는 지 확인합니다.

물론, 기존에 오류없던 클린한 버전으로 테스트해야 시행착오가 줄어듭니다.

ftp 프로그램으로 접속

Docker compose로 Docker 빌드 및 실행

docker-compose --file "도커컴포즈파일" up -d --build

앱에서 테스트를 위해 사용하는 특정 포트 개방

리액트 3000이나 node js 5000 포트 등 테스트를 위해 사용되는 포트가 있다면 같이 개방해 줍니다.

AWS Lightsail Network 탭에서 posgresql 등록 절차와 동일.

postgre SQL DB 외부 접속 확인

도커를 통해 postgreSQL DB 가 실행되었으므로 외부 윈도우 SQL 툴로 접속을 확인해 봅니다.

DBeaver 같은 툴로 다음과 같이 입력하여 접속 테스트 수행합니다.

Host : 아까 연결한 고정 IP
Database : Docker에서 설정한 db 명

postgreSQL AWS 외부 연결

혹여 앱을 실행하기 위해 사전 세팅이 필요한 경우 작업을 진행합니다.


각자의 상황에 다르겠지만 이정도 세팅하면 초기 시스템 개발 환경 점검은 어느 정도 될 것으로 보입니다.

이상으로 AWS Lightsail 계정 새로 팠을 때 해야할 일을 정리해보았습니다. Docker 개발 환경 새로 세팅할 때 참고하시기 바랍니다.

그 밖에 도움 되는 글

윈도우 WSL2 Docker 개발 환경,리액트+Node.js 핫리로디드 요약(2023)

나의 MobaXterm 세팅 – 테마, 폰트, 주요 기능 등

AWS 계정 해지 하는 방법(2023 기준)