4 min to read
[AWS] 1. EC2 입문 : 인스턴스 생성
Web Development
[AWS] 1. EC2 입문 : 인스턴스 생성
0. AWS 가입하기
-
AWS는 가입 후 1년까지 매우 낮은 수준의 가상 컴퓨터를 무료로 제공하는 프리티어 (Free Tier) 서비스를 제공하고 있다. (단, 가입 시 1$가 소비되니 넉넉하게 가입 시 등록할 카드의 잔고를 1$ 이상으로 준비할 것) 무료 클라우드를 제공해주는만큼 성능이 그다지 뛰어나지 않고 한 달에 750시간의 제한이 있다는 점에서 웹 서비스를 배포하려고 준비하는 분들은 개발 단계가 아니라면 티어를 높이는 걸 추천한다.
-
백문이 불여일견이니 우선 aws에 접속하여 가입을 해보자.
-
대한민국 서울에 ap-northeast-2 서버를 할당받아 쓸 수 있다.
___
1. EC2 (Elastic Compute Cloud) 접근하기
-
AWS에서 가장 많이 쓰이는 EC2를 검색하여 들어가보자. (사실 가장 많이 쓰이는 서비스기 때문에 제일 위의 추천 목록에 뜰 것이다.)
-
EC2란 Elastic Compute Cloud 글자 그대로 Amazon이 확장가능한 컴퓨팅 용량과 서버를 제공하는 클라우드 서비스다.
-
AWS 말고도 Azure, GCP 등의 클라우드 서비스가 존재하는데, 각자의 장단점이 존재하니 자신의 서비스에 맞는 것을 선택하자.
여담으로 Azure는 Microsoft에서 제공하기 때문에 윈도우서버 이미지와 가장 최신 버젼인 윈도우10 이미지를 제공해준다는데
누가 배포 서버를 윈도우로…
___
2.인스턴스 생성
(1) 인스턴스 시작
- EC2를 클릭하여 들어오면 왼쪽 메뉴에서 인스턴스를 클릭하여
인스턴스 시작
버튼을 누르자.
(2) AMI (Amazon Machine Image)
- 프리 티어에서 사용가능한 Amazon Linux 2 AMI (HVM), SSD Volume Type를 선택하겠다.
(3) 인스턴스 유형 선택
-
만약 프리티어 사용자라면 선택지는 하나 뿐이다.
t2.micro
사용하자. CPU 수가 1이고 메모리가 1GB인데, 요새 나오는 스마트폰의 메모리가 6GB라는 것을 생각하면 몇 년 전 휴대폰만도 못한 컴퓨터다. -
인스턴스 세부 정보 구성 (Configure Instance Details) 버튼으로 세부 사항을 설정할 수도 있는데, 프리 티어에서는 그냥 스토리지 추가 단계로 넘어가도 좋다. 단, 인스턴스 세부 정보 구성 버튼을 누르지 않으면 바로 다른 설정 없이 후술할 (7)번 단계인 인스턴스 시작 검토로 넘어가게 되니 꼭 인스턴스 세부 정보 구성을 누르도록 한다.
(4) 스토리지 추가
- 스냅샷, 스토리지 크기, 볼륨유형, 처리량 등의 설정을 바꿀 수 있다. 건드리지 않고 태그 추가로 넘어가겠다.
(5) 태그 추가
- 우리가 사용할 수 있는 AWS의 자원들에는 Tag를 달아둘 수 있기 때문에 나중에 어떤 자원인지 한 눈에 알아보기 위해 태그를 설정해두도록 하자. key - value로 이루어져 있다. (Name - {server_name} 등 자기 마음대로…)
(6) 보안 그룹 구성 (중요!)
-
인스턴스에 대한 트래픽을 제어하는 아주 중요한 단계다. 분명히 설정을 잘 한 것 같은데 Public IPv4 주소로 들어가려고 해도 브라우저에서 계속 부팅되는 상황도 보안 그룹을 제대로 설정하지 않아 생기는 상황이다.
-
들어가자마자 설정되어 있는 SSH 유형의 보안 그룹에는 0.0.0.0/0이라는 주소가 있는데, 이는 모든 IP에서 해당 클라우드 컴퓨터를 이용할 수 있다는 뜻이다.
-
다른 사람들이 이용하는 것을 원치 않는다면 (당연한 이야기지만) IP 주소를 자신의 IP 주소로 변경하자. 소스에서 “내 IP”를 클릭하면 손쉽게 현재 IP로 바꿀 수 있다. (설명란에 해당 IP가 어디서 사용되는지 적는 것 추천)
-
인바운드 규칙에는 22번 포트인 SSH, 3306번 포트인 MYSQL/Aurora, 80번 포트인 HTTP, 443번 포트인 HTTPS 등 다양한 유형이 존재한다. 로컬 컴퓨터를 통해 EC2에 접근하기 위해 SSH 유형에 현재 자신의 IP를 추가해줘야 하며, RDS에 접근하기 위해서 MYSQL/Aurora 역시 추가해줘야 한다.
-
또한, 생성된 EC2의 Public IPv4 주소를 인터넷으로 접근하고 싶다면 (가령 http://54.180.155.219 ) HTTP 80번 포트에 IP를 등록해야 하는데, 내 IP만을 입력하면 말 그대로 현재 IP에서만 http://54.180.155.219 에 접근할 수 있다. 따라서 모든 IP에서의 접근을 허용하고자 “내 IP” 대신 “위치 무관” 소스를 선택하여 0.0.0.0/0 및 ::/0을 추가하도록 하자.
인바운드 규칙에 HTTP 설정 전
인바운드 규칙에 HTTP 설정 후
(7) 인스턴스 시작 검토
- 지금까지 인스턴스 단계에서 설정한 것들을 한 눈에 살펴볼 수 있다.
시작하기
버튼을 누르면 “기존 키 페어 선택 또는 새 키 페어 생성” 이라는 팝업이 뜨는데, 지금은 아무런 기존 키 페어가 없기 때문에 키 페어 이름을 설정한 후 .pem 확장자인 키 페어를 다운로드 받는다.
(8) 인스턴스 생성 완료
- 이제 인스턴스를 시작할 수 있으며, 인스턴스 창에 자신이 태그 추가 단계에서 설정한 Name에 해당하는 인스턴스가 실행중인 것을 볼 수 있다! 해당 인스턴스를 클릭하여 이것저것 살펴보도록 하자.
___
3. 인스턴스 연결
인스턴스에 연결하는 방법에는 세 가지가 존재한다. EC2 인스턴스 연결, Session Manager, SSH 클라이언트를 통한 방법이 그것인데, 나는 Terminal을 자주 사용하기 때문에 굳이 브라우저를 통해 AWS에 접속하지 않더라도 EC2 인스턴스에 접근할 수 있는 SSH 클라이언트 방식을 사용하고자 한다.
(1) SSH 클라이언트 열기
- terminal, cmd 등 자신의 OS에 부합하는 CLI (Command Line Interface) 열기
(2) Private Key File 관리
- 인스턴스 생성 직전에 .pem 확장자를 가진 파일을 다운로드했을텐데 이를 .ssh directory로 옮긴 후
chmod 400 {Name}.pem
명령을 실행하여 키를 공개적으로 볼 수 없게 한다.
(3) Public DNS로 인스턴스에 연결
-
본인에게 할당된 Public IPv4 DNS (ex. ec2-54-180-155-219.ap-northeast-2.compute.amazonaws.com)를 사용하여 인스턴스에 연결한다. 연결 명령어는 다음과 같다.
ssh -i "waffle-backend.pem" ec2-user@ec2-54-180-155-219.ap-northeast-2.compute.amazonaws.com
Comments