이전 글에서 보다시피,
EC2 지역을 미국(버지니아 북부)에서 서울(Seoul)로 변경해주었다.
그러면서 탄력적 IP를 새로 할당받아서 EC2에 구축했던 Web Server(웹 서버)에 접속이 되지 않았다. (err_connection_timed_out aws ec2 오류)
몇가지 확인을 해줘야한다. (상황에 따라 다름)
- AWS EC2 인스턴스 보안그룹 확인
- Nginx default 파일 확인
- 도메인 관리 서비스 확인(가비아)
- HTTPS(Let's Encrypt 인증서) 확인
본인은 AWS EC2 지역 변경(새 인스턴스 생성)을 할 때 보안그룹을 따로 설정했다.
새로 만든 인스턴스와 연결된 보안그룹의 인바운드 규칙, 아웃바운드 규칙을 확인해야한다.인바인드 규칙으로 ssh, http, https 등 원하는 규칙을 추가 및 수정해주어야 한다.
아웃바인드 규칙으로 모든 트래픽 관련해서 추가 및 수정해주어야 한다.
(구글에 'AWS EC2 보안 그룹 설정'을 검색하면 관련 글이 많이 나온다.)
- 인바인드 규칙 : 쉽게 말해 Client가 EC2 인스턴스에 접근할 때 필요한 보안규칙이다.
- 아웃바인드 규칙 : 쉽게 말해 EC2 인스턴스에서 Client에 접근할 때 필요한 보안규칙이다.
Mac기준으로 터미널에서 ssh로 AWS EC2에 접속하고, 사용하는 웹서버가 Nginx라고 가정했을 때,
/etc/nginx/sites-available에 있는 default 파일을 확인해야한다.
이전 인스턴스의 퍼블릭 IP주소를 사용하는 곳을 바꿔줘야한다.
(퍼블릭 IP 주소는 AWS EC2 인스턴스 탭에서 확인 가능하다.)
본인은 리다이렉션(Redirection)에서 사용해서
사진에서 server_name 부분은 새로운 인스턴스의 퍼블릭 ip 주소로 변경해주었다.cd /etc/nginx/sites-vailable sudo vi default
수정 후 테스트와 Nginx 재시작을 해준다.sudo nginx -t // 테스트 sudo service nginx restrart // Nginx 재시작
자신이 운영하는 Web Server에 도메인을 구입해서 연결했다면,
구입한 곳에서 도메인 관련 설정을 수정해줘야한다. (본인은 가비아에서 구입)
본인은 타입 A를 선택한 @와 www에 해당하는 값을 기존 퍼블릭 IP 주소를 새로운 인스턴스에 할당한 퍼블릭 IP 주소로 바꿔주었다.
수정 후, 저장을 하고 적용될 때 까지 몇 분 걸릴 수도 있다.
기존에 Web Server를 구축했을 때 HTTPS 적용을 했다면 다시 새로운 인증서를 받고 설정해야한다.
본인은 기존에 Let's Encrypt를 통해 HTTPS 적용을 했다.
HTTPS를 적용한 도메인, 서브도메인 등에 다시 적용을 하면된다.
(구글에 'AWS EC2 Nginx Let's Encrypt https 적용'으로 검색하면 많이 나온다.)
위 방법들로 해결되지 않았다면 다른 방법을 시도해야할 것 같다.
(다시 구축하는 것도 좋은 방법일 것 같다.)