[AWS] EC2 시작해보기

·2023년 1월 26일
0

개발 기록

목록 보기
49/68

인스턴스 생성하는 방법은 구글에 많으니 생략

루트 계정, IAM 계정

루트 계정

루트 계정은 우리가 흔히 아는 그 최상위 계정을 말한다. 이 계정이 해킹 당하면 아주아주 큰일 나니까 쓰지 않는 것을 AWS도 공식적으로 추천한다.

IAM 계정

AWS Identity and Access Mansgement

그래서 제어된 권한을 가지고 있는 IAM 계정을 사용한다. 이 IAM 계정을 사용하면 분리된 계정을 가지고 하나의 인스턴스를 공유하고 접근할 수 있다. 아이디, 비밀번호 등을 서로 공유하지 않고 분리된 계정이기 때문에 보다 보안에 덜 취약하다.

키 페어 오류

처음에 루트 계정으로 인스턴스를 생성했다가 뒤늦게 IAM 계정을 만들어 인스턴스에 접근하려 하니 아래 사진처럼 API 에러가 떠있었다. (사진은 캡처 못 해서 퍼 왔다.)

그래서 루트 계정 인스턴스를 삭제하고 IAM 계정으로 인스턴스를 다시 만들려는데 키 페어를 생성하는데 권한 오류가 났다. 찾아보니 AmazonEC2FullAccess 권한을 해당 IAM 계정이 속한 그룹에 줘야 했다. 권한을 수정하고 다시 시도하니 정상적으로 키 페어가 생성이 되고 인스턴스도 마저 생성할 수 있었다.

연결하기

인스턴스가 실행되면 연결하고 싶은 인스턴스를 체크하고 연결 버튼을 누르면 연결하기 위한 방법이 나온다 터미널을 키 페어 파일이 위치한 디렉토리로 이동하고 방법을 순서대로 따라 하면

연결된 터미널을 확인할 수 있다.

Django 배포해 보기

인스턴스가 연결된 상태에서 장고를 설치한다. 나는 poetry를 사용해 가상환경을 만들고 설치했다.

이제 설정을 두 개를 해야 하는데 하나는 EC2에서 하나는 장고에서 해야 한다.

장고 settings.py

장고의 config 폴더 안에 있는 settings.py 파일을 확인하면 ALLOWED_HOSTS = [] 부분이 있다. 그 부분을 ALLOWED_HOSTS = ['인스턴스에서 확인한 퍼블릭 ip']로 수정해 준다.

# 이 부분을
ALLOWED_HOSTS = []

# 이렇게
ALLOWED_HOSTS = [13.114.52.207]

EC2 포트 열어주기

장고는 8000번이 기본이라 EC2 인스턴스의 8000번 포트를 열어줘야 한다.

EC2 -> 보안 그룹 -> 인바운드 규칙 -> 인바운드 규칙 편집

으로가서 8000번 포트를 추가해 준다.

배포하는 과정은 AWS EC2, Django 프로젝트 배포하기 이 글을 참고했다.

실행하기

그리고 장고를 실행하면 되는데... 안되길래 위 참고글처럼 8000번 포트로 실행했더니 성공했다. (왜지..? 기본이 8000번이 아니었나..)

python3 manage.py runserver 0:8000

이제 퍼블릭 ip:8000으로 접속하면 장고 실행 화면을 볼 수 있다.

참고자료

0개의 댓글