이동욱님께서 집필하신 [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 책을 공부하며 정리한 내용입니다.
AWS EC2 를 사용할 때 필요한 설정 및 접속 편의를 위한 설정들을 정리한 포스팅입니다.
(본 포스팅은 이전 포스팅에 이어지는 내용이니 참고바랍니다.)
1. ssh 접속 편하게 하기
ssh를 통해 EC2에 접속하기 위해 아래와 같이 명령어를 입력했습니다.
ssh -i my-first-aws.pem ec2-user@xxx.xxx.xxx.xxx
위 명령어도 "pem 파일이 있는 디렉토리로 이동했다." 는 전제하에 실행되는 명령이므로 터미널을 실행하고 cd 명령어를 한 번 더 입력해야 합니다. 위 과정을 편하게 하기 위해 몇 가지 설정을 추가해보겠습니다.
먼저, 홈 디렉토리 하위에 .ssh 폴더로 이동합니다.
(혹시 폴더가 없는 경우, 디렉토리를 생성하고 이동합니다.)
cd .ssh
앞서 AWS EC2 인스턴스를 생성할 때 같이 생성한 pem 키를 해당 폴더로 이동시켜 줍니다.
pem 키는 EC2 서버로 접속하는 인증파일의 역할을 하기 때문에 저같은 경우에는 pem 키 파일을 복사하는거 보단 이동하는 방식을 통해 파일이 여러 개가 존재하는 걸 방지하는 편입니다. 실제로 수행하는데 있어서는 복사든 이동이든 상관없습니다.
mv [pem 키 파일이 있는 경로]/my-first-aws.pem ./
ssh 명령을 단축시켜줄 config 파일을 생성해 보겠습니다.
해당 파일은 실행파일로써 ssh 명령 시, 인자를 대체해주는 역할을 수행할 예정입니다.
일단, 파일을 생성해줍니다.
vi config
config 파일은 별도의 확장자가 없으니 이에 유의하시어 파일을 생성해주시고,
저는 vi 로 파일을 생성했지만, 다른 에디터 편집 명령을 사용하신다면 해당 명령을 사용하셔도 무방합니다.(Ex. vim, nano 등)
파일 작성화면이 터미널에 나왔다면, 아래 내용을 입력해줍니다.
Host [원하는 호스트 이름]
HostName [EC2의 탄련적 IP]
User ec2-user
IdentityFile ~/.ssh/my-first-aws.pem
[원하는 호스트 이름] 값으로 ssh 명령을 실행하게 됩니다.
[EC2의 탄력적 IP] 는 EC2 인스턴스에 할당된 탄력적 IP(EIP) 를 적어주시면 됩니다.
모두 작성됐으면, 파일을 저장해줍니다.(:wq)
그리고, 작성된 config 파일은 실행파일이어야 하므로, 권한을 아래처럼 변경해줍니다.
chmod 700 config
700 권한을 통해, 해당 파일을 생성한 소유자만이 파일의 읽기/쓰기/실행 권한을 가질 수 있게 해줍니다.
이제 .ssh 폴더에서 ll 명령을 실행하면 아래 2개의 파일이 존재해야 합니다.
이제 ssh 명령을 아래처럼 실행해보겠습니다.
ssh 명령의 실행위치는 어디든지 상관없습니다.
ssh [config 파일에 등록한 Host 값]
위 명령을 실행했을 때 아래처럼 EC2 서버로 잘 접속되는 것을 보실 수 있습니다.
2. EC2 서버 추가 설정
이제부턴 EC2 서버에 설정해놓아야할 기본적인 설정사항들을 정리한 내용입니다.
Java Application 을 사용하는 용도로 설정하는 내용입니다.
2-1. JDK 설치
기존에 EC2 서버를 생성하면 기본적으로 JDK 1.7 버전이 깔려있다는 블로그 포스팅을 많이 볼 수 있습니다.
하지만, 제가 생성한 EC2 에는 설치 자체가 되어있지 않았습니다.
그래서, 아래 명령을 통해 설치가 가능한 JDK 버전을 확인했습니다.
sudo yum list | grep jdk
많은 블로그를 확인해보면 위 명령으로 설치 가능한 jdk 버전을 확인하고, 원하는 버전을 설치하라고 나옵니다.
하지만, Amazon Linux 2023 AMI 기반으로 설치한 EC2의 경우, 위 명령을 입력하면 원하는 결과가 나오지 않습니다.
여기서 약간 당황했지만.... 구글에 검색해보니, Amazon 공식 홈페이지의 특정 링크가 나왔습니다.
https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/amazon-linux-install.html
요약하자면, Amazon Linux 에 적용할 Java 로써, Java Corretto 라는 버전을 지원하고 있다는 내용입니다.
Amazon 에서 개발한 Corretto 는 Java SE 표준과 호환되는 것이 인증되었다고 합니다.
https://aws.amazon.com/ko/corretto/?filtered-posts.sort-by=item.additionalFields.createdDate&filtered-posts.sort-order=desc
그럼 아래 명령으로 다시 설치 가능한 java 버전을 조회해보겠습니다.
sudo yum list | grep java
설치할만한 버전을 확인하면 아래처럼 확인이 가능합니다.
해당 설치 가능한 버전 중에 원하는 버전을 설치하시면 됩니다.
저는 1.8 버전을 설치하기 위해 아래 명령을 실행했습니다.
sudo yum install java-1.8.0-amazon-corretto-devel.x86_64
설치가 완료되고, java 버전을 확인하면 아래처럼 잘 나오는 것을 확인할 수 있습니다.
java 버전 중 devel 이 붙은 버전이 있고 안붙은 버전이 있는데,
devel 이 안붙은 것은 JRE, devel 이 붙은 것은 JDK임을 의미한다고 합니다.
2-2. 한국 시간대로 시간대 변경
EC2 인스턴스가 생성되면, 서버 시간이 UTC 기준으로 설정되어 있습니다.
현재 서버 시간을 확인하는 명령어는 date 입니다.
서버 시간을 변경하는 명령어는 아래와 같습니다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
위 명령을 실행하고 다시 date 명령을 실행하면 아래처럼 KST(한국 시간대)로 변경된 것을 확인할 수 있습니다.
2-3. hostname 변경
현재 EC2 서버에 접속하면 host 명이 ip 로 나타납니다.
프리티어 계정이라 1개의 EC2 서버만 사용할 것이라서 지금은 크게 문제가 되지 않지만,
나중에 많은 EC2 서버를 사용하게 되면, 현재 내가 접속하고 있는 서버가 어떤 서버인지 인지하기 위해서라도
위 부분은 ip를 표시한다기 보단, 해당 EC2 서버의 용도 위주의 표현으로 표시해주는 것이 좋아보입니다.
아래 과정은 이를 위한 작업 순서입니다.
먼저, 아래 명령을 통해 hostname 파일을 열어줍니다.
sudo vi /etc/hostname
그럼 아래와 같은 파일이 열립니다.
위 내용 중 ap-northeast-2.compute.internal 은 건드리지 말고, 그 앞에 부분을 원하는 이름으로 바꿔줍니다.
파일을 저장한 후, EC2 인스턴스를 재시작 해줍니다.
그리고 다시 ssh 로 접속하면 방금 변경한 이름이 표시되게 됩니다.
'AWS' 카테고리의 다른 글
[AWS] RDS 설정하기 (0) | 2023.04.14 |
---|---|
[AWS] EC2 생성하기(for. Mac) (0) | 2023.03.21 |
댓글