인스턴스 하나로 배포하게 된 이유
백엔드 서버를 배포하기 위해서 다른 블로그의 글을 많이 참고해보았습니다. 그러나 저희처럼 인스턴스 한 개로 배포하는 글은 많지 않았고, 대부분 RDS와 인스턴스의 개수를 추가해서 배포하는 것이 대부분이었습니다. 이 프로젝트는 학과 커뮤니티 겸 학과시설의 예약을 도와주는 웹 서비스입니다. 이 프로젝트는 추후에 학과에 도입될 수 있게 교수님과 협의가 되었고, 저희는 AWS를 통한 배포의 경험을 쌓으면서 서비스를 테스트를 하기 위해서 배포하기로 했습니다.
AWS EC2 배포
인스턴스 한 개로도 트래픽을 버틸 수 있는 서비스인지 확인하고 이 글을 적용해보길 바랍니다.
우선 AWS의 EC2 서비스로 이동해주길 바랍니다.
리전을 서울로 변경해주길 바란다.
리전에 따라 인스턴스 관리 설정 및 비용이 다르기 때문에 주의해야한다. 우리는 서울 기준으로 인스턴스를 생성할 것이다.
AWS에서의 리전(Region)은 지리적으로 서로 다른 위치에 위치한 데이터 센터 그룹을 의미합니다. AWS는 전 세계 여러 위치에 리전을 배치하여 사용자가 데이터를 저장하고 처리할 때 최적의 성능과 가용성을 제공할 수 있도록 합니다.
EC2 인스턴스 접근 관리를 위한 보안 그룹 설정
다음과 같이 좌측 카테고리에서 보안그룹을 통해서 보안그룹 관리창으로 이동할 수 있습니다.
이후 보안 그룹 생성을 선택해주세요.
- VPC는 기본 VPC로 설정
- SSH는 관리자가 본인 로컬 터미널로 EC2로 접속할 수 있게 설정해주는 과정입니다.
본인 공인IP를 확인하는 방법:
- 터미널 접속 후 curl ifconfig.me
- 공인IP가 화면에 뜰 것입니다. 이후 공인IP/32를 기입해주세요.
- 보안 상 좋지않지만, 우리는 테스트를 해보기 위해서 진행하기에 이대로 진행해주었습니다.
아웃바운드, 태그는 기본값 그대로 보안그룹을 생성해줍니다.
인스턴스 생성
이후 좌측 카테고리에서 인스턴스로 이동한 뒤 주황색 버튼 - 인스턴스 시작을 눌러줍니다.
이후 아래와 같이 설정해줍니다. 이름은 본인이 구분할 수 있게 설정해줍니다. 그리고 EC2의 운영체제를 본인의 입맛대로 골라주세요.
저는 우분투를 사용해주었습니다.
이후 인스턴스 유형을 본인의 서비스 성격에 맞게 설정해줍니다.
pem 파일 설정
pem 파일과 키 페어를 다운로드 받을 수 있게 다음과 같이 설정해주고, 키 페어를 생성해주세요.(키 페어 이름은 본인이 원하는대로 ㅎㅎ)
절대 유출하지않도록 주의합니다. 앞으로 이 pem파일을 통해서 EC2 인스턴스로 접속을 진행할 예정이기 때문입니다.
PEM 파일이란?
- PEM(Privacy-Enhanced Mail) 파일: PEM 파일은 개인 키(Private Key)를 포함하는 파일로, AWS EC2 인스턴스에 SSH(보통 Linux 인스턴스) 또는 RDP(보통 Windows 인스턴스)로 접근할 때 사용됩니다. 이 파일은
.pem
확장자를 가지며, 사용자가 EC2 인스턴스를 처음 생성할 때 AWS가 제공하는 방식으로 다운로드합니다. - 보안 역할: 이 파일은 EC2 인스턴스에 접근하는 데 필요한 인증서 역할을 하며, 사용자는 이 파일을 안전하게 보관해야 합니다. 이 파일이 유출되면 인스턴스의 보안이 위험해질 수 있습니다.
키 페어(Key Pair)란?
- 키 페어: AWS에서 제공하는 보안 메커니즘으로, EC2 인스턴스와 안전하게 통신하기 위해 사용됩니다. 키 페어는 두 개의 키로 구성됩니다:
- 공개 키(Public Key): EC2 인스턴스에 저장됩니다.
- 개인 키(Private Key): 사용자에게 제공되며, PEM 파일 형식으로 다운로드됩니다.
- 작동 원리: 사용자는 개인 키(PEM 파일)를 사용하여 SSH 또는 RDP를 통해 EC2 인스턴스에 접근합니다. 이때, 개인 키가 인스턴스에 저장된 공개 키와 매칭되면 사용자는 인스턴스에 접속할 수 있게 됩니다.
PEM 파일 및 키 페어 관리
- 생성: EC2 인스턴스를 생성할 때 키 페어를 생성할 수 있으며, 이 과정에서 PEM 파일을 다운로드 받게 됩니다. 이때 다운로드한 PEM 파일은 한 번만 제공되므로, 안전하게 저장해야 합니다.
- 보안: PEM 파일을 다른 사람과 공유하지 않도록 주의해야 하며, 가능하면 파일에 대해 적절한 권한 설정(예:
chmod 400
명령어로 파일을 읽기 전용으로 설정)을 해주어야 합니다. - 접근 방법:
- Linux/MacOS:
ssh -i /path/to/your-key.pem ec2-user@your-ec2-instance-ip
- Windows: PuTTY와 같은 SSH 클라이언트를 사용하여 PEM 파일을 PPK 형식으로 변환한 후 사용합니다.
- Linux/MacOS:
- 재생성 및 교체: PEM 파일을 분실하거나 키 페어를 교체해야 하는 경우, 기존 인스턴스에는 새로운 키 페어를 추가하거나 새로운 인스턴스를 생성해야 합니다. 이미 존재하는 EC2 인스턴스에서는 새로운 키 페어를 추가하는 작업이 필요할 수 있습니다.
네트워크 설정: 보안그룹 지정
인스턴스의 네트워크를 설정해줘야겠죠? 이전에 설정해주었던 보안그룹을 지정해줍니다.
이제 마지막으로 인스턴스를 생성한 다음 인스턴스가 시작 중이며, 상태 검사도 완료되었다면 접속할 차례입니다.
.pem파일을 프로젝트 루트 폴더에 위치시킵니다.
이후 터미널에서 파일 권한을 400으로 변경시켜줍니다.(예: chmod 400
명령어로 파일을 읽기 전용으로 설정)
그리고 루트 폴더에서 리눅스 기준으로 다음과 같이 접속할 수 있습니다.
ssh -i /path/to/your-key.pem ec2-user@your-ec2-instance-ip
양식에 맞게 설정해주세요(your-ec2-instance-ip는 인스턴스의 퍼블릭 IPv4 주소를 기입해주세요.
이제 당신은 EC2에 접속할 수 있습니다.
'Dev Activity' 카테고리의 다른 글
네이버 부스트캠프 웹・모바일 9기 챌린지 후기(+멤버십 입과) (0) | 2024.08.11 |
---|