해결된 질문
24.07.19 20:51 작성
·
103
·
수정됨
0
강사님 안녕하세요!
이미지 관리 풀스택 강의부터 너무 잘 들어서 몽고DB랑 AWS 배포 완벽 가이드까지 너무너무 잘 듣고 있습니다.
AWS 배포 완벽 가이드 - 섹션 10: AWS Elastic Container Service (ECS) 자세히 알아보기!
를 듣던 중,
아래와 같이
redis 태스크 정의를 하였습니다.
클러스터 내부에서 redis 서비스를 만들 때,
아래와 같이 서비스 연결을 활성화했습니다.
같은 클러스터 내부에서 express 서비스를 만들 때, 환경변수 설정시 REDIS_URL을 2번 서비스 연결 항목에서 tcp를 redis로 바꾸어서 설정하였습니다.
그런데, cloudWatch로 express 로그를 찍어보니 아래와 같이 redis 연결이 안 되더라구요 ㅠㅠ
그런데, 클러스터 내부 redis 보안 그룹의 인바운드 규칙에 아래와 같이 같은 보안 그룹을 가진 인바운드 트래픽은 6379 포트를 열게 설정했더니 갑자기 문제가 해결되었습니다..
강사님께서 강의를 찍으실 때 클러스터 내부에서 레디스 서비스 생성시 보안 그룹은 따로 설정을 안 해주신 걸로 아는데, 혹시 제가 놓친 부분이라든지 강의 이후에 달라진 게 있을까요??
문제를 당장 해결은 했는데,,, 원인을 모르겠습니다 ㅠㅠ
앞으로도 좋은 강의 많이 내주세요! 감사합니다!
답변 2
0
2024. 07. 26. 12:36
소스
를 sg-188ba163/default
로만 해주시면 됩니다. 그러면 같은 보안그룹을 사용하는 서비스들끼리는 서로 요청을 날릴 수 있도록 방화벽이 풀립니다!0
안녕하세요, 인프런 AI 인턴입니다.
클러스터 내에서 레디스 서비스와 Express 서비스 간의 연결 문제는 종종 발생할 수 있습니다. 로그에서 확인한 ‘Error: read ECONNRESET’ 오류는 TCP 연결이 상대방에 의해 갑자기 닫혀 발생한 것으로 보입니다. 이 경우, 클러스터 내부의 보안 그룹 설정을 확인하는 것은 문제 해결에 있어 중요한 접근 방법입니다.
본문에서 언급한 대로, 보안 그룹의 인바운드 규칙에 6379포트를 열어주는 설정을 통해 문제가 해결되었다면, 문제의 원인은 레디스 서비스에 접근하기 위한 네트워크 통신이 제대로 이루어지지 않았음을 의미합니다.
특히 클라우드 환경에서는 보안 그룹 및 네트워크 ACL 같은 네트워크 접근 제어 목록을 통해 서비스 간 통신 규칙을 미세하게 조절할 수 있습니다. 레디스 서비스를 생성할 때 별도의 보안 그룹 설정을 하지 않은 경우, 기본 보안 그룹 설정에 따라 외부 또는 내부 네트워크에서의 접근이 제한되었을 가능성이 높습니다.
결국, 보안 그룹 설정을 통해 해당 문제를 해결할 수 있었던 것은 클러스터 내부에서 실행되는 서비스 간의 네트워크 연결 규칙을 명시적으로 허용함으로써 상호 통신이 가능해졌기 때문입니다.
앞으로도 네트워크 연결 문제를 진단할 때는 서비스가 속한 보안 그룹의 인바운드 및 아웃바운드 규칙을 체크하는 것이 좋습니다. 이는 클라우드 환경에서 서비스의 안정적인 운영을 위한 중요한 사항 중 하나입니다.
강의 내용과 직접적인 연관성은 없지만, 클라우드 환경에서 서비스를 배포하고 운영할 때의 일반적인 팁으로 도움이 되셨기를 바랍니다. 좋은 강의에 대한 칭찬도 감사드립니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요!
2024. 07. 26. 12:41