웹서버 도메인 연결하기

Yuusaku·2024년 1월 5일

flask 웹서버 도메인으로 연결하기

ec2 인스턴스 생성 후 유동 ip 가 아닌 고정 ip로 접속을 시켜줘야 한다.

고정 ip를 할당받기 위해 ec2에서 탄력적 ip 메뉴로 들어간다.

탄력적 ip 주소 할당 버튼을 누르고 설정 변경 없이 할당 버튼을 클릭한다.

탄력적 주소가 할당이 되면 이를 인스턴스와 연결한다.

작업에서 탄력적 ip 주소 연결을 누르고 리소스 유형을 인스턴스로 설정한 후 인스턴스를 선택한 후 연결 버튼을 누른다.

인스턴스 연결이 잘 되었는지 확인하기 위해서 인스턴스 메뉴로 들어간 후 선택한 인스턴스를 클릭하고 네트워킹에서 퍼블릭 IPv4 주소가 탄력적 ip 주소로 변경되었는지 확인한다.

그 후 인스턴스에 접속하여 app.py 파일을 실행시키면 고정된 ip에서 웹 서버를 실행할 수 있다.

고정된 ip 번호 뒤에 포트번호를 붙이지 않고 실행하고 싶다면

app.py 파일에서 포트 번호를 80 번으로 설정하자

app.run(host="0.0.0.0", port ="80",debug=True)

이제 고정된 ip와 도메인을 연결해야 한다.

도메인을 연결하기 위해 도메인을 발급받아야 하는데 route53 메뉴에 접속한다.

route53에서 등록된 도메인 메뉴에 들어간 후 도메인 등록 버튼을 누른다.

도메인 이름을 입력하고 옵션을 선택 후 연락처 정보를 입력하여 도메인을 생성한다.

1~2 시간 정도 소요 후 도메인이 발급된다.

생성된 도메인을 ip 주소와 연동시키기 위해 route53의 호스팅 영역 메뉴로 들어간다.

원하는 호스팅 영역 이름을 선택하고 레코드 생성 버튼을 누른다.

단순 라우팅을 선택하고 단순 레코드 정의를 선택한다.

subdomain 이름은 비워둬도 된다.

트래픽 라우팅 대상에는 생성한 고정된 ip 값을 입력해준다.

그 후 단순 레코드 정의 버튼을 눌러 레코드를 생성한다.

이제 Nginx를 통해 실제로 EC2 상에서 적용되게 설정해야 한다.

EC2 터미널에 접속한 후 관리자 권한으로 Nginx 를 설치한다.

sudo apt install nginx

Nginx 의 환경설정을 하도록 하자

cd /etc/nginx/sites-available/
sudo nano project

환경설정할 파일을 작성할 디렉토리로 이동한 후 nano 명령어로 project라는 이름의 파일을 작성한다.

server {
        listen 80;
        server_name my_domain;

        location = /favicon.ico { access_log off; log_not_found off; }

}

server_name 에는 자신의 도메인 이름을 입력해준다.
작성이 끝나면 저장해준다.

cd /etc/nginx/sites-enabled/
ls

ls 명령어 결과 default 가 나타나면 default 링크를 삭제해야 한다.

sudo rm default
sudo ln -s /etc/nginx/sites-available/project

그 후 nano에서 작성한 파일 이름을 project 위치에 넣고 명령어를 실행한다.

ls

ls 명령어 실행 결과 project가 결과로 나타날 것이다.

sudo systemctl restart nginx

이를 적용하기 위해서 nginx 를 재시작한다.

0개의 댓글