개발일지
AWS Lightsail로 CI/CD 구축하기_1. Ligthtsail 생성 및 SSH 접속하기 본문
개요
이번 시간에는 AWS Lightsail로 서버를 빠르게 배포하고 Github Actions으로 CI/CD까지 적용해보고자 한다.
처음 EC2로 서버 배포했을 때를 생각해보면 인스턴스 생성부터가 멘붕이었다. 설정 값 하나하나 모두 지정해줘야하는 것부터 시작해서 너무 복잡하고 어려웠다. Lightsail은 아마존에서 제공하는 가상 서버 서비스로 경량화된 EC2라고 생각하면 될 것 같다. 직접 사용해보면 알겠지만 대시보드를 통해 쉽고 간편하게 관리할 수 있고 EC2와 달리 별다른 설정 값이 필요없다. 따라서 규모가 크지 않고 부가 기능을 필요로하지 않는다면 Lightsail를 사용하는 것이 더 효율적일 수 있을 것이다.
Ligthsail 인스턴스 생성 및 프로젝트 배포하기
Lightsail > Instances > Create instance를 클릭하면 아래와 같이 인스턴스 생성 창이 뜬다. EC2에 비해 굉장히 간소화 되어있는 것을 확인할 수 있다. 인스턴스 이름, 사용할 운영체제, 요금제를 선택하고 Create instance 하면 생성 완료다. 보이는 것처럼 필요한 서비스나 스택을 함께 설치해줄 수도 있다.
생성 완료 되면 Lightsail 대시보드에 해당 인스턴스가 추가되어 있을 것이다.
인스턴스를 선택하면 세부사항을 볼 수 있는데 마찬가지로 EC2에 비해 심플하다.
Connect using SSH를 클릭하면 해당 서버에 접속할 수 있다. 접속해서 필요한 초기 설정을 해주고 배포할 프로젝트를 clone 받은 뒤 실행시키면 된다. (과정은 생략)
Firewall
Networking > IPv4 Firewall에서 인바운드 규칙을 지정해줄 수 있다.
참고로 Lightsail은 나가는 트래픽에 대해서는 제어할 수 없으며 모든 아웃바운드를 허용한다.
80포트만 열어놨기 때문에 프로젝트를 실행할 때도 80포트를 사용해야한다. 만약 다른 포트를 사용하고싶다면 인바운드 규칙으로 해당 포트를 추가해주면 된다.
Load Balancer 설정하기
로드밸런서는 Networking 탭에서 생성할 수 있다. 로드밸런서 말고도 static IP, CDN 관리도 가능하다.
우리는 Create load balancer를 클릭하여 로드밸런서를 생성해주자.
현재는 인스턴스 하나밖에 없지만 만약 여러 서버로 트래픽을 분산하고 싶다면 Attach another를 선택해 또 다른 인스턴스를 추가하면 된다. Health Check까지 성공하면 연결 완료다.
원래는 HTTPS 설정을 위해 생성했지만 생략ㅎ,, 하고 자세한 내용은 Amazon Lightsail의 SSL/TLS 인증서를 참고하자!
Static IP 설정하기
AWS에서 제공하는 Public IP 주소는 기본적으로 dynamic 하기 때문에 IP 주소가 변경될 수 있다. 실서버에서는 IP 주소가 변동되면 서비스 제공에 문제가 발생할 수 있기 때문에 Static IP 주소를 사용해야한다.
인스턴스 세부창에서 Attach static IP를 클릭해 static ip를 설정해줄 수 있다.
설정 완료되면 아래와 같이 주소가 변경되어있을 것이다.
로컬에서 SSH 접속하기
앞서 Connect using SSH를 클릭해서 인스턴스와 연결했었다. 그러나 매번 대시보드까지 들어와서 버튼을 클릭하기엔 번거로울 것이다.따라서 로컬에서 바로 ssh 접속할 수 있도록 설정해주고자 한다.
먼저 로컬에서 ssh 키를 생성한다.
$ ssh-keygen -t rsa -b 4096 -C "comment" -f "path/filename"
공용 키와 개인 키, 두 개의 키가 생성될텐데 그 중 공용 키(filename.pub)키를 VM에 등록해줘야한다. 인스턴스에 접속한 후 ~/.ssh/authorized_keys 파일에 filename.pub 내용을 붙여넣기 하면 된다. 여기서 authorized_keys 파일은 SSH 서버가 사용자 인증을 위해 사용하는 파일로 해당 서버로의 접근을 허용하는 공용 키들을 관리한다.
LightsailDefaultKeyPair은 인스턴스 생성할 때 생성되는 기본 키이다. 즉 Connect using SSH할 때 해당 키로 접속했던 것이다. LightsailDefaultKeyPair 아래 우리가 생성한 키를 등록해주자.
이제 아래의 명령어로 로컬에서도 바로 VM에 접속할 수 있다.
$ ssh -i "secret-key" "username@public-ip"
username은 인스턴스 세부 창 > Connect 탭에서 확인할 수 있다. 아래의 경우 "ubuntu@43.202.28.152"로 접속하면 된다.
접속 성공!
'Infra, AWS, Linux' 카테고리의 다른 글
클러스터링, 로드밸런싱으로 서버 성능 개선하기 (PM2, LB, 고가용성, 가용 영역) (0) | 2024.06.27 |
---|---|
AWS Lightsail로 CI/CD 구축하기_2. Github Actions으로 배포 자동화 파이프라인 구축하기 (0) | 2024.06.16 |
AWS SSM으로 Private RDS 접근하기 (0) | 2024.02.02 |
AWS 서버 구축 및 HTTPS 적용기_2. HTTPS 적용 (ACM, ELB, Nginx) (0) | 2024.01.05 |
AWS 서버 구축 및 HTTPS 적용기_1. 도메인 연결 및 프로젝트 배포 (Route53, EC2) (0) | 2023.12.27 |