Post

웹서버 준비하기 (AWS로 시작하는 인프라 구축의 정석)

본 포스트는 AWS로 시작하는 인프라 구축의 정석 책을 활용한 스터디 기록입니다.
(CHAPTER 6 웹서버 준비하기)

웹 서버

(1) 웹 서버란?

웹 서버는 브라우저나 애플리케이션으로부터 요청을 받아 HTML이나 JSON 등의 응답을 반환하는 역할을 하는 서버를 뜻합니다. 웹 서버 또한 앞선 점프 서버와 같이 EC2를 통해 생성할 수 있습니다.

(2) 점프 서버 VS 웹 서버

그렇다면 똑같이 EC2로 만드는데 점프 서버와 웹 서버의 차이는 무엇일까요?

바로 인터넷 연결의 차이 입니다!! 챕터 5에서 본 점프 서버는 시스템 관리자가 가끔 이용하지만 웹 서버는 항상 웹 서비스 사용자가 연결을 시도하며 그렇기 때문에 점프서버는 인터넷에 직접 연결되어 있지만 웹 서버는 로드밸런서를 통해 간접 연결됩니다.

구분
점프 서버
웹 서버
인스턴스 유형
최소 성능
이용자 수에 맞게 적절한 성능
서브넷
퍼블릭 서브넷
프라이빗 서브넷
퍼블릭 IP 자동 할당
필요
불필요
보안 그룹
기본 + ssh 접속
기본

(3) EC2 생성 후 접속 확인하기 - 다단계 연결 설정

우리는 EC2 인스턴스를 private subnet에 생성하였습니다. 그러면 당연히 우리의 노트북에 직접 ssh로 접속할 수는 없겠죠?! 앞서 만든 점프 서버를 활용하여 웹 서버 인스턴스에 접속할 수 있는 방법을 알아봅시다.

가장 단순하게는 점프 서버에 ssh로 연결 후, 웹 서버의 ssh로 연결하는 방법이지만 이 방법은 ssh 명령어를 2번 입력해야 하며, 비밀 키 파일을 점프 서버가 가지고 있어야 한다는 문제점이 있습니다. 대신 ssh 명령어가 제공하는다단계 연결 기능을 사용하면 됩니다!!

다단계 연결 설정은 config 파일을 작성해주면 됩니다!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Host bastion
	Hostname {점프 서버의 퍼블릭 IP}
    User ec2-user
    IdentityFile {pem 파일 경로}

Host web01
	Hostname {웹 서버 01의 프라이빗 IP}
    User ec2-user
    IdentityFile {pem 파일 경로}
    ProxyCommand ssh.exe bastion -W %h:%p
    
Host web02
	Hostname {웹 서버 02의 프라이빗 IP}
    User ec2-user
    IdentityFile {pem 파일 경로}
    ProxyCommand ssh.exe bastion -W %h:%p 

ProxyCommand에는 경유하는 점프 서버의 정보를 지정할 수 있습니다. (리눅스나 맥의 경우 ssh.exe가 아닌 ssh로 지정해주시면 됩니다!)

이후 아래의 명령을 사용해 웹 서버 연결이 가능합니다!

1
ssh {서버 별명}
This post is licensed under CC BY 4.0 by the author.

Comments