본문 바로가기

DevOps

[AWS] EC2 설정

인프런 JSCODE 박재성님의 비전공자도 이해할 수 있는 AWS 입문/실전을 정리한 글입니다.

이름 및 태그

 

EC2의 이름을 설정하는 곳이다.

 

이 컴퓨터가 어떤 역할을 하는지 알아볼 수 있도록 작성한다.

ex) instargram-server

Application and OS Images (Amazon Machine Image)

 

OS(운영체제)를 선택하는 단계이다.

 

Windows나 Mac OS는 용량도 많이 차지하고, 성능도 많이 잡아먹는다.

따라서, 일반적으로 훨씬 가벼운 Ubuntu 22.04 LTS를 선택한다.

인스턴스 유형

 

인스턴스란, AWS EC2에서 빌리는 컴퓨터 1대를 의미한다.

 

즉, 인스턴스 유형이란, 컴퓨터 사양을 의미한다.

 

프리티어에 해당하는 t2.micro를 사용한다.

키 페어(로그인)

 

키 페어란, EC2 컴퓨터에 접근할 때 사용되는 비밀번호이다.

 

RSA와 .pem을 선택한 후, 키 페어를 생성하면 된다.

(ED25519와 .ppk는 몰라도 된다.)

 

키 페어를 생성 시, 다운 받아지는 파일을 잃어버리지 않도록 잘 보관해야 한다.

네트워크 설정

보안 그룹(Security Group)이란, AWS 클라우드에서의 네트워크 보안을 의미한다.

 

EC2 인스턴스를 집이라고 가정하면, 보안 그룹은 집 바깥쪽에 쳐져 있는 울타리와 대문이다.

집에 접근할 때, 울타리의 대문에서 접근해도 되는 요청인지 보안 요원이 검사를 하는 것과 비슷하다.

 

 

인터넷에서 일부 사용자가 EC2 인스턴스에 접근하려고 할 때, 위 그림과 같이 인스턴스 주위의 방화벽 역할을 할 보안그룹을 만들고 규칙을 지정한다.

 

인바운드 트래픽, 즉 외부에서 EC2 인스턴스로 보내는 트래픽 중 어떤 트래픽을 허용할 지 설정할 수 있다.

아웃바운드 트래픽, 즉 EC2 인스턴스에서 외부로 나가는 트래픽 중 어떤 트래픽을 허용할 지 설정할 수 있다.

 

이 때, 허용할 IP 범위 Port를 설정할 수 있다.

 

 

ssh는 쉽게 말해, 원격 접속하기 위한 경로이다.

우리는 EC2 컴퓨터에 원격으로 접속해서 작업을 수행해야 하므로 필수적이다.

 

HTTP로 백엔드 서버를 띄울 예정이기 때문에, 사용자가 80번 포트로 요청 시 응답할 수 있도록 설정한다.

 

해당 서버로 요청을 보내는 사용자들의 IP가 불특정 다수 이기 때문에, 위치 무관 0.0.0.0/0으로 설정한다.

스토리지 구성

EC2 서버 컴퓨터의 파일 저장 공간 EBS(Elastic Block Storage)라고 한다.

(또는 Storage, Volume이라고도 부른다.)

 

즉, EC2 안에 부착되어 있는 일종의 하드디스크라고 생각하면 된다.

 

프리티어는 30GB까지 가능하고, 최신 볼륨 유형 gp3를 무료로 사용할 수 있다.

인스턴스 정보

퍼블릭 IPv4 주소: EC2 인스턴스가 생성되면서 부여받은 IP주소이다.

 

< 인스턴스 상태 >

1. 실행중: EC2 컴퓨터가 켜져 있는 상태

2. 중지: EC2 컴퓨터를 잠시 꺼둔 상태

3. 종료: EC2 컴퓨터를 삭제한 상태 (주의!!)

 

서버 운영 시, 모니터링을 통해 정상적으로 작동하는지, 성능을 향상시켜야하는지 등을 확인할 수 있다.

 

해당 인스턴스에 원격 접속할 수 있다. (우분투 환경)

IP & Port

IP: 네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port: 한 컴퓨터 내에서 실행되고 있는 특정 프로세스의 주소

 

한 서버 컴퓨터 내에서 여러 프로그램이 실행되고 있다.

 

예를 들어, 외부에서 서버 컴퓨터 내부에서 실행되고 있는 Spring Boot 서버 프로세스에 통신을 하고 싶을 때, IP 주소로 해당 컴퓨터를, Port 번호로 해당 프로세스를 알고 있어야 가능하다.

 

도메인 주소를 통해 알 수 있는 것은 IP 주소 뿐이다.

그렇다면, 브라우저 창에 포트 번호를 입력하지 않는 이유는 무엇일까?

 

주소창에 도메인 주소를 입력하면, 브라우저(크롬, 익스플로러)는 기본적으로 80번 포트로 통신을 보내도록 설정되어 있다.

 

따라서, 만약 80번 포트 대신 3000번 포트로 통신을 하고 싶다면, "naver.com:3000" 식으로 입력해야 한다.

Well - Known Port

포트 번호는 0번 ~ 65535번까지 사용할 수 있다.

 

그 중 0번 ~ 1023번까지는 주요 통신을 위한 규약에 따라 이미 정해져 있다.

 

이를 Well - Known Port라고 한다.

 

22번: SSH (Secure Shell Protocol)

=> 원격 접속을 위한 포트

 

80번: HTTP

=> HTTP 통신을 위한 포트

 

443번: HTTPS

=> HTTPS 통신을 위한 포트

 

정해놓은 규약을 꼭 지키지 않고, 포트 번호를 다르게 사용해도 된다. (권장)

'DevOps' 카테고리의 다른 글

[AWS] 탄력적 IP 연결 & 서버 배포  (1) 2024.07.16
[AWS] EC2  (0) 2024.07.15
[AWS] node.js 서버 배포하기  (1) 2024.05.26