티스토리 뷰

1. EC2란?

AWS EC2는 가상 머신을 생성하고 실행하는 데 사용하는 서비스입니다.

EC2 서비스를 통해 만드는 인스턴스가 곧 AWS 클라우드의 가상머신(=서버)입니다. 인스턴스(Instance)는 말 그대로 필요한 만큼 얼마든지 빠르게 생성할 수 있고, 사용이 끝나면 바로 제거할 수 있는(일회성) 장점을 잘 보여주는 이름입니다.

 

AWS에서는 다양한 인스턴스의 유형을 선택해 생성할 수 있습니다. 각 인스턴스 유형마다 크기와 할당되는 가상 CPU 및 메모리가 달라지며, 적절한 유형을 선택해야 합니다. 인스턴스 유형의 이름은 다양한 정보를 담고 있습니다.

 

📌Tip. 태그는 다다익선!
월별 비용 산출 시 따로 태그를 지정하지 않으면 전부 EC2라고 정산되므로, 구분을 위해서는 반드시 사용하는 자원에 태그를 지정하는 것이 좋습니다. AWS에서 사용하는 자원마다 이름과 구분된 태그를 지정할 수 있으며, 이 태그를 통해 비용에 대한 구분을 명확히 인지하는 등 다양하게 활용할 수 있습니다. 
태그를 하나도 달지 않는 것보다는 차라리 많이 달아서 나중에 검색이 가능하도록 하는 편이 좋습니다.

 

 

2. AMI

EC2 인스턴스를 생성하기 위해서는 적절한 AMI(Amazon Machine Image)를 선택해야 합니다. AMI란 EC2 인스턴스에 끼우기 위한 이미지입니다. 우리가 VMware나 VirtualBox로 가상머신을 생성할 때 끼우는 리눅스 iso 이미지 파일과 같이 생각하면 됩니다. 

 

AMI는 인스턴스 볼륨 템플릿, 시작 권한, 블록 디바이스 매핑의 요소로 구성됩니다. AWS에서 제공하는 AMI를 통해 인스턴스를 생성할 수도 있고, 직접 수동으로 만든 AMI를 사용할 수도 있습니다. (AWS image builder를 사용해 AMI 생성 가능)

 

AWS에서 제공하는 다양한 AMI

 

예를 들어 AWS에서 기본으로 제공하는 Amazon Linux 2023 AMI를 가지고 인스턴스를 생성한 뒤, nginx나 tomcat 등 서비스 배포에 필요한 자원을 설치하고, 이를 새 AMI로 저장해 오류가 발생할 때마다 해당 이미지로 다시 인스턴스를 생성해 롤백 지점을 만들 수 있습니다. 

 

서비스 배포에 필요한 구성 요소가 모두 잘 설치되어 있고, 완벽하게 잘 작동하는 이미지를 골든 이미지(Golden Image)라고 하기도 하며, 이 골든 이미지를 잘 관리해 배포의 효율과 안정성을 높이는 것이 중요합니다.

 

 

3. EBS

EBS(Elastic Block Store)는 EC2 인스턴스에 연결되는 스토리지 볼륨(하드디스크의 개념)입니다. 복수의 인스턴스가 같은 볼륨을 보도록 설정할 수도 있지만, 기본적으로는 한 인스턴스 당 하나의 각기 볼륨을 사용하게 됩니다. 

인스턴스의 특정 상태를 저장하는 스냅샷으로도 활용할 수 있으나, EBS 역시 데이터가 유지되는 동안은 볼륨 사용량에 대한 비용이 청구되므로 인스턴스 삭제 시 꼭 EBS도 확인해 함께 지우는 것이 좋습니다.

 

 

4. EC2 인스턴스 생성

 

EC2 대시보드

 

AWS EC2 대시보드에서 가장 먼저 보이는 화면입니다. 현재 사용 중인 리소스와 상태정보 등을 확인할 수 있습니다.

인스턴스 시작 버튼을 클릭해 새 인스턴스를 생성해보겠습니다.

 

인스턴스 시작

 

인스턴스 시작 시 이름, 태그, AMI, 인스턴스 개수, 볼륨 등을 설정할 수 있습니다. 

프리 티어로 사용할 수 있는 t2.micro 유형을 사용해 인스턴스를 생성하겠습니다.

 

인스턴스 유형과 키 페어

 

인스턴스 생성 시 새 키 페어를 생성해야 합니다. 앞으로 이 키 페어를 사용해 인스턴스에 연결할 것입니다. xshell을 이용해 생성한 인스턴스에 접속하기 위해서는 키 페어가 반드시 필요합니다.

 

키 페어 생성

 

키 페어를 생성한 후 네트워크 설정을 확인합니다. 새로 만들 인스턴스는 우리가 만든 RECA-PRD-VPC에 연결되어야 합니다.

 

인스턴스 네트워크 설정

 

VPC와 인스턴스가 연결될 서브넷(가용영역, 퍼블릭/프라이빗)을 고려해 선택합니다. 

이 때, public 인스턴스는 반드시 퍼블릭 IP를 자동 할당하도록 합니다. 인스턴스가 퍼블릭 IP를 할당 받아야 생성 후 해당 IP로 xshell 등의 SSH 프로그램을 이용해 접속할 수 있습니다.

 

각 서브넷 혹은 인스턴스마다 보안 그룹 역시 지정해야 합니다.

 

테스트용 보안그룹 규칙

 

보안 그룹은 일종의 방화벽으로, 필터링 규칙을 지정할 수 있습니다. AWS에서의 ACL과 보안 그룹으로 구성하는 방화벽에서는 다음 포스팅에서 더 자세히 다뤄보도록 하겠습니다.

 

 

생성한 인스턴스

 

동일한 방법으로 각 서브넷에 모두 인스턴스를 총 4개 생성했습니다.

 

 

5. 인스턴스 접속 후 연결 확인

이제 public 인스턴스에 접속해 private 서브넷에 생성한 인스턴스까지 연결되어 접속이 가능한지 확인해 보겠습니다.

우선 public 인스턴스의 IP를 확인합니다. public 인스턴스는 생성 시 퍼블릭 IP 자동 할당을 활성화했기 때문에 이 IP로 접속이 가능합니다. 인스턴스를 껐다 킬 때마다 이 IP는 자동으로 재할당되어 변경되기 때문에 IP 고정을 위해 이전 포스팅에서 EIP를 할당받았습니다.

 

2023.12.05 - [AWS] - [AWS VPC] 가상 네트워크 환경 구성하기(2): IGW, NGW, EIP

 

 

퍼블릭 인스턴스에 대해 EIP 주소 연결

 

 

RECA-PRD-WEBPUB-2a 인스턴스 연결

 

 

이렇게 해당 인스턴스에 EIP를 할당해 IP를 고정해주었습니다.

 

이제 이 퍼블릭 IP주소로 생성한 퍼블릭 인스턴스에 계속 접속할 수 있습니다. (저는 Xshell을 이용해 접속했습니다)

 

최종 목표는 프라이빗 인스턴스까지 접속이 잘 되는 것을 확인하는 것입니다. 우선 접속을 성공한 호스트로 아까 생성한 키 파일을 복사합니다. Filezilla로 호스트를 연결해 제 로컬에 저장된 키 파일을 서버로 옮겼습니다.

 

편집-설정 에서 키 파일 추가 (해당 키는 삭제해 사용하지 않는 키입니다! 키 유출 관리 중요)

 

Filezilla로 연결해 로컬에 저장된 키 파일을 해당 서버로 옮기기

 

접속 성공 화면

 

프라이빗 호스트는 단순  ssh ubuntu@[instance_ip] 로는 접속이 되지 않는 것을 확인할 수 있습니다.

옮긴 키 파일의 권한을 chmod 400 [pem_key] 으로 바꿔주고, ssh -i "[pem_key]" ubuntu@[instance_ip] 로 접속하면 화면과 같이 프라이빗 호스트로도 잘 접속되는 것을 확인할 수 있습니다.

 

📌Tip. 계정 초기 패스워드 알기
만약 AWS ubuntu 이미지로 인스턴스를 생성했다면 초기 계정/비밀번호는 ubuntu/ubuntu입니다.
AWS Linux 이미지로 인스턴스를 생성했다면 계정은 ec2-user가 됩니다.
ssh -i "[pem_key]" ec2-user@[instance_ip] 

 

 

이렇게 구성한 VPC에 인스턴스를 생성하고, 아키텍쳐대로 잘 연결되는 것을 확인했습니다.

 

AWS 기본 아키텍쳐

 

현재 아키텍쳐를 다양한 AWS 서비스를 이용해 확장하고 보완해보겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함