Blog

[Spring-LDW] AWS EC2 인스턴스 생성하기

Category
Author
citeFred
citeFred
PinOnMain
1 more property
스프링 부트와 AWS로 혼자 구현하는 웹 서비스  : 인텔리제이, JPA, JUnit 테스트, 그레이들, 소셜 로그인, AWS 인프라로 무중단 배포까지 이동욱 저
Table of Content

EC2란?

Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 온디맨드 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어 비용이 절감되므로 애플리케이션을 더욱 빠르게 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. 용량을 추가(스케일 업)하여 월간 또는 연간 프로세스 또는 웹 사이트 트래픽 급증 등 컴퓨팅 사용량이 많은 작업을 처리할 수 있습니다. 사용량이 감소하면 용량을 다시 축소(스케일 다운)할 수 있습니다.
EC2는 유동적으로 사양을 늘릴 수 있는 클라우드 컴퓨팅 플랫폼
사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 한다.
"일래스틱"(elastic, 탄력적인)이라는 용어를 통해 용량, 시간에 대해 탄력적으로 사용 할 수 있음을 볼 수 있다.

인스턴스 생성하기

1. 기존 인스턴스 삭제

우선 기존 여러 프로젝트를 진행해오면서 생성되었던 인스턴스를 제거하여 처음부터 다시 따라하도록 준비하였다. 물론 앞서 설명한것 처럼 탄력적으로 이미 존재하는 인스턴스의 사양을 변경 할 수도 있으며, 현재 서버를 중지해둔 것 처럼 사용 시간에 대한 것도 개발자가 스스로 조절 할 수 있다.
이미 존재하는 인스턴스의 유형(사양) 변경 화면, 하지만 실습을 위해서 인스턴스를 삭제하고 생성하도록 진행하려 한다.
인스턴스 종료와 중지는 다르다. 중지는 말그대로 일시정지처럼 컴퓨터를 끄는 역할이라고 하면, 인스턴스 종료의 경우 해당 PC를 삭제하는 것과 같다.
종료 후 일정 시간 이후에 해당 인스턴스가 삭제된다. AWS 자체적으로 시스템을 정리하는 시간이 일부 소요된다.

2. 새 인스턴스 시작(생성)

기존 인스턴스가 없는 새로운 사용자의 경우 이 항목부터 따라하면 된다. 교재와 달리 일부 AWS 웹 콘솔의 UI가 변경되었으므로 이 글을 기준으로 따라하는 것이 좋다.(2024.1.3, Mac/Chrome 브라우저 기준)

2.1. 계정 지역 확인

우선 계정의 지역을 확인해야 한다. 보통 처음 리전이 미국 오아이주로 선택 되는 경우가 있다. 컴퓨터 자체 성능 외에 통신 성능으로 이상을 느끼고 있다면 인스턴스가 해외 서버로 생성된 경우가 있다. 서울 지역을 선택해둔다.

2.2. 인스턴스 시작하기

EC2 콘솔 화면에서 인스턴스 시작이라는 주황색 버튼을 쉽게 찾을 수 있다. 인스턴스가 바로 EC2 서버(컴퓨터)를 말하는 AWS가 정의한 용어이다. EC2 대여 라고 보면 된다.

2.3. OS 선택

인스턴스 시작으로 들어오면 바로 서버 이름과 OS 이미지를 선택 할 수 있다.
EC2는 가상 컴퓨터긴하지만 컴퓨터기 때문에 결국 OS가 필요하다. 그럼 어떤 OS를 사용해야하는지 궁금해진다.
아래 OS간 특징을 살펴보긴했지만 결국 “내가 환경 세팅을 하는데 얼마나 많은 참고자료가 있는가?” 도 어떤 기술을 선택하는데 큰 기준 중에 하나라고 생각한다. 특히 개발과 다르게 인프라 구축은 더욱 그 세부구조들을 이해하는데 어려움이 있을 수 있고 결국 수많은 가이드들을 참고해가면서 해결해나가는 경우가 많았는데, 이럴 때 많은 레퍼런스들이 있는 경우엔 그 문제를 빠르게 해결해 나갈 수 있었다. 나는 이런 의미에서 과거 Ubuntu로 환경 구축하는 것을 다뤄봐왔었다.

2.3.1. OS간 특징(펼치기)

교재에서는 Amazon Linux를 다뤄보라는 추천이 있었다. 이것도 마찬가지로 많은 사례들이 있어서 충분히 혼자 공부해 나갈만하다는 점과 다음과 같은 장점이 정리되어 있었다.
아마존이 개발하고 있기 때문에 지원받기 쉽다.
레드햇 베이스이므로 레드햇 계열의 배포판을 많이 다뤄본 사람일수록 문제없이 사용 가능.
AWS 각종 서비스와의 상성이 좋다.
Amazon 독자적인 개발 리포지터리를 사용하고 있어 yum이 매우 빠르다.
여기서 우선 지원이 쉬운것, AWS 인프라 내 서비스와의 상성이 좋다는것은 매우 큰 장점이라 생각한다. 그만큼 수동적인 설정보다 자동화, 지원 등이 활성화 되어 있는 것은 인프라를 구축하는데 있어서 난이도를 매우 낮출 수 있다고 생각한다.
여기서 이제 리눅스 1, 리눅스 2로 나누어지는데 국내 자료는 리눅스 1이 많다고하여 교재를 따라가고자 한다.

2.4. 사양 선택

다음으로 인스턴스 유형을 선택하는데 수없이 많은 사양들이 존재한다. 그 중에 t2.micro는 기본으로 선택되어있으며 간단한 테스트에 자주 사용된다. 팀 프로젝트를 진행하면서 특정 기술 스택의 경우 보다 높은 사양을 요구하는 경우가 있다.(Elasticsearch는 4gb, 4core 정도의 사양을 필요로 했다) 특수한 상황이 아닌 경우에 간단한 프로젝트를 배포하는데는 t2.micro를 선택하면되며, 프로젝트 규모와 기술에 따라 사양 적용 사례를 잘 찾아보고 선택해야 한다. 사양은 곧 비용과 연결되어 있다.

2.5. 키페어 선택

계정 생성 마무리 단계에서 생성한 키페어를 해당 인스턴스에 사용 할 수 있다. 이것은 EC2에 접속 할 때 권한이 있는 소유자인지 확인하기 위함이다.

2.6. 보안그룹 생성

보안그룹은 방화벽을 이야기 한다. 교재와 화면은 다르지만 이 부분도 추후 수정 할 수 있는 부분이기 때문에 기본값으로 새로운 보안 그룹 생성을 선택하고 이름과 인바운드 규칙을 동일하게 수정하면 된다. 인바운드 규칙을 통해서 해당 프로토콜,포트의 접근을 허용할 수 있다. 현재 인스턴스 생성단계에서는 launch-wizard-5라는 보안그룹이 생성될 것이며 이것을 수정하면 된다. 혹시나 다른 인스턴스를 생성하면서 정해둔 보안그룹 규칙이 있으면 기존 보안 그룹을 선택할 수도 있다.
SSH, HTTPS, HTTP를 선택하면 22, 8080, 443 포트가 허용된다. SSH는 내 IP = 개발자 컴퓨터에서만 터미널(쉘)에 접근 할 수 있도록 설정하는 것이다. 물론 외부 접속이 필요한 경우 허용 IP를 추가하거나 무관하게 변경 할 수 있지만 보안을 신경써야 한다.

2.7. 스토리지 설정

스토리지는 말그대로 EC2의 용량이다. 프리티어는 30GB까지 가능하다.

2.8 인스턴스 시작

이제 설정 요약을 확인하고 인스턴스 시작 버튼을 누르면 설정한 사양의 EC2 서버가 생성된다.
좌측 콘솔 메뉴에서 인스턴스>[인스턴스이름]을 클릭하면 해당 인스턴스에 대한 세부 정보를 확인 할 수 있다.

2.9 탄력적 IP (EIP) 생성 및 할당

인스턴스도 하나의 서버기 때문에 IP가 존재하는데 서버를 재시작 할 때마다 새 IP가 할당되게 된다.(유동) 따라서 고정 IP가 필요한데 AWS에서는 탄력적 IP라는 것으로 해당 기능을 적용 할 수 있다.
좌측 메뉴에서 네트워크 및 보안>탄력적 IP 메뉴로 이동하여 탄력적 IP를 생성 할 수 있다.
탄력적 IP 생성 이후 인스턴스와 해당 IP를 연결하면 고정된 IP를 할당 받을 수 있다.
Search
 | Main Page | Category |  Tags | About Me | Contact | Portfolio