지금까지 우리는 AWS에서 나만의 가상 서버(EC2 인스턴스)를 만들고(Part 1), 내 컴퓨터에서 SSH를 통해 원격으로 접속하는 데(Part 2) 성공했습니다. 이제 텅 빈 서버에 생명을 불어넣을 차례입니다.
이번 포스팅에서는 가장 대표적인 웹 서버 소프트웨어인 Nginx(엔진엑스)를 설치하여, 인터넷 브라우저에 내 서버의 IP 주소를 입력했을 때 직접 만든 웹 페이지가 나타나도록 만들어 보겠습니다.
1단계: SSH로 EC2 인스턴스 접속하기
가장 먼저, Part 2에서 다룬 방법으로 EC2 인스턴스에 접속합니다. 터미널을 열고 아래 명령어를 실행하세요.
# .ssh 폴더에 키를 보관한 경우
ssh -i "~/.ssh/your-key-name.pem" ubuntu@YOUR_PUBLIC_IP_ADDRESS
2단계: 서버 패키지 목록 업데이트
서버에 프로그램을 설치하기 전, 운영체제가 알고 있는 패키지들의 버전 정보를 최신 상태로 업데이트하는 것이 좋습니다. 아래 명령어를 실행합니다.
sudo apt update
sudo는 관리자 권한으로 명령어를 실행하겠다는 의미입니다. 패키지 설치 등 시스템에 변경을 가하는 작업에는 대부분 sudo가 필요합니다.

3단계: Nginx 설치 및 실행 확인
이제 Nginx를 설치하겠습니다. apt는 Ubuntu의 패키지 관리자로, 이 명령어를 통해 손쉽게 Nginx를 설치할 수 있습니다.
sudo apt install nginx
설치 중간에 Do you want to continue? [Y/n] 질문이 나오면 Y를 입력하고 엔터를 누릅니다.

설치가 완료되면 Nginx 서비스가 자동으로 시작됩니다. 아래 명령어로 서비스가 잘 실행되고 있는지 확인할 수 있습니다.
sudo systemctl status nginx
초록색으로 active (running)이라는 문구가 보이면 성공적으로 실행 중인 것입니다.

4단계: 보안 그룹 설정 및 브라우저로 접속하기
이제 Nginx가 실행 중이니, 브라우저에서 서버의 IP 주소로 접속해 보겠습니다.
서버의 IP 주소는 [EC2] > [인스턴스] 에서 인스턴스를 선택하거나, 인스턴스 ID를 클릭하여서 확인 가능합니다.

하지만 아마 대부분 접속에 실패할 것입니다.

이유는 Part 1에서 인스턴스를 생성할 때, 보안을 위해 SSH(22번 포트) 접속만 허용하고 웹 접속(HTTP, 80번 포트)은 허용하지 않았기 때문입니다. 이제 우리 서버의 방화벽인 '보안 그룹'에 HTTP 접속을 허용하는 규칙을 추가해 보겠습니다.
1. 내 인스턴스의 보안 그룹 확인하기
먼저, 여러 보안 그룹 중 어떤 것을 수정해야 하는지 정확히 확인해야 합니다.
- AWS 콘솔에서 EC2 대시보드 > 인스턴스 메뉴로 이동합니다.
- 지금 사용 중인 인스턴스를 클릭하여 선택합니다.
- 하단의 [보안] 탭을 클릭하면, 현재 인스턴스에 적용된 보안 그룹 이름과 ID가 표시됩니다. 이 이름을 잘 기억해두세요.

💡 Tip: 보안 그룹 이름에 대하여
EC2 생성 마법사를 통해 만들어진 보안 그룹은 보통 launch-wizard-X 형태의 이름을 갖습니다. 저는 이전에 다른 인스턴스를 만든 적이 있어 launch-wizard-2로 표시되지만, 처음 만드시는 분들은 launch-wizard-1로 보일 가능성이 높습니다. 이름이 중요한 것이 아니라, 내 인스턴스에 연결된 것이 맞는지만 확인하면 됩니다.
2. 보안 그룹에 HTTP 규칙 추가하기
- 이제 왼쪽 메뉴에서 [네트워크 및 보안] > [보안 그룹]으로 이동합니다.
- 방금 위에서 확인했던 내 인스턴스의 보안 그룹을 목록에서 찾아 선택합니다.

- 하단의 [인바운드 규칙] 탭을 선택하고, [인바운드 규칙 편집] 버튼을 클릭합니다.

- [규칙 추가] 버튼을 누르고, 아래와 같이 설정합니다.
- 유형: HTTP 선택 (포트 80 자동 입력)
- 소스: Anywhere-IPv4 선택 (0.0.0.0/0 자동 입력)
- [규칙 저장] 버튼을 클릭합니다.

3. 브라우저로 다시 접속 테스트
모든 설정이 끝났습니다. 이제 다시 인터넷 브라우저 주소창에 내 EC2 인스턴스의 퍼블릭 IP 주소를 입력하고 엔터를 누르세요.
이번에는 "Welcome to nginx!" 라는 제목의 페이지가 성공적으로 나타날 것입니다.

5단계: 나만의 웹 페이지로 수정하기
기본 환영 페이지를 우리가 원하는 내용으로 바꿔보겠습니다. Nginx의 기본 HTML 파일은 /var/www/html 경로에 있습니다.
- 기본 HTML 파일 내용 변경
- nano라는 간단한 텍스트 편집기를 사용하여 index.nginx-debian.html 파일의 내용을 수정하겠습니다.
# /var/www/html 경로에 있는 기본 파일을 수정합니다.
sudo nano /var/www/html/index.nginx-debian.html

- HTML 코드 수정
- nano 편집기가 열리면 기존 내용을 모두 지우고, 아래와 같이 간단한 HTML 코드를 입력하거나 원하는 메시지를 자유롭게 작성해 보세요.
<!DOCTYPE html>
<html>
<head>
<title>My First Web Server</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is my first web page on AWS EC2.</p>
</body>
</html>

수정이 끝나면 Ctrl + X를 누르고, Y를 눌러 저장 의사를 밝힌 뒤, 마지막으로 Enter를 눌러 덮어쓰기를 완료합니다.
마무리하며
이제 다시 브라우저로 돌아가 새로고침(F5 또는 Cmd + R)을 해보세요. 방금 여러분이 직접 작성한 "Hello, World!" 메시지가 화면에 나타날 것입니다.

이것으로 여러분은 서버에 웹 서버 소프트웨어를 직접 설치하고, 외부에서 접속 가능한 서비스를 만드는 전 과정을 경험했습니다.
하지만 여러 프로그램을 설치하다 보면 서버 환경이 복잡해지고 충돌이 발생할 수 있습니다. 다음 Part 4에서는 이러한 문제를 해결하는 현대적인 방식인 'Docker'를 사용하여 Nginx를 컨테이너로 실행하는 방법을 알아보겠습니다.
'Cloud > AWS' 카테고리의 다른 글
[AWS] EC2 서버 구축 가이드 Part 4: Docker로 Nginx 컨테이너 실행하기 (0) | 2025.07.23 |
---|---|
[AWS] EC2 서버 구축 가이드 Part 2: SSH 원격 접속 (0) | 2025.07.22 |
[AWS] EC2 서버 구축 가이드 Part 1: 인스턴스 생성 (0) | 2025.07.22 |