반은 해결한(..?) Trouble Shooting
🧑💻
이번 포스팅에서는 EC2 인스턴스의 접속이 정상적으로 되질 않았던 이슈를 해결하며 겪었던 과정에 대해 작성해보고자 한다.
📣 Issue 발생
잘 작동하던 CI/CD 워크플로우 중, EC2 인스턴스에 접속하지 못하는 이슈가 발생했다.
🧑💻
찾아보니 인스턴스 CPU, 메모리 등 높은 사용량이 문제가 될 수도 있다고 했다. 필자는 프리티어로 생성한 EC2 인스턴스에 지속적으로 도커 이미지와 컨테이너를 생성하니 EC2 인스턴스의 디스크를 많이 차지한 것을 원인으로 판단했다.
📣 Issue 해결 과정
📚 EC2 인스턴스 중지 및 재시작
AWS EC2 인스턴스의 [상태 및 경보] 탭으로 들어가 보니 '시스템 상태 검사'와 '인스턴스 상태 검사'중 '인스턴스 상태 검사'에서 연결성 검사 실패가 나오고 있었다.
위에서 EC2 인스턴스 접속 실패의 원인에 대해 판단한 것이 정확한 것은 아니었기에 확실한 해결책을 찾기 어려웠고, EC2 인스턴스를 중지 후 재실행하게 되었다. (재부팅으로는 해결되지 않았다.😲)
인스턴스를 재실행한 후 EC2 인스턴스에 정상적으로 접속이 가능했다. 정확한 원인을 모르기에 우선 EC2 인스턴스 내에 생성해 둔 Docker 이미지와 Docker 컨테이너들을 전부 삭제하였다.
🧑💻
필자가 생성한 인스턴스는 탄력적 IP가 아니었기 때문에 인스턴스를 중지했다 재실행하는 과정에서 퍼블릭 IP가 변경된 것을 확인할 수 있었다.
📚 Route 53 생성해 둔 호스팅 영역에서 레코드 수정
가비아에서 구매한 도메인과 AWS EC2 인스턴스를 연결지었기에 Route 53에서 변경된 퍼블릭 IP로 다시 레코드를 생성해주어야 했다.
레코드를 변경하게 됐을 때, 이에 연결된 도메인이 전세계의 네임 서버로 전파되기 위해서는 일정 시간이 소요되는데, 나의 도메인이 전파가 되었는지 확인할 수 있는 DNS Checker라는 사이트를 알게 되었다.
레코드를 재생성한 직후에 DNS Checker에서 도메인을 입력하면 아직 전파가 되지 않은 것을 확인할 수 있었다. 몇 분 지나니 나의 도메인이 제대로 전파가 되어 있었다.
📚 깃허브 환경변수 수정
CI/CD 파이프라인을 구축할 때 워크플로우에서 EC2 접속을 위해 퍼블릭 IP를 환경변수로 설정하였었는데, 퍼블릭 IP가 변경되면서 해당 값도 재설정해주게 되었다.
🧑💻
이렇게 해결한 후에도 계속해서 일정 시간이 지나면 EC2 인스턴스에 접속이 되지 않는 상황이 발생했다. 무슨 문제인지 도통 모르겠다 🥹 왜 그런 거냐고오~
알게 되면 꼬옥 포스팅해서 올려야지.
이번을 계기로 탄력적 IP를 설정하는 것은 꽤 소중한 것 같다는 생각을 했다. 탄력적 IP를 설정하지 않음으로써 추가적으로 해야 했던 프로세스가 있으니 😲
지금은 정말 어이없지만 이걸 해결할 때 배포는 됐는데 내 웹앱이 왜 안 보이지..? 하며 원인을 찾는 데 시간이 꽤 걸렸던 ㅎㅎ..
그래도 덕분에 또 이런 일이 생기면 바로 찾을 수 있을 거 같다.
중요한 건 왜 EC2 인스턴스 접속이 안 되었을까이지만 🤔