AWS EC2 인스턴스 생성하기
프로젝트용 서버 구축을 위한 EC2 인스턴스 생성 과정에 대해 기록하고자 한다.
EC2, Elastic Computing Cloud
AWS에서 제공하는 클라우드 컴퓨팅 서비스로 아마존이 사용자에게 컴퓨팅 자원을 임대해주는 서비스다.
특징
- 초 단위 온디맨드 가격 모델
- 초 단위 컴퓨팅 파워로 측정된 가격을 지불
- 서비스 요금을 미리 약정하거나 선입금할 필요 없음
- 빠른 구축 속도와 확장성
- 몇 분이면 전 세계에 인스턴스 수백여 대 구축 가능
- 다양한 구성 방법 지원
- 머신 러닝, 웹 서버, 게임 서버, 이미지 처리 등 다양한 용도에 최적화된 서버 구성 가능
- 다양한 과금 모델
- 여러 AWS 서비스와 연동
- Auto Scaling, Elastic Load Balancer(ELB), CloudWatch
인스턴스 생성
-
인스턴스 이름 입력
인스턴스의 이름을 적절히 입력한다.
-
사용할 OS, 적절한 이미지 버전을 선택한다.
인스턴스는 프리 티어로 사용하기 적절한 t2.micro를 선택한다.
AMI, Amazon Machine Image
인스턴스를 시작하는데 필요한 정보를 제공하는 이미지를 말한다. -
키 페어
키 페어의 이름을 입력 후 ‘새 키 페어 생성’ 버튼
키 페어 유형은 RSA를 기본으로 사용하고, 프라이빗 키 파일 형식은 PuTTY를 사용할 예정이므로 .ppk 를 선택한다. →
키 페어 생성버튼다운로드 받은 키 파일은 다시 받을 수 없기 때문에 잃어버리지 않게 잘 보관해야 하며, 제 3자에게 노출시키면 안 된다.
-
화면 우측의 요약 영역에
인스턴스 시작버튼 클릭시 EC2 인스턴스가 생성된다.
탄력적 IP 할당
기본적으로 EC2 인스턴스는 고정 IP가 할당되어 있지 않으므로 인스턴스를 재시작하는 경우 IP 주소가 변경될 수 있으므로 탄력적 IP를 사용하는 것이 좋다.
탄력적 IP를 생성해놓고 사용하지 않으면 과금이 발생하므로 반드시 인스턴스와 연결된 상태이어야 한다. 만약 EC2 인스턴스가 제거되어 탄력적 IP와 연결이 끊겼따면 탄력적 IP 또한 제거해야 한다.
-
탄력적 IP가 할당된 것을 확인할 수 있다.
보안 설정
생성된 EC2 인스턴스에 보안 정책에 맞는 트래픽만 인입될 수 있다. 디폴트 보안 규칙은 다음과 같다.
인바운드 규칙으로 현재 모든 IP에서 SSH(Port 22) 접속만 허용되어 있으며, 아웃바운드 규칙은 모든 IP로 모든 Port, 프로토콜의 트래픽이 나갈 수 있도록 되어 있다.
추후 API 또는 웹 서버를 EC2 인스턴스에 올리는 경우 인바운드 규칙을 추가하여 해당 프로토콜의 포트를 오픈해주어야 한다.
예를 들어 HTTP 서버(Port 80)를 오픈하려면,
좌측 메뉴 ‘보안 그룹’ > 보안 그룹 선택 > 인바운드 규칙 편집 버튼
규칙 추가 버튼을 선택하고 다음과 같이 설정할 수 있다.
필자는 외부에서 SSH 접속을 차단하기 위해 모든 IP에 열려있는 인바운드 규칙을 본인 PC IP로 제한하였다.
EC2 인스턴스 접속하기
PuTTY 콘솔 활용
-
PuTTY 실행 후
Connection > SSH > Auth > Credentials 카테고리 선택Private key file for authentication > Browse > 다운 받은 키 파일 (
*.ppk) 선택 -
Session 카테고리로 돌아온 후
인스턴스의 퍼블릭 IPv4 주소 입력, 세션 설정을 저장하기 위해 세션의 이름을 지정 후 Save 버튼 → Open 버튼
- 호스트 키 신뢰 여부 묻는 화면이 나오면
Accept버튼 -
AWS EC2 우분투 유저 계정명은
ubuntu이므로 해당 계정 입력 후 엔터하면
콘솔에 정상 접속된 것을 확인할 수 있다.
AWS 콘솔 활용
EC2 인스턴스 화면에 들어오면 인스턴스 체크 → 상단
연결 버튼
선택된 EC2 인스턴스 정보를 확인하고 사용자명은 디폴트로
ubuntu 입력된 것을 확인할 수 있다.
연결 버튼 선택한다.
브라우저에서 우분투 콘솔에 바로 접속된 것을 확인할 수 있다.
References
- https://youtu.be/rdlHszMujnw?si=dIFgZjqy5MN8Fd9r
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html