밍쯔와 안작고 안귀여운 에러들🖤

[INFRA/AWS] EC2 인스턴스 생성하기 본문

Develop/AWS | Cloud

[INFRA/AWS] EC2 인스턴스 생성하기

밍쯔 2024. 9. 11. 16:02

지난번 프로젝트에서는 프론트/백엔드 개발에 중점을 뒀다면,

해커톤을 준비하는 이번에는 aws를 쓰고 서버 올리는 작업에 중점을 두려고 한다!

 

그래서 ERD 설계 후 개발 준비를 위해 AWS에 EC2 인스턴스를 생성하고

추후 이미지 데이터를 위해 저번과 같이 S3를 생성해두려고 한다!

 


EC2(Elastic Compute Cloud)란?

AWS의 EC2는 클라우드에서 가상 서버를 제공하는 서비스로, 사용자가 필요에 따라 컴퓨팅 자원을 쉽게 생성하고 관리할 수 있게 해준다. 따라서, 하드웨어 비용을 절감하여 애플리케이션을 더욱 빠르게 개발하고 배포할 수 있도록 해준다.

EC2는 다양한 크기와 성능의 인스턴스를 제공하여 개발, 테스트, 프로덕션 환경 등 여러 용도로 사용할 수 있다.

즉, AWS EC2는 필요에 맞는 서버 인프라를 클라우드 환경에서 유연하게 사용할 수 있는 강력한 도구이다.

 

 

주요 특징

  • 가변적인 스케일링: 필요에 따라 서버를 추가하거나 줄일 수 있어 효율적인 자원 관리를 지원함
  • 다양한 인스턴스 타입: CPU, 메모리, 스토리지 요구에 따라 여러 인스턴스 유형을 선택할 수 있음
  • 보안 및 네트워크 설정: 보안 그룹, 네트워크 액세스 제어 등을 통해 네트워크와 보안을 세밀하게 관리할 수 있음
  • 비용 절감 옵션: 온디맨드, 예약 인스턴스, 스팟 인스턴스 등 여러 요금제를 제공하여 예산에 맞게 선택할 수 있음

순서
1. EC2 시작하기
2. EC2 인스턴스 생성하기
3. 보안 그룹 생성
4. 보안 그룹 - 인스턴스에 설정

 

다음 글

 

[MAC/AWS] EC2 인스턴스 MySQL 구축 및 DB 생성, 권한 설정까지 !

이번에는 EC2에서 만든 인스턴스에 MySQL을 설치하고,Database를 생성하고,이를 사용할 유저 생성과 권한 부여까지 해보겠다 !  이전글 [INFRA/AWS] EC2 인스턴스 생성하기지난번 프로젝트에서는 프론

mingz.tistory.com


EC2 인스턴스 생성하기

 

혹시 로그인이 처음인 사람을 위해.. 아래 참고!

더보기

콘솔 로그인하고 EC2로 들어가기

 

아래 링크로 들어가서 계정이 있다면 로그인(root 계정), 없으면 회원가입!

https://aws.amazon.com/ko/console/

 

AWS Management Console

AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.

aws.amazon.com

 

 

1. 오른쪽 구석에 '콘솔에 로그인' 클릭!

 

2. 로그인

이때, 계정이 없다면 박스 아래 'Create a new AWS account'.

계정이 있다면 핑크 박스의 'root user email' 클릭!

 

해당 페이지로 넘오면, 체크되어 있는 '루트 사용자'를 그대로 두고!

아래 이메일 입력 > 다음 > 비밀번호 입력 등으로 로그인하면 접속 완료!

 

1. EC2 시작하기

저는 이미 EC2를 여러번 들어갔어서 최근방문 리스트에 뜨긴하지만,

처음인 사람을 위해! 찾는 방법부터•••

 

쏘 간단~ 그냥 검색창에 EC2 검색하면 됩니다용

 

 

들어가면, 아래 '인스턴스 시작'을 클릭 !

 

 

일단, 무언가를 진행하기 전에 가장 먼저 확인해주어야 하는 것!!

바로 지역설정이 '서울'인지 확인해주어야 한다.

오른쪽 구석에 저는 이미 서울이라서 제대로 표시됐지만, 누군가는 시드니일수도!

그러니 변경을 해주시고 그럼 시작~,~

 

(아래) 그렇다면 왜 꼭 Region을 서울로 지정해야하는거지? 

더보기

Region은 전 세계에 분포된 AWS의 독립적인 데이터 센터 집합의 위치를 의미한다.

AWS의 데이터 센터

가장 가까운 국가로 선택해야 하는 이유는 주로 지연 시간(레이지)데이터 전송 속도 때문!

구체적인 이유는 다음과 같다.

 

  1. 지연 시간 감소: 서버와 사용자가 물리적으로 가까울수록 지연 시간이 줄어든다. 예를 들어, 한국 사용자들이 주로 이용하는 서비스라면 서울 리전을 선택함으로써 더 빠른 응답 속도를 제공할 수 있다.
  2. 데이터 전송 속도: 인스턴스가 한국 리전에 있을 때 인터넷 속도나 데이터 전송 속도가 일반적으로 더 빠르다. 특히 대용량 데이터를 다룰 때 유리하다.
  3. 규제 준수: 어떤 산업에서는 고객의 데이터를 특정 국가에 저장해야 하는 규제가 있을 수 있다. 한국 내 데이터를 보호해야 하는 경우 서울 리전을 사용하면 규제를 준수하는 데 유리하다.
  4. 비용 절감: 리전마다 가격이 다르기 때문에, 서울 리전이 다른 리전보다 더 저렴할 수 있다. 반면, 일부 서비스에서는 한국 리전의 비용이 더 높을 수도 있으니 확인이 필요하다.
  5. 서비스 가용성 및 특징: AWS는 리전에 따라 제공되는 서비스와 그 기능이 다를 수 있다. 한국 리전에서는 주로 한국에서 필요한 기능들이 최적화되어 제공된다.

물론, 서울 리전을 선택하지 않아도 된다. 타겟 사용자가 주로 다른 나라에 있거나 특정 리전에서만 제공되는 기능이 필요한 경우 다른 리전을 선택해도 된다!

 


 

2. EC2 인스턴스 생성하기

  • 인스턴스 이름 작성하기

자신이 원하는 이름으로 작성합니다! 저는 '서비스이름-ec2' 이렇게 만들어 줬습니다

 

 

  • 인스턴스 AMI(Amazon Machine Image) 선택하기

서버의 초기 설정을 결정하는 중요한 단계입니다. AMI는 운영 체제(OS), 소프트웨어, 설정 등이 미리 설치된 이미지로, 인스턴스 시작 시 이 AMI를 기반으로 서버가 구성됩니다.

저는 Ubuntu를 선택했는데, 개발자 커뮤니티에서 많이 사용하는 배포판으로 패키지 관리와 보안 업데이트가 잘 되어 있습니담!

 

 

  • 인스턴스 유형 선택하기

성능, 비용, 사용 목적 등을 고려하여 적절한 자원을 확보하는 중요한 결정입니다.

우리는 돈이 없으니 12개월간 무료로 사용가능하고, 저렴한 유형을 선택합니다.

그리고 큰 프로젝트가 아니기때문에 해당 인스턴스 유형으로도 충분할겁니다!

기본 세팅이니 따로 수정안해도 됩니당

 

  • 인스턴스 키페어 생성하기

키페어 유형 2가지가 있다

  • RSA: 공개키 암호시스템, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘
  • ED25519: 공개키 암호화시스템, SHA-512 및 Curve25519를 사용한 EdDSA 서명 체계, 타원곡선 암호화 기반으로 하여 RSA에 비해 더 높은 안전성 보장

- 설명만 보면 ED25519가 더 좋아보이긴 하지만, 일반적으로 RSA를 많이 선택하고 현재 대부분의 시스템과 소프트웨어가 RSA를 기본적으로 지원하고 있기 때문에 호환성을 생각해서 RSA를 선택해줍니다!

- pem키 역시 다양한 운영 체제에서 사용 가능하게 광범위하게 지원되기 때문에 많이 사용한다.

!! 그리고 키 파일은 잘~~~!!! 보관해주세요 !!

 

 

  • 네트워크 설정하기

네트워크 설정은 아래와 같이 진행한다

보안 그룹은 기존 보안 그룹이 있다면 설정해 주고, 없다면 그대로 진행한다.

이때, SSH 트래픽 허용란에 내 IP라고 되어 있다면, pem키를 이용한 SSH 접근이 동일 IP에서만 접근 가능함에 유의하자.

 

 

  • 스토리지 구성하기

AWS 프리 티어에서는 월별 30GB의 무료 스토리지 양을 제공하는데, 여러 EBS(Elastic Block Store) 스토리지에 걸쳐 분배해서 사용할 수 있다. 예를 들어, 10GB짜리 EBS 볼륨 3개를 사용하거나, 20GB와 10GB짜리 볼륨 각각 하나씩을 사용할 수도 있다.

 

각자 상황에 맞게 하나만 생성할거라면 30을 해도 된다.하지만 나는 다른 프로젝트로 만들고 싶을 것 같으니 15GB로 했다!

 

  • 인스턴스 시작!

 

시작을 누르고 다시 인스턴스 리스트 페이지로 넘어오면,

위와 같이 '대기 중' 상태로 인스턴스가 생성되고 있다!

조그만 기다리면 아래와 같이 모든 상태 검사가 끝나고 다시 추가 설정을 해줄 준비 완료!

 

 


 

3. 보안 그룹 생성

보안 그룹(Security Groups)은 AWS에서 제공하는 가상 방화벽으로, EC2 인스턴스와 같은 AWS 리소스에 대한 인바운드(들어오는 트래픽)와 아웃바운드(나가는 트래픽) 트래픽을 제어하는 데 사용된다. 

보안 그룹을 통해 어떤 소스(IP 주소나 IP 주소 범위)에서 포트 번호를 통해 리소스에 접근할 수 있는지, 리소스가 외부로 어떤 트래픽을 보낼 수 있는지 세밀하게 설정할 수 있다!

 

  • 보안 그룹 생성하기

 

'보안 그룹' 버튼 클릭 합니다

 

그리고 '보안 그룹 생성' 클릭!

 

 

  • 보안 그룹 설정하기

이름을 설정해주고 규칙 추가를 해줍니다

** 이름 설정 아래 설명 부분도 간단히 추가하세요!

 

- 인바운드 규칙(Inbound Rules): 특정 소스로부터 들어오는 트래픽을 허용하거나 거부할 수 있다. 소스는 IP 주소, IP 주소 범위, 또는 다른 보안 그룹일 수 있다.

- 아웃바운드 규칙(Outbound Rules): 인스턴스가 시작하는 트래픽이 특정 목적지로 나갈 수 있도록 허용한다. 기본적으로 모든 아웃바운드 트래픽이 허용되지만, 필요에 따라 이를 제한할 수 있다.

 

 

  • 인바운드 규칙 생성하기

외부에서 EC2로 접근할 포트는 22번, 80번 포트이다.

22번 포트는 우리가 EC2에 원격 접속할 때 사용하는 포트이고, 80번 포트는 http를 사용해 백엔드 서버를 띄울 예정이기 때문에

두 개의 포트를 열어준다.

 

이때, 어떤 IP에서든 접근할 수 있도록 하기 위해 소스 유형은 'Anywhere-IPv4'로 설정!

 

 

  • 아웃바운드 설정하기

기본적으로 보안그룹은 모든 아웃바운드 트래픽을 허용한다!

이를 통해 인스턴스를 인터넷을 통해 다른 서비스 및 인터넷과 통신할 수 있다.

따라서, 별도의 설정을 해주지 않고 패스!

 

'보안 그룹 생성'까지 누르면 완료이다

 


 

4. 보안 그룹 - 인스턴스에 설정

새로 생성한 보안 그룹을 방금 만든 인스턴스에 적용해주면 끝입니다

 

 

 

연결된 보안 그룹에 방금 생성한 보안 그룹이 없기 때문에 검색창을 눌러서 추가해준다.

그럼 진짜 끝!

 


 

다음 글에서 인스턴스에 접속하고, 이를 DBeaver에 연결하는 방법을 알아보자!

 

[MAC/AWS] EC2 인스턴스 MySQL 구축 및 DB 생성, 권한 설정까지 !

이번에는 EC2에서 만든 인스턴스에 MySQL을 설치하고,Database를 생성하고,이를 사용할 유저 생성과 권한 부여까지 해보겠다 !  이전글 [INFRA/AWS] EC2 인스턴스 생성하기지난번 프로젝트에서는 프론

mingz.tistory.com

 

+ ) 탄력적 IP 할당하기

 

[AWS] 탄력적 IP(EIP) 할당하기

개발을 하다보면 인스턴스를 중단시켰다가 다시 재시동 시키는 일이 생길 수 있다.이때, 갑자기 502 에러가 떠서 서비스가 작동하지 않는 오류를 경험한 적이 있을 것이다! 이 문제는 바로 AWS의

mingz.tistory.com