본문 바로가기

AWS

AWS 프로젝트 배포하기(AWS 인스턴스 생성)

728x90

나는 AWS배포를 위해 수십여개의 블로그를 찾아보고 참조 하였으나 내 프로젝트 조건과 맞는 건은 하나도 없어서… 어렵게 배포에 성공한 사례로 이글을 읽기전에 본인의 상황과 맞는지 확인해보고 읽어주시길…

데스크탑 : 맥 에어 인텔코어

프로젝트 : Spring, Maven

JAVA버전 : 17버전

Tomcat : 9버전

DB : ORACLE

 

EC2란?

Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. Amazon EC2에서는 확장 또는 축소를 통해 요구 사항 변경 또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어듭니다.

Amazon EC2의 기능

  • 인스턴스: 가상 컴퓨팅 환경
  • Amazon 머신 이미지(AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있습니다.
  • 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
  • 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
  • 인스턴스 스토어 볼륨: 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
  • Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
  • 인스턴스와 Amazon EBS 볼륨 등의 리소스를 다른 물리적 장소에서 액세스할 수 있는 리전 및 가용 영역
  • 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
  • 탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
  • 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
  • AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크인 Virtual Private Clouds(VPC)

  1. 인스턴스 시작

AWS 콘솔 창 - EC2 검색 - 인스턴스 시작 버튼 클릭

  1. 2 이름 및 태그 설정

EC2를 구분지을 수 있도록 이름 및 태그 설정

  1. 3 AMI 선택

AMI는 EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것을 말합니다.

리눅스 환경과 같은 ubuntu를 선택했다.

  • AMI 토글을 클릭하면 다양한 사양의 AMI를 선택할 수 있습니다. (프리 티어 이외의 유형을 선택할경우 비용 청구)
  1. 4 인스턴스 유형 선택

인스턴스 유형에서는 다양한 사양에 따른 요금제를 선택할 수 있습니다.

프리티어로 표기된 t2.micro를 선택합니다.

  1. 5 키페어 생성

기존 IAM 키페어가 존재 할 경우 '선택' 란에서 기존 키 페어를 선택하고

그렇지 않을 경우 새 키 페어 생성 버튼을 클릭합니다.

  • 키페어는 SSH 터미널로 인스턴스에 접근할 때 꼭 필요한 입니다.
  • 비밀 키
  • 비밀 키를 분실하였다면 복잡한 작업이 요구되므로 잘 관리해야합니다.
  • 보안상 외부에 노출되면 절대 안됩니다.

 

키 페어 이름을 설정하고 키 페어 생성 버튼을 누르면 키 페어가 로컬 PC에 자동으로 다운로드됩니다.

 

  1. 6 네트워크 설정

VPC와 서브넷 등은 AWS 서비스들의 네트워크 환경을 구성해줍니다. VPC와 서브넷을 따로 사용한다면 해당 정보를 선택하고 없다면 기본 값으로 남겨둔 뒤 넘어갑니다.

이후 EIP(탄력적 IP)를 할당할 것이기 때문에 퍼블릭 IP 자동 할당은 비활성화 시켜줍니다

보안 그룹을 생성하여 ssh 터미널을 통해 인스턴스에 접근할 수 있도록 ssh유형의 인바운드 보안 그룹 규칙을 추가합니다.

필요에 따라, 웹 프로젝트를 위한 (HTTP) 8080 포트나 (HTTPS) 443 포트를 추가로 열어놓습니다.

 

  1. 7 스토리지 구성

스토리지는 인스턴스의 디스크 용량을 말합니다.

프리티어는 최대 30GB까지 가능하기 때문에 30으로 설정합니다.

 

이후 우측 탭에 있는 인스턴스 시작 버튼을 클릭하여 새 인스턴스를 생성합니다.

 

  1. 8 인스턴스 생성 확인

인스턴스 생성 이후 잠시 후에 인스턴스 상태가 실행중으로 바뀌는 것을 확인합니다.

 

  1. 9 탄력적 IP (EIP)할당

탄력적 IP는 AWS의 고정 IP를 말합니다. EC2 인스턴스에 고정 IP를 할당하기 위해 탄력적 IP를 설정합니다.

왼쪽 카테고리에서 탄력적 IP를 선택합니다.

 

화면 우측 위 탄력적 IP 주소 할당 버튼을 클릭합니다.

 

네트워크 경계 그룹을 설정한 뒤 (기본값으로 해도 상관 없음), 할당 버튼을 클릭합니다.

 

이후 할당된 EIP를 선택하고 작업 - 탄력적 IP 주소 연결을 클릭합니다.

 

하단 토글을 통해 인스턴스를 선택하고 프라이빗 IP 주소를 선택한 후 연결 버튼을 클릭합니다.

 

다음과 같은 메시지와 함께 탄력적 IP 주소가 인스턴스에 연결됩니다.

 

  1. 10 탄력적 IP (EIP) 할당 확인

생성한 EC2 인스턴스에서 탄력적 IP 주소가 할당 된 것을 확인합니다.