AWS EC2에서 gocd를 사용하여 CI/CD를 구성 중인데, gocd 서버에서 Expo 앱이 정상적으로 호스팅되지 않습니다.

0

안녕하세요. 저는 현재 AWS EC2에서 gocd를 사용하여 CI/CD를 구성 중인 개발자입니다. 그런데 gocd 서버에서 Expo 앱이 정상적으로 호스팅되지 않는 문제가 발생하고 있어 도움을 요청드립니다. (리액트 네이티브 사용중)

현재 상황은 다음과 같습니다.

EC2 터미널에서 직접 gocd 계정으로 접속하여 npm start를 실행하면 Expo 앱이 정상적으로 IP 주소를 할당받고 서버가 빌드되는 것을 확인했습니다. 하지만 gocd URL을 통해 접속하여 코드를 빌드하면 Expo 앱이 http://localhost:8081에서 대기하는 상태로 무한 로딩에 걸려있는 상태네요.

제 생각에는 직접 터미널에서 npm start를 실행하는 경우에는 같은 AWS 서비스 내부에서 실행되기 때문에 프라이빗 IP를 정상적으로 할당받을 수 있었던 것으로 보이는데요. gocd 로컬환경에서 접근하려면 퍼블릭 IP로 프라이빗IP를 접근하려고 하기 때문에 정상적으로 IP할당을 못받고 대기하고 있는 것이 아닌가 싶습니다.

보안 그룹은 모든 포트에 대해 허용했고, ACL도 문제없는 것 확인했습니다.

metro.config.js파일에서 모든 호스트를 0.0.0.0으로도 열어보았고요..

여러가지 다 해봤는데, 도저히 gocd에서 프론트 코드가 빌드가 안되네요.

부디 도움 부탁드립니다.

1개 답변
0

여러가지가 혼재되어 잘 이해가 되지 않는데요, CD/CD 서버를 구축하신다는 것은 해당 서버에서 워크로드가 직접 띄워지는 목적이 아닌, 다른 서버들에 배포하기 위해서 사용됩니다. 따라서 gocd 를 띄운 서버에서 직접 Expo 앱을 호스팅하는 것은 좀 이상합니다.

두번째로, localhost 는 127.0.0.1 로 호출되며, 이는 해당 서버의 loopback 네트워크 인터페이스로 접근합니다. 즉, 해당 서버 자신으로 접근합니다. 만약 외부 호스트에서 localhost 로 접근하신다면, 외부 호스트가 배포한 호스트로 접근하는 것이 아니라, 외부 호스트 자신에게 호출합니다. CI/CD 로 배포한 워크로드를 외부 호스트에서 접근하시려면 외부에서 접근하실 수 있도록 리스너/바인딩 설정을 바꾸시거나, 같은 호스트에서 Nginx 등의 웹서버를 같이 띄워, 외부에서의 접근을 받으시고, Nginx 의 백엔드로 localhost 엔드포인트를 설정하시는 것이 필요할 것으로 보여집니다.

froguin
답변함 3달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠