개요
리눅스 환경에서 웹 서버를 구현하기 위해 AWS를 사용해 보자
AWS EC2 프리 티어 인스턴스를 생성하여 무료로 퍼블릭 IP를 부여받을 수 있다.
만약 AWS 아이디가 없다면 생성해 준다.
생성 후 AWS콘솔로 이동해 준다.
https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#
이후 EC2로 이동해 준다.
인스턴스 생성
EC2로 이동하였다면 대시보드가 보일것이다.
해당 화면에서 인스턴스 시작 버튼을 클릭하여 인스턴스를 생성해 준다.
인스턴스 이름은 본인이 원하는 것으로 지정해 주면 된다.
OS이미지를 선택해 준다, 리눅스에서 서버를 구동할 것이므로 리눅스로 선택을 해주면 된다.
단, 아마존 리눅스가 아닌 우분투 환경으로 설치를 진행한다.
내가 기존에 사용하던 이미지가 현재는 존재하지 않는 것 같다.
따라서 그냥 프리 티어 사용 가능한 이미지를 선택하였다.
인스턴스 유형은 프리 티어 사용 가능한 t2.micro로 선택하였다.
이후 키 페어를 생성해 주어야 한다, 기존에 사용하던 키 페어가 있다면 해당 키 페어를 사용해도 된다.
AWS 웹 환경에서 CLI를 사용할 예정이면 상관이 없지만, SSH환경에서 원격으로 접속하기 위해 pem키가 필요하다.
따라서 나는 Flask라는 pem키를 새로 생성해 주었다, 생성하면 다운로드가 실행되낟.
이후 네트워크를 설정해 준다.
이때 마찬가지로 원격 접속을 진행할 예정이라면 SSH트래픽을 허용해 주면 된다.
이후 인바운드/아웃바운드 규칙을 통해 웹 클라이언트나 DB와 통신을 위해 포트를 열어줄 수도 있다.
이하 다른 설정은 본인의 프로젝트 성격에 맞게 설정하면 된다.
이후 인스턴스 시작을 누르게 되면 성공이 출력된다.
인스턴스 보기를 클릭하면 인스턴스가 제대로 생성된 것을 볼 수 있다.
이제 생성된 인스턴스 ID를 클릭하여 들어가 준다.
보안 탭에서 보안 그룹을 클릭해 준다.
인바운드 규칙 편집에 들어와 HTTP와 HTTPS에 대한 인바운드 규칙을 추가해 준다.
소스는 Anywhere IPv4로 설정해 주면 된다.
기본적으로 0.0.0.0/0이 되어야 로컬 환경이던 다른 환경에서 웹 서버로 들어오는 요청을 받아들일 수 있다.
이 외에도 MySQL로 부터 DB정보를 받아와야 하므로 3306포트도 추가해 주었다.
또한 vue는 8080포트를 사용하므로 그것도 추가해 주었다, 그냥 뭐가 안되길 막기 위해 되도록 모두 추가해 준다.
단, 이는 토이프로젝트 이므로 이렇게 할 수 있는 것이다, 실제 배포 시 많은 것을 따져보아야 한다.
규칙을 수정하고 나서 위와 같은 상태가 되어야 한다.
인스턴스 연결
인스턴스 요약 페이지에서 우측 상단에 존재하는 연결 버튼을 통해 해당 인스턴스에 연결할 수 있다.
연결이 완료되면 다음과 같은 화면이 출력된다.
인스턴스 연결(SSH)
SSH를 통해 해당 인스턴스에 원격으로 접속할 수 있다.
인스턴스의 퍼블릭 IP와 pem키를 가지고 있어야 한다, pem키를 위에서 생성했다는걸 잊지 말자!
적절한 원격 접속 도구를 준비한다.
나는 MobaXterm을 통해 원격 접속을 할 예정이다.
VS코드 등으로도 SSH연결을 할 수 있는 것으로 아니 해당 IDE를 사용해도 된다.
우선 MobaXterm을 활용한 원격 접속을 설명하겠다.
초기 환경이다.
Session버튼을 클릭하여 SSH탭으로 이동해 준다.
건드려야 할 항목은 총 세가지이다.
- Remote host에는 AWS EC2 인스턴스의 퍼블릭 IP를 입력해 준다.
- Specify username에는 ununtu로 명시해 준다.
- Advanced SSH settings탭에서 Use private key를 체크해 준다.
- 체크 시 우측 파일 모양이 아이콘이 활성화 되는데 해당 아이콘을 클릭하여 pem키를 등록해 준다.
- pem키 없으면 안된다!!!! 주의!!!
AWS EC2 인스턴스에 원격으로 접속이 완료되었다.
'웹(WEB) > 파이썬(Python)' 카테고리의 다른 글
[Python] Flask 리눅스 서버 구동(3) 데이터베이스 설정 (1) | 2025.01.02 |
---|---|
[Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현 (1) | 2025.01.02 |
[Python] Flask 클라이언트 PUT, DELETE 요청 처리 (0) | 2025.01.02 |
[Python] Flask 클라이언트 POST 요청 처리 (0) | 2025.01.02 |
[Python] Flask 클라이언트 GET 요청 처리 (0) | 2025.01.02 |