Blog

[Spring-LDW] AWS EC2 접속하기, 초기 설정하기 + SSH 접속 시 오류 해결(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)

Category
Author
citeFred
citeFred
PinOnMain
1 more property
스프링 부트와 AWS로 혼자 구현하는 웹 서비스  : 인텔리제이, JPA, JUnit 테스트, 그레이들, 소셜 로그인, AWS 인프라로 무중단 배포까지 이동욱 저
Table of Content

EC2 실행하기

EC2 생성이 완료되면 자동으로 해당 서버는 실행되게 된다. 인스턴스 상태가 중지인 경우 시작을 통해 컴퓨터를 부팅 시켜 사용 가능한 상태로 만든다.

EC2 서버에 접속하기

우선 SSH(시큐어쉘)로 접속하기 위해서는 EC2 생성에서 설정했던 키가 필요하다. .pem 확장자로 로컬에 다운로드 받았던 키인데 마스터키와 같은 역할을 하기 때문에 노출되거나 삭제하면 안된다.(재발급필요)
EC2는 IP주소 또는 접속 주소가 있는데 간단하게 아래와 같이 인스턴스 정보 세부 사항에서 ‘연결’ 이라는 부분에서 터미널 명령어를 찾을 수도 있다.

EC2 서버에 접속하는 과정의 오류

새로운 인스턴스를 생성하고 연결하거나 할 때 아래와 같이 인증에 대한 문제가 발생하곤 한다.
발생된 SSH 접속 오류는 IP는 동일한데, 목적지 서버 장비가 바뀌었다거나, Vmware 와 같은 가상 컴퓨터의 IP는 동일하지만, 실질적인(물리적) 서버가 바뀌었을 경우 나오는 일종의 경고성 알림이다.
서버는 새로 설치되었기 때문에 인증정보가 남아있지 않아 위와 같은 에러가 뜬다고 한다. 이런 경우 아래 명령어로 초기화 시켜주면 된다.
ssh-keygen -R XXX.XXX.XXX.XXX
Java
복사
이후 다시 pem키를 이용해서 접속하면, 정상적으로 접속되는 것을 확인 할 수 있다.
ssh -i "asiaEC2.pem" ec2-user@XX.XXX.XXX.XXX
Java
복사

EC2 서버 생성 및 접속 후 꼭 해야할 설정들

JDK 설치 : 현재 이 프로젝트 버전에 맞추어 설정한다. 나는 JDK 17을 설치해야 한다.)
타임존 변경 : 기본 서버 시간은 미국 시간대이다.
호스트네임 변경 : IP만으로 서버가 어떤 역할인지 모르기 때문에 구분하기 위해 호스트 네임을 등록해준다.

1. JDK 설치

교재에서는 JDK8 버전을 사용한다. 8버전 JDK 설치 명령어는 다음처럼 안내되어 있다.
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
Java
복사
내가 설치한 JDK17의 경우 다음과 같다.
sudo yum install java-17-amazon-corretto-devel.x86_64
Java
복사
위 명령어를 통해 설치를 시작하면 다음과 같이 설치 목록을 나타내준다.
설치 이후 java —version으로 정상적으로 설치되었는지 확인한다.

2. 타임존 변경

EC2 기본 타임존은 UTC이며 한국과는 9시간 차이가 발생한다. 따라서 아래 명령어를 통해 한국시간으로 변경해야 한다.
sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
Java
복사
이후 date 명령어로 KST로 나타나면 정상적으로 적용된 것이다.

3. Hostname 변경

호스트 네임을 통해서 각 서버가 어느 서비스인지 구분하여 표현하는 것이 좋다.
교재와 달리 Amazon Linux 2023은 Linux 2와 같이 간단한 명령어로 호스트네임을 변경하는 것으로 수정되었다.
교재의 내용을 시도했지만 변경되지 않는점을 발견했고, 시도한 과정은 아래 펼치기 내용과 같다.
과거 Linux AMI 1 에서의 호스트 네임 변경 방법으로 보여짐
결과적으로 Amazon Linux 2 인 경우엔 아래 명령어로 호스트네임을 변경 할 수 있는 것을 안내되어 있다. 내가 설치한 EC2의 리눅스 버전인 Amazon Linux 2023에서도 해당 명령어로 간단하게 수정 할 수 있었다.
sudo hostnamectl set-hostname webserver.mydomain.com
Java
복사
이후 /etc/hosts 파일을 아래처럼 수정한다.
sudo vim /etc/hosts
Java
복사
127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
Java
복사
이후 호스트 네임이 정상적으로 등록되었는지 확인하는 방법은 curl {호스트 네임} 명령어를 통해서 확인 할 수 있다. 잘못 등록된 경우 (6)오류가 나타나며 호스트를 찾을 수 없다고 나타나지만
정상적으로 등록된 경우 (7)오류가 나타나며 80번 포트로 접속 할 수 없는 오류가 나타난다.
다음과 같이 정상적으로 응답하는 것을 확인 할 수 있었다.
Search
 | Main Page | Category |  Tags | About Me | Contact | Portfolio