클라우드 환경에서 서버를 운영할 때 중요한 것은 단순한 배포가 아니라 접근 제어, 트래픽 관리, 보안 강화입니다.
이 과정에서 자주 등장하는 개념이 바스티온, Nginx, 그리고 SSM 인데 오늘은 이 3가지에 대해 알아보도록 하겠습니다.
1. 바스티온 (Bastion Host)
바스티온 호스트는 외부 네트워크에서 내부 프라이빗 서버로 접근하기 위한 중간 관문 서버입니다.
일반적으로 Public Subnet에 배치되며, Private Subnet에 위치한 서버에 대한 SSH 접속을 중계하는 역할을 합니다.
Internet
↓
Public Subnet (Bastion Host)
↓
Private Subnet (Application / DB Server)
사용 목적
보안이 중요한 서버는 Public Subnet에 직접 노출하지 않고 Private Subnet에 배치하는데
운영과 유지보수를 위해서는 접속이 필요하기 떄문에 외부에서 직접 접근하는 대신 바스티온 서버를 통해 내부 서버에 접속하도록 구성합니다.
장점
- 내부 서버의 직접 노출 방지
- 접근 경로 단일화
- 보안 그룹 정책 집중 관리 가능
단점
- 22번 포트 필요
- SSH Key 관리 부담
- 추가 인프라 운영 비용 발생
2. Nginx
Nginx 는 웹 서버이자 리버스 프록시 서버로 사용되는 고성능 소프트웨어입니다.
주로 리버스 프록시, 리버스 밸런서, SSL 종료 지점 등을 수행합니다
예시 구조
Client
↓
Nginx (80 / 443)
↓
Backend Server (3000, 8080 등)
Nginx는 클라이언트 요청을 먼저 수신한 뒤, 내부 애플리케이션 서버로 전달하고 응답을 다시 반환합니다.
사용 목적
Nginx는 보안과 성능을 동시에 개선하기 위해 사용되는데, 내부 애플리케이션 서버의 포트를 외부에 직접 노출하지 않도록 보호하고, HTTPS 인증서를 Nginx에서 처리하여 백엔드는 HTTP로 통신하도록 구성할 수 있습니다.
3. SSM (AWS Systems Manager)
AWS Systems Manager 는 AWS 리소스를 관리하기 위한 통합 관리 서비스입니다.
이 중 Session Manager는 SSH 없이 EC2에 접속할 수 있도록 해주는 기능입니다.
기존 방식과의 차이
기존 SSH 기반 접근
Internet → Bastion → Private EC2
AWS Console → SSM → Private EC2
SSM을 사용하면
- SSH Key 불필요
- 22번 포트 개방 불필요
- Bastion 서버 불필요
- 접속 기록 자동 저장
- IAM 기반 접근 제어
그래서 최근에는 보안 강화를 위해 SSH 접근을 최소화하고 SSM을 사용하는 구조가 더 좋습니다.
차이점 정리
| 구분 | 역할 | 계층 | 목적 |
| 바스티온 | SSH 중계 서버 | 네트워크 계층 | 내부 서버 보호 |
| Nginx | 웹 트래픽 제어 | 애플리케이션 계층 | 트래픽 관리 및 보안 |
| SSM | 서버 관리 도구 | 운영 관리 계층 | SSH 대체 및 접근 제어 |
실제 운영 아키텍처 예시
[User]
↓
[Nginx (Public EC2)]
↓
[Backend (Private Subnet)]
↑
[SSM을 통한 관리 접속]
이 구조에서는 외부 트래픽은 Nginx를 통해 제어하고, 서버 관리는 SSM을 통해 수행하여 보안을 강화할 수 있습니다.
결론
바스티온은 전통적인 접근 제어 방식이며, Nginx는 트래픽 제어와 보안을 담당하는 핵심 서버이고, SSM은 SSH 기반 운영 방식을 대체하는 관리 방법입니다.