AWS Lightsail 가입하여 웹서버로 사용하기

SongWoo Yu·2025년 5월 8일

가입하기

일단 나는 AWS 콘솔로 가입되어 있기에 여기서 lightsail을 찾아서 들어갔다. 간단한 가입 절차를 거친 다음(아마도 카드를 등록하는 절차인 듯 한데, 다음에 재가입할 때 제대로 포스팅해보겠다), Create instace로 내가 사용할 재원과 운영 체제를 고른다.

목적

  • 공인 IP 획득
  • WAS용 클라우드 컴퓨터

Create an instace

나는 리눅스 계열로 만들었다. 그 중 우분투 최신 버전으로 인스턴스를 구성했다.

SSH key를 등록하여 내 컴퓨터의 콘솔창(terminal)에서 원격 접속하여 이용할 수 있다. 방법은 ssh key gun을 이용하여 생성하거나, 이미 있다면 루트 디렉토리에 새 파일을 만들어 첨부하면 된다. cp ~/.ssh/id_ed25519.pub ~ 이 명령어를 통해 pub 파일을 루트 디렉토리에 복사붙여넣기한 것이다.

IPv4로 공인 ip를 받는다. 그리고 90일간 무료로 사용할 수 있는 요금제를 선택하고 이름을 지어준 후, create instance 해주면 생성된다. 다만 90일 전에 정지, 삭제까지 모두 해야 요금이 과금되지 않는다.

도커 컨테이너 설치하기


인스턴스를 구성하고 나면 이렇게 내 인스턴스가 생성되어 있다. running 옆에 보면 사이에 .이 3개 있는 숫자가 있다. 이것이 나의 ip주소이다. 이를 terminal에 연결해서 내 컴퓨터에서 직접 도커를 설치해보려고 한다.

ssh ubuntu@192.92.xxx.xxx

위와 같이 나에게 할당된 ip주소를 작성해주면 된다. 앞서 등록한 sshkey를 가진 컴퓨터에서만 접속할 수 있으니, 다른 컴퓨터에서 접속하려면 추가해줘야 한다.

이후에는 더 간단하다. grok이나 google gemini에게 우분투에 도커를 설치하는 방법을 물어보면 다음과 같이 답해줄 것이다.

1. 시스템 패키지 업데이트: sudo apt-get update
2. 필수 패키지 설치: sudo apt-get install ca-certificates curl
3. GPG 키 추가: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc; sudo chmod a+r /etc/apt/keyrings/docker.asc
4. 리포지토리 추가: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. Docker 설치: sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. 설치 확인: sudo docker run hello-world

이 절차대로 따라하면 된다.
나는 또 다른 방식으로 접근했다. 위 방법은 최신 방법이지만, 나는 다음과 같은 방법을 사용했다.

  1. 시스템 패키지 업데이트
    먼저 시스템 패키지를 최신 상태로 업데이트합니다.
sudo apt-get update
sudo apt-get upgrade -y
  1. 필요한 패키지 설치
    도커 설치를 위해 필요한 의존성을 설치합니다.
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  1. 도커 공식 GPG 키 추가
    도커의 공식 저장소를 사용하기 위해 GPG 키를 추가합니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 도커 저장소 추가
    도커의 공식 저장소를 시스템에 추가합니다.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 패키지 목록 업데이트 및 도커 설치
    저장소를 추가한 후, 패키지 목록을 업데이트하고 도커를 설치합니다.
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  1. 도커 서비스 시작 및 활성화
    도커 서비스를 시작하고, 부팅 시 자동으로 실행되도록 에 설정합니다.
sudo systemctl start docker
sudo systemctl enable docker
  1. 설치 확인
    도커가 제대로 설치되었는지 확인합니다.
docker --version
  1. 비루트 사용자 권한 설정 (선택) - 이건 안 했다.
    루트 권한 없이 도커를 실행하려면 현재 사용자를 docker 그룹에 추가합니다.
sudo usermod -aG docker $USER

그룹 변경을 적용하려면 로그아웃 후 다시 로그인하거나, 다음 명령어를 실행하세요:

newgrp docker
  1. 테스트
    도커가 잘 작동하는지 확인하기 위해 테스트 컨테이너를 실행합니다.
docker run hello-world

nginx 를 사용해서 간단한 웹서버를 구동하는 도커 컴포우즈 파일을 생성

이제 웹서버와 도커 컨테이너를 설치하였으니, 실제로 잘 실행이 되는지 더미파일을 만들어서 확인해볼 차례이다.
1. opt 디렉토리에 nginx 디렉토리 생성

cd /opt
sudo mkdir nginx
cd nginx/
sudo vi docker-compose.yml
version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    networks:
      - webnet

networks:
  webnet:
    driver: bridge
  1. 실행하기
    sudo docker compose up 이후에 ip주소를 통해 접속해주면 접속이 되지 않을 것이다. 이때 뒤에 포트 번호를 작성해줘야 한다. 이는 yml 파일에 8080포트로 저장이 되어 있는데 도커 컨테이너는 80으로 되어 있기 때문에 그런 일이 발생한 것이다. 그래서 8080을 뒤에 붙여줘야 접속할 수 있었던 것이다. 이를 80:80으로 yml파일을 변경해주면 그냥 접속할 수 있다. 그리고 방화벽 포트를 열어줘야 하니 instance 관리창으로 들어와서 8080을 추가해주면 된다.

이렇게 접속해도 아무것도 뜨지 않고 오류가 뜰 것이다. 이는 지정된 파일에 아무것도 없어서 그렇다.

cd html을 통해 디렉토리에 가보면 아무것도 없다.
여기에 sudo vi index.html을 만들어서 내용에 아무거나 써준 다음 저장하면 화면에 잘 나타나게 된다.

AWS외 다른 대안

  1. google cloude

  2. contabo

  3. 자체 서버(전기요금 많이 나옴)

0개의 댓글