이번 포스트에서는 EC2 인스턴스(Linux ubuntu)를 생성하고 인스턴스에 접속하는 방법을 정리하겠습니다.
Amazon EC2(Amazon Elastic Compute Cloud)란?
Amazon Elastic Compute Cloud(Amazon EC2)
는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. Amazon EC2에서는 확장 또는 축소를 통해 요구 사항 변경 또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어듭니다.
AWS EC2 인스턴스 생성하기
1. EC2 콘솔 대시보드에 접속하기
AWS에서 Region 선택 후, Compute -> EC2 탭으로 들어가줍니다.
혹은 https://console.aws.amazon.com/ec2링크에 들어갑니다.
2. EC2 콘솔 대시보드에서 인스턴스 시작(Launch Instance)
EC2 인스턴스를 생성하기 위해 인스턴스 시작(Launch Instance)을 클릭합니다.
3. 이름 및 태그(Name and tags) 입력
인스턴스를 설명하는 이름과 태그를 입력해줍니다.
4. OS Image 및 Amazon Machine Image
원하는 호스트 운영체제를 선택합니다.
저는 OS Image는 Ubuntu 운영체제를 선택하였고
AMI(Amazon Machine Image)는 프리티어로 사용 가능한 Amazon Linux 2를 선택하였습니다.
5. 인스턴스 유형(Instance type) 선택하기
원하는 인스턴스의 하드웨어를 선택해줍니다.
인스턴스 유형 비교(Compare instance types)를 클릭하면 인스턴스 유형별로 성능과 가격을 비교할 수 있습니다.
저는 프리티어로 사용 가능한 t2.micro 인스턴스를 사용하겠습니다.
6. 키 페어(Key pair) 설정
키 페어를 설정해줍니다.
만약 키페어가 없다면 키 페어 생성하기(Create new key pair)를 클릭하여 키 페어를 생성하고 private key는 인스턴스에 접속할 때 필요하므로 잃어버리지 않도록 보관해주세요.
* 주의: 키 페어 없이 진행을 선택하지 마세요. 키 페어를 설정해주지 않으면 인스턴스에 접속할 수 없습니다.
이번 포스트에서는 SSH 방식을 사용할 것이기 때문에 포맷은 pem 확장자를 선택해주었습니다.
7. 네트워크 설정(Network Settings)
네트워크 설정(Network Settings) 옆에 있는 편집(Edit) 버튼을 눌러줍니다.
그러면 보안 그룹을 확인할 수 있고 새로운 보안그룹을 만들거나 기존 보안그룹을 선택할 수 있습니다.
보안 그룹에서 인바운드 규칙을 설정해줍니다.
인바운드 규칙은 인스턴스로 들어오는 수신 트래픽을 제어하고 아웃바운드 규칙은 인스턴스에서 나가는 발신 트래픽을 제어합니다. 인스턴스에 하나 이상의 보안 그룹을 할당할 수 있습니다. 여러 보안 그룹을 할당하면 모든 규칙이 평가되어 인바운드 및 아웃바운드 트래픽을 제어합니다.
유형(Type)
-> 네트워크 트래픽 유형입니다. 트래픽 유형을 선택하면 프로토콜 필드가 자동으로 채워집니다.
일반적으로 Linux의 경우 SSH, Windows의 경우 RDP, 인터넷 트래픽을 사용하고 싶은 경우 HTTP, HTTPS를 선택합니다.
프로토콜(Protocol)
-> 프로토콜 유형입니다. TCP 혹은 UDP를 선택합니다.
포트 범위(Port range)
-> 단일 포트 (ex: 22)를 입력하거나 포트 범위를 입력할 수 있습니다. (ex: 7000 ~ 8000)
소스 유형(Source type)
-> 특정 IP를 지정하고 싶은 경우 사용자 지정 IP를 선택하고, 내 IP를 선택하면 Source에 내 IP가 자동으로 입력됩니다.
소스(Source)
-> 소스 유형(Source type)에 사용자 지정 IP를 선택한 경우 IP 값을 넣을 수 있습니다.
8. 스토리지 설정(Configure storage)
인스턴스의 스토리지 용량을 설정합니다.
30GB까지 프리티어로 사용할 수 있다고 하니 30GB로 설정하겠습니다.
9. 인스턴스 시작(Launch Instance)
요약(Summary)에서 인스턴스 설정을 검토하고 준비가 되었다면 인스턴스를 시작버튼을 눌러줍니다.
10. 인스턴스(Instances) 화면에서 시작한 인스턴스 확인
인스턴스 시작을 누르고 난 후 인스턴스 상태가 바로 Running으로 바뀌지 않고 인스턴스가 준비가 되고 Pending -> Running으로 바뀌는 데에는 약간의 시간이 걸립니다. 조금 기다리면 위의 사진처럼 Running 상태로 바뀌게 됩니다.
이제 인스턴스 생성을 마쳤습니다.
AWS EC2(Linux) 인스턴스에 연결하기
저는 Ubuntu OS가 필요하므로 Linux 인스턴스에 연결하는 방법을 정리하겠습니다.
또한, 저는 Unix기반인 Mac OS를 사용하므로 터미널을 이용하면 되지만
Windows OS를 사용하는 분들은 OpenSSH로 접속하기 혹은 PuTTY로 접속하기를 참고하셔서 접속해주시면 됩니다.
Public IP address 확인
인스턴스 ID 클릭 -> Connect 버튼을 클릭하여 IP address를 확인해줍니다.
ssh private key 최소권한 설정: chmod 400 {priate key.pem}
ssh에 접속하기 위해 아래 명령어를 통해 인스턴스를 생성했을 때 만들었던 ssh키에 대한 읽기권한을 설정해주어야 합니다.
$ chmod 400 seunghwan_docker.pem
ssh 접속 : ssh -i {개인키 경로} serverHost@{public IPv4 address}
이제 아래 ssh 명령어를 통해서 EC2 인스턴스에 접속할 수 있습니다.
$ ssh -i ~/credentials/seunghwan_docker.pem ubuntu@54.250.192.226
EC2(Ubuntu) 접속 화면
감사합니다.