min8282

[AWS] AWS EC2 인스턴스 생성 및 웹 서버 연결 (보안 그룹 설정 & HTTP 접근 설정) 본문

Security/Cloud

[AWS] AWS EC2 인스턴스 생성 및 웹 서버 연결 (보안 그룹 설정 & HTTP 접근 설정)

min8282 2025. 3. 4. 11:45

목표 아키텍처

이번 웹서버 인스턴스 생성 및 연결을 위한 목표 아키텍처는 위와 같다. 이전에 구성했던 myvpc의 퍼블릭 서브넷에 웹서버 인스턴스를 생성하고 연결하는 것을 진행할 것이다.


1. myvpc 리소스 맵

현재 VPC 네트워크는 이전에 설정한 네트워크 구성과 동일하며, 다음과 같이 퍼블릭 서브넷과 프라이빗 서브넷으로 구성되어 있다.

myvpc(퍼블릭 서브넷) 웹서버 인스턴스가 배포될 서브넷
myvpc(프라이빗 서브넷) 데이터베이스 등의 내부 리소스 배치를 위한 서브넷


2. 웹서버 인스턴스 생성

2.1. 인스턴스 설정

인스턴스 이름은 MyWebServer로 설정

AMI는 amazon linux 2023 AMI, 인스턴스 유형은 t2.micro


2.2. 네트워크 설정

네트워크 설정

    • VPC: myvpc
    • 서브넷: 퍼블릭 서브넷1
    • 퍼블릭 IP 자동 할당: 활성화

2.3. 보안그룹 설정

보안 그룹 규칙 추가 클릭

HTTP (TCP 80번 포트): 소스 유형을 위치 무관 (0.0.0.0/0)으로 설정

추가한 보안 그룹이 인바운드 규칙에 포함되었는지 확인


2.4. 사용자 데이터 입력

고급 세부 정보 > 사용자 데이터에 다음 스크립트를 입력하여 웹서버 자동 설정:

#!/bin/sh

dnf upgrade –y
dnf install -y httpd wget php-mysqli php
echo "My home page Emma" >> /var/www/html/index.html
systemctl start httpd
systemctl enable httpd

설정을 완료한 후 인스턴스 시작을 클릭하여 웹서버를 실행한다.


3. 웹서버 접속 확인

퍼블릭 IPv4 주소 확인

웹 브라우저에서 http://<퍼블릭 IPv4> 입력 후 접속

My home page Emma 페이지가 표시되면 정상적으로 동작하는 것 확인


4. 보안그룹 변경 테스트 

4.1. 특정 IP만 접근 허용

네트워크 및 보안>보안그룹으로 접속 or 인스턴스>보안 탭에서 클릭해서 이동해도 된다.

보안 그룹 > 인바운드 규칙 변경

HTTP(80) 소스를 내 IP로 변경하고 규칙을 저장하게 되면 내 IP를 제외한 다른 네트워크에서는 접속이 제한된다.


4.2. HTTP 규칙 삭제

만약 인바운드 규칙에서 HTTP(80) 삭제하게 되면 내IP도 웹페이지 접근이 차단되는 것을 확인할 수 있다. 현재는 ssh 접속만 가능하게 된 상황이다.

 

이처럼 보안 그룹을 활용하여 특정 IP만 접근을 허용하거나 차단할 수 있으며, 이는 가상 방화벽을 설정하는 개념과 유사하다.


5. 웹서버 AMI 생성 및 인스턴스 삭제

5.1. AMI 생성

EC2 인스턴스 선택 > 작업 > 이미지 및 템플릿 > 이미지 생성 클릭

이미지 이름: MyAMI01 입력 후 생성

생성된 이미지는 이미지 > AMI에서 확인 가능


5.2. 인스턴스 삭제

AMI를 생성한 후 EC2 인스턴스 종료 및 삭제

VPC는 재사용할 예정이므로 삭제하지 않는다.

 

**AMI 생성 이유

웹서버 인스턴스를 계속 실행하면 비용이 발생하므로, AMI를 생성하여 필요할 때 인스턴스를 다시 생성할 수 있도록 설정한다. AMI는 별도의 비용이 발생하지만, 실행 중인 EC2 인스턴스보다 비용이 절감되므로 활용할 수 있다.

 

이상으로 웹서버 인스턴스 생성 및 연결 실습을 마친다. 이후 필요할 때 AMI를 활용하여 웹서버를 신속하게 배포할 수 있다.