들어가기

이제 배포를 하기위해 AWS(Amazon Web Services) 의 EC2 를 사용하려 한다.

EC2란 AWS 클라우드에서 제공하는 컴퓨팅 시스템이다. 쉽게 설명하자면 AWS는 직접 컴퓨터를 사지 않고도 아마존이 가지고 있는 서버용 컴퓨터들의 자원을 내가 원격으로 사용할 수 있게 해주는 서비스이다. 그리고 EC2는 그런 자원 중 컴퓨팅, 운영체제를 사용할 수 있게 해주는 가장 기본적인 서비스이다.

AWS도 무료는 아니고 사용한만큼 비용을 지불해야한다. 처음 가입하면 1년을 제한된 자원을 무료로 제공해주는 '프리티어'가 있으니 참고하자

인바운드 수정

EC2를 배포하기 위해서는 포트를 설정해줘야 한다
그렇지 않으면 요청했을 때 거부될 것이다

EC2 에 접속해서 왼쪽 사이드바에 보안 그룹을 누르자

그리고 인스턴스가 속한 보안 그룹의 인바인드를 수정해서 포트를 설정해주면 된다

image.png

위의 이미지에서는 Django 를 위해 포트를 8000으로 설정했고, SSH는 EC2의 서버에 접속하기 위해 설정해 놓은 것이다. SSH는 아마 default로 설정되어 있을 것이다

0.0.0.0/0 은 모든 요청을 허용한다는 뜻이다

Django - EC2

Django는 자체적으로 HOST 를 따로 분별하기 때문에 허용되는 URL을 설정해줘야한다

settings.py

// 예시코드이다
...
ALLOWED_HOSTS = [
'ec2-51-120-105-151.ap-northeast-2.compute.amazonaws.com',
'51.120.105.151'
]

인스턴스의 퍼블릭 DNS(IPv4)IPv4 퍼블릭 IP 를 ALLOWED_HOSTS 에 포함시켜주자

그리고 서버를 실행할 때에 runserver뒤에 방금 넣어준 DNS나 IP를 입력해주면 접속이 가능해진다

$ python manage.py runserver %도메인 또는 IP%