본문 바로가기

Infra/AWS

[AWS] EC2 - 인스턴스 생성 및 접속

요약

1. EC2 인스턴스 생성
2. SSH 프로토콜로 EC2 인스턴스 접속

 

1. EC2 인스턴스 생성

1. EC2 > 인스턴스 > 인스턴스 시작 버튼을 눌러 인스턴스를 생성한다. 

 

2. EC2를 식별할 수 있는 이름 및 태그를 작성한다. 

 

3. 생성하려는 EC2의 OS 이미지와 버전 인스턴스 유형을 선택한다. 

OS 이미지는 Ubuntu 20.04 LTS를 사용하였다. 프리티어로 사용하는 경우 프리티어 사용 가능한지 여부를 꼭 확인해야 한다.

* 주의 : CodeDeploy를 EC2에 설치해야 한다면 OS 이미지 및 버전을 꼭 확인해야 한다. 처음에 Ubuntu 22.04 LTS를 사용했다가 Code Deploy가 설치되지 않아 처음부터 다시 생성했다. 

 

인스턴스 서버 크기도 마찬가지로 t2.micro가 프리티어 이므로 t2.micro로 사용하였다. t 시리즈는 낮은 기본 CPU 성능과 작고 저렴한 가상 서버로 구성되어 있다. t2.micro는 가상 CPU개수가 1개, 메모리는 1GB이다.

 

4. (선택) SSH 프르토콜로 EC2에 접근하기 위한 키 페어 생성

기존에 생성한 키 페어가 있다면 선택하고 없다면 새 키 페어 생성 버튼을 누른다.

 

생성을 누르면 파일을 내려받을 수 있다. 보안상 중요한 파일이므로 C드라이브에 폴더 하나 만들고 보관하는 것이 좋다. 

 

키페어란?

AWS에서 EC2에 접근하려면 개인키(private key)와 공개키(public key)로 구성된 키 페어(key pair)가 필요하다. 공개키는 AWS에 업로드되어 가상 가상 서버에 삽입되고, 개인키는 자신이 소유하지만 훨씬 더 안전하다. 리눅스 서버에 접근하려면 SSH 프로토콜을 사용한다. 로그인 시 비밀번호 대신 키 페어를 이용하여 인증할 수 있다.

 

5. 네트워크 설정

네트워크는 vpc를 구성하고 사용할 수 있으며 나는 기본 vpc를 사용하였다.

 

보안 그룹 인바운드 규칙으로 서버에 접속하기 위해 SSH 프로토콜을 추가하였고, API 서버이기 때문에 HTTPS, HTTP 트래픽도 허용해주었다. 지금 허용하지 않아도 나중에 보안 그룹을 수정할 수 있으니 처음부터 허용하지 않아도 괜찮다.

 

6. 스토리지 구성

프리티어로 사용할 수 있는 최대 용량인 30GB로 설정하였다. 

 

7. 인스턴스 생성 버튼을 누르고 생성

다음과 같은 스펙으로 인스턴스를 생성하였다. 처음 인스턴스를 생성하면 pending 상태였다가 running으로 변경되니 기다려야 한다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. EC2 접속

ssh 프로토콜, 세션 매니저를 통해 ec2에 접속하는 방법이 있고 나는 ssh 프로토콜을 사용하여 ec2에 접속하였다.

 

1. ec2 보안그룹 인바운드 규칙에 ssh프로토콜에 대한 규칙을 추가한다. 

2. 로컬 컴퓨터 터미널에서 인스턴스 생성 시 발급 받은 키페어(key pair)가 있는 디렉토리로 이동한다. 

 

3. 키페어에 대한 권한 설정을 변경한다. 

$ chmod 400 {pemKeyName}.pem

chmod 뒤의 숫자 3개는 차례대로 나/그룹/전체 에 대한 권한을 의미한다. read(4), write(2), execute(1)의 조합으로 권한을 나타낸다. 즉 chmod 400 의 의미는 4/0/0이므로 나에게만 읽기 권한을 부여하는 것이다.

 

4. ssh 접속

$ sudo ssh -i {pemKeyName}.pem ubuntu@{인스턴스 엔드포인트}

 

5. (선택) .ssh 설정으로 간단하게 ssh 접속을 할 수 있다. 

 

5-1. 키페어를 .ssh 폴더로 복사해준다. 

$ cp ./{pemKeyName}.pem ~/.ssh/

 

5-2. .ssh 디렉토리로 이동하여 config 파일을 생성해준다.

$ cd ~/.ssh //.ssh 디렉토리로 이동
$ vim config //config 파일 생성

 

5-3. config 파일을 작성한다.

Host {서비스 이름}
        HostName {ec2 엔드포인트}
        User ubuntu //ubuntu가 아니라면 다른것으로 지정해야함.
        IdentityFile ~/.ssh/{keypairName}

 

5-4. 저장 후 ssh로 접속한다. 

:wq //저장하고 종료
$ ssh {config에 입력한 서비스 이름}