웹 서비스를 배포하다 보면 Bastion, Nginx, SSM이라는 용어를 자주 접하게 된다.
이 세 가지는 서버 보안과 운영에 매우 중요한 역할을 한다.
이 글에서는 3가지 개념에 대하여 소개하려 한다.
Bastion은 내부 서버에 들어오기 전 관문 서버이다.
보통 실제 서비스에서는 Private에 서버를 두고 외부에서 직접 접근하지 못하도록 막는다.
이는 인터넷에 바로 노출하면 무차별 SSH 공격이 계속 들어오기 때문이다.
그래서 다음과 같은 구조로 서버를 만든다.
내 PC → Bastion → Private EC2
Bastion은 Public에 두고 SSH를 이용해 내부 서버로 접속한다.
Nginx 는 웹 서버이자 리버스 프록시 서버이다.
웹 서비스는 대부분 다음과 같은 형식으로 작동한다.
사용자 → 웹 서버 → 애플리케이션 서버 → DB
이 때 가장 먼저 응답을 받는게 Nginx 이다.
그런데 왜 Node로 바로 응답을 보내지 않는 것일까?
이러한 이유 때문에 Nginx가 요청을 먼저 받고 처리하는 것이다.
AWS Systems Manager 는 AWS에서 제공하는 서버 관리 서비스이다.
과거에는 EC2에 접속하기 위해
이러한 작업이 필수적으로 해야 했다.
하지만 SSM 을 사용하면 브라우저에서 바로 EC2에 접속이 가능하다.
EC2 안에는 SSM Agent가 실행되고 있고,
EC2가 AWS와 HTTPS(443)로 통신한다.
그래서 22번 포트를 열 필요가 없다.