인프런 커뮤니티 질문&답변

Bax님의 프로필 이미지
Bax

작성한 질문수

비전공자도 이해할 수 있는 Docker 입문/실전

Ubuntu에서 Docker, Docker Compose 설치하기

인바운드 보안 그룹 규칙

작성

·

64

·

수정됨

0

안녕하세요. 항상 감사합니다.

다름아니라 프론트엔드 개발자(ionic+react+typescript)님과 처음 협업을 하는데요!(레포지토리가 fe, be 따로 존재합니다.)
api를 개발해서 전달해드려야 하는데 프론트엔드 개발자님께서 springboot를 로컬에서 실행하시기 어려우실것 같아 제가 일단 배포를 하여 전달드리려고 합니다.
(EC2에서 Docker를 활용한 배포 방법을 사용하려합니다.)


질문:
1. 이때 ec2 인바운드 보안 그룹 규칙은 ssh, http(80)만 해주면 될까요? tcp(프론트엔드 개발자님의 포트(아마도 8100번))또한 추가해야 하는 부분일까요?

2. Nginx, Certbot를 활용해 리버스 프록시를 설정한다면 해당 포트번호도 ec2 인바운드 보안 그룹에 tcp로 추가해야 할까요?

3. 백엔드 개발자는 프론트엔드 개발자에게 api를 제공할때 위에 말씀드린 방식으로 진행하는지 여쭙고 싶습니다.

 

경험이 부족하여 질문이 이상할 수 있는점 양해바랍니다.
감사합니다.


+추가)
일단 docker compose로 ec2에서 빌드까지 했는데요.

보안그룹을 모든tcp 0.0.0.0에서 하니깐 잘 돌아갑니다.
하지만 모든tcp를 제거하고 http 80과 https 433을 추가하면 "ERR_CONNECTION_REFUSED"라고 하고 접근이 안되네요. 여기서 http 8080을 추가하면 또 잘되네요.
 

 프로젝트를 할때 모든 tcp로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.

 

 

 

 

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 Bax님~!! 질문해주신 내용에 대해 답변드려볼게요:)

 

  1. EC2 내에서 Spring Boot 서버를 80번 포트에서 실행시키고 있다면, ssh와 http(80)만 추가해주시면 됩니다! 프론트엔드 포트는 따로 열어두지 않아도 괜찮습니다 ~!!

 

  1. Nginx, Certbot 리버스 프록시를 설정하신다면 아마 80번 포트와 443번 포트를 사용한 걸로 예상되네요! 그러면 인바운드 보안 그룹에 80번(HTTP) 포트와 443번(HTTPS) 포트를 추가해주셔야 합니다!

 

  1. Bax님이 말씀해주신대로 API 를 많이 제공하는 편입니다ㅎㅎ 올바른 방법으로 진행하고 계신 것 같아요^^

 

  1. (추가) 지금 질문해주신 내용을 봤을 때는 '보안그룹의 인바운드 규칙'에 대한 개념을 제대로 잡을 필요가 있어보입니다! 제가 만들어놨던 '비전공자도 이해할 수 있는 AWS 입문/실전' 강의가 있어요. 그 중에서 일부 무료로 풀어놓은 강의가 있는데 그 중에 '보안그룹' 개념을 설명해놓은 강의가 있으니, 그 부분을 들어보시는 걸 추천드립니다! (아래 링크 남겨둘게요)

https://www.youtube.com/playlist?list=PLtUgHNmvcs6qr33RT-UiguSsCr_2Gq0S3

위 강의에서 언급하는 보안그룹의 개념에 대해 학습한 뒤에도 헷갈리시는 부분이 생긴다면
또 질문 남겨주세요ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다. Bax님.

프론트엔드 개발자와의 협업 그리고 AWS EC2와 Docker를 활용한 배포와 관련된 질문에 대해 여러 인프런 강의에서 유사한 답변들을 제공하고 있습니다. 아래 URL을 통해 참고해 보세요.

  1. Spring boot 서버를 ec2에 배포하기: 인바운드 규칙 설정에 대해 다루고 있습니다.
  2. docker compose up 시 느려짐 + 프로젝트 실행 안되는 문제: Docker, EC2 및 Nginx 설정에 대한 경험과 문제 해결 방법이 설명돼 있습니다.

질문 내용 요약 및 설명:
1. EC2 인바운드 보안 그룹 규칙:
- 기본적으로 SSH(22번 포트), HTTP(80번 포트) 설정이 필요합니다.
- 프론트엔드 개발자가 특정 포트를 통해 API에 접근해야 하면 해당 포트도 열어두는 것이 좋습니다. 예를 들어, 8100번 포트를 사용한다면 TCP로 해당 포트를 추가해야 합니다.

  1. Nginx 및 Certbot으로 리버스 프록시 설정:

    • 리버스 프록시를 설정할 때 사용하는 포트(예: 443번 포트)를 EC2 인바운드 보안 그룹 규칙에 추가해야 합니다. HTTPS를 쓸 경우 443번 포트를 열어야 하며, Nginx 설정에 맞게 다른 포트들이 있다면 추가 설정이 필요합니다.
  2. 백엔드 개발자가 프론트엔드 개발자에게 API 제공:

    • API를 제공하기 위해 주로 백엔드 서버를 배포하고, DNS 또는 IP를 공유하여 API를 접근할 수 있게 합니다.
    • 프론트엔드에서 이 API를 호출하도록 설정하고, 서로 간의 통신이 가능하도록 모든 필요한 포트를 열어놓습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Bax님의 프로필 이미지
Bax
질문자

이때 소스 유형을 "위치 무관"으로 해도 될까요? 외국에서 무작위 접근(혹은 크롤링)을 통해서 요금이 부과 될까봐 걱정이 듭니다. 반대로 소스 유형을 특정 IP로 여러개 설정하면 협업이 어렵지 않을까 하는 걱정도 듭니다.
(이미지를 주로 다루는 AI 서비스를 개발해서 그런지 비용적인 부분에서 우려가 되네요.)

Bax님의 프로필 이미지
Bax

작성한 질문수

질문하기