[AWS 적응기-2] Lightsail instance 설정하기

mxxnhx·2020년 4월 8일
1

AWS Lightsail

목록 보기
3/3
post-thumbnail

SSH로 Instance 접속하기

Lightsail은 자체 웹 브라우저 기반 프로그램을 통해 SSH 연결을 지원한다. 별도의 키 파일이나 설정이 필요하지 않기 때문에 매우 유용하게 사용할 수 있다.

하지만 필자는 브라우저에서 터미널을 보는게 심히 거슬렸기 때문에 우분투 기본 터미널로 instance에 접속했다. (필자는 ohmyzsh의 agnoster theme이 보고싶었는데 Powerline fonts가 지원되지 않는다. ㅂㄷㅂㄷ)

Private key로 SSH 접속하기

Lightsail의 오른쪽 상단 계정->SSH 키->다운로드에서 Private key 파일을 받는다. (모든 instance에 기본 private key를 사용하도록 설정했기 때문에 해당 private key를 잘 관리하도록 하자.)

이제 키파일을 가지고 ssh에 접속할 수 있다.

ssh -i [priva_key_file.pem] ubuntu@public-ip-address

Private key 없이 비밀번호로 SSH 접속하기

Private Key 없이 ssh로 instance에 접속하기 위해서 ssh 서버 설정을 변경해야 한다.
PasswordAuthentication 값을 yes로 변경하자.

sudo vim /etc/ssh/sshd_config
# set 'PasswordAuthentication' to 'yes'
sudo service ssh restart

이후 instance 기본 계정인 ubuntu의 비밀번호를 설정해주면 private key 없이 비밀번호로 ssh 로그인이 가능하다.

sudo passwd ubuntu

테스트용 http server

실제 웹 서버 구축에 앞서 instance에서 http request를 올바르게 받을 수 있는지 확인하기 위해 python3의 http.server를 실행해보자.

python3 -m http.server 8080

어느 포트나 설정해도 상관 없으나 1024 보다 작은 포트를 사용할 경우 sudo 권한이 필요하다.

Nginx

위에서 구동한 python http.server에 request를 전달할 수 있도록 reverse proxy를 설정해두자. Reverse proxy의 간단한 설명은 여기를 참조.

Nginx 설치

sudo apt install nginx -y

Nginx 설정

nginx의 기본 설정 파일을 복사하여 새로운 설정 파일을 작성한다.

cd /etc/nginx/sites-available
sudo cp default nginx-test
sudo vim nginx-test

아래 내용을 nginx-test 파일에 덮어쓴다.

upstream test {
    server localhost:8080;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    location / {
        proxy_pass http://test;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

위 설정은 외부에서 80번 포트로 들어오는 모든 요청을 localhost:8080으로 전달하겠다는 뜻이다. 따라서 위에서 구동한 python3의 http.server에 모든 request를 전달한다.

해당 설정을 사용하기 위해 nginx-test 파일에 대한 링크 파일을 생성하고 기존 설정 파일 링크를 삭제한다.

sudo ln -s /etc/nginx/sites-available/nginx-test /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

Nginx 재시작.

sudo service nginx restart

이제 웹에서 해당 instance의 public ip를 입력하면 python3의 http.server가 실행된 폴더의 파일 목록이 보일 것이다. (안전한 폴더에서 http.server를 실행하는 것이 좋다. 필자는 nginx 로그가 저장되는 폴더(/var/log/nginx)에서 실행했다.)

(optional) locale 및 시간대 설정

Lightsail에서 Instance가 처음 만들어지면 해당 지역 locale이 기본으로 설정되어 있다. 서울 지역의 경우 ko_KR.UTF-8이 기본으로 설정되어 있는데, 해당 locale이 설치되어 있지 않아 우분투 패키지를 설치할 때 마다 warning 메시지가 계속해서 뜬다. (필자는 매우 거슬렸다.)

아래 명령어를 통해 locale 정보를 설치하고 다시 로그인하면 더 이상 경고 메시지가 뜨지 않는다.

sudo locale-gen ko_KR.UTF-8

To be continued

profile
Try again, fail better.

0개의 댓글