[AWS] EC2 인스턴스 접속 및 설정
Updated:
EC2 서버에 접속하기
Windows에서 Linux 인스턴스에 연결하기
내가 접속을 위해 사용해본 SSH 클라이언트는 두 가지이다.
- PuTTY
- Mobaxterm
두 클라이언트의 큰 차이점은 Mobaxterm는 발급받은 프라이빗 .pem 키를 변환없이 그대로 사용할 수 있다는 것이고, PuTTY는 .pem을 ppk로 변환해야 한다는 것이다. 변환 때문에 설정 자체는 Mobaxterm가 더 간단했지만, PuTTY도 aws에서 제공하는 문서를 따라하면 돼서 어렵지 않았다.
[참고문서] PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결
아마존 리눅스 서버 생성 시 꼭 해야 할 설정들
SSH 클라이언트를 통해 아마존 리눅스 서버에 정상적으로 접속하고나면 몇 가지 설정이 필요하다.
- Java 11 설치 : 아마존 리눅스 2023 서버는 자바가 설치돼있지 않으므로 11버전으로 설치하였다.
- 타임존 변경
- 호스트네임 변경
Java 11설치
ec2 접속 후 전체 아마존 Corretto 11 설치 명령어를 입력한다.
sudo yum install java-11-amazon-corretto
그러면 아래와 같이 pakage 목록이 뜨고 다운로드 할 것인지 여부를 묻는다. y를 입력하면 다운로드가 시작된다.
=============================================================================================================================================================================================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================================================================================================================================================================================
Installing:
java-11-amazon-corretto x86_64 1:11.0.19+7-1.amzn2023 amazonlinux 198 k
Installing dependencies:
alsa-lib x86_64 1.2.7.2-1.amzn2023.0.2 amazonlinux 504 k
cairo x86_64 1.17.4-3.amzn2023.0.2 amazonlinux 674 k
dejavu-sans-fonts noarch 2.37-16.amzn2023.0.2 amazonlinux 1.3 M
dejavu-sans-mono-fonts noarch 2.37-16.amzn2023.0.2 amazonlinux 467 k
dejavu-serif-fonts noarch 2.37-16.amzn2023.0.2 amazonlinux 1.0 M
fontconfig x86_64 2.13.94-2.amzn2023.0.2 amazonlinux 273 k
fonts-filesystem noarch 1:2.0.5-5.amzn2023.0.2 amazonlinux 8.7 k
freetype x86_64 2.12.1-3.amzn2023.0.1 amazonlinux 418 k
giflib x86_64 5.2.1-9.amzn2023 amazonlinux 49 k
google-noto-fonts-common noarch 20201206-2.amzn2023.0.2 amazonlinux 15 k
google-noto-sans-vf-fonts noarch 20201206-2.amzn2023.0.2 amazonlinux 492 k
graphite2 x86_64 1.3.14-7.amzn2023.0.2 amazonlinux 97 k
harfbuzz x86_64 7.0.0-2.amzn2023.0.1 amazonlinux 868 k
java-11-amazon-corretto-headless x86_64 1:11.0.19+7-1.amzn2023 amazonlinux 91 M
javapackages-filesystem noarch 6.0.0-7.amzn2023.0.5 amazonlinux 13 k
langpacks-core-font-en noarch 3.0-21.amzn2023.0.4 amazonlinux 10 k
libICE x86_64 1.0.10-6.amzn2023.0.2 amazonlinux 71 k
libSM x86_64 1.2.3-8.amzn2023.0.2 amazonlinux 42 k
libX11 x86_64 1.7.2-3.amzn2023.0.2 amazonlinux 657 k
libX11-common noarch 1.7.2-3.amzn2023.0.2 amazonlinux 152 k
libXau x86_64 1.0.9-6.amzn2023.0.2 amazonlinux 31 k
libXext x86_64 1.3.4-6.amzn2023.0.2 amazonlinux 41 k
libXi x86_64 1.7.10-6.amzn2023.0.2 amazonlinux 40 k
libXinerama x86_64 1.1.4-8.amzn2023.0.2 amazonlinux 15 k
libXrandr x86_64 1.5.2-6.amzn2023.0.2 amazonlinux 28 k
libXrender x86_64 0.9.10-14.amzn2023.0.2 amazonlinux 28 k
libXt x86_64 1.2.0-4.amzn2023.0.2 amazonlinux 181 k
libXtst x86_64 1.2.3-14.amzn2023.0.2 amazonlinux 21 k
libbrotli x86_64 1.0.9-4.amzn2023.0.2 amazonlinux 315 k
libjpeg-turbo x86_64 2.1.4-2.amzn2023.0.2 amazonlinux 190 k
libpng x86_64 2:1.6.37-10.amzn2023.0.2 amazonlinux 128 k
libxcb x86_64 1.13.1-7.amzn2023.0.2 amazonlinux 230 k
pixman x86_64 0.40.0-3.amzn2023.0.3 amazonlinux 295 k
xml-common noarch 0.6.3-56.amzn2023.0.2 amazonlinux 32 k
Transaction Summary
=============================================================================================================================================================================================================================================================================================================================
Install 35 Packages
Total download size: 99 M
Installed size: 252 M
Is this ok [y/N]: y
완료되면 설치한 파일 목록이 보이고 마지막줄에 Complete!가 찍히면 완료된다.
35/35
... (생략)
Installed:
alsa-lib-1.2.7.2-1.amzn2023.0.2.x86_64 cairo-1.17.4-3.amzn2023.0.2.x86_64 dejavu-sans-fonts-2.37-16.amzn2023.0.2.noarch dejavu-sans-mono-fonts-2.37-16.amzn2023.0.2.noarch dejavu-serif-fonts-2.37-16.amzn2023.0.2.noarch
fontconfig-2.13.94-2.amzn2023.0.2.x86_64 fonts-filesystem-1:2.0.5-5.amzn2023.0.2.noarch freetype-2.12.1-3.amzn2023.0.1.x86_64 giflib-5.2.1-9.amzn2023.x86_64 google-noto-fonts-common-20201206-2.amzn2023.0.2.noarch
google-noto-sans-vf-fonts-20201206-2.amzn2023.0.2.noarch graphite2-1.3.14-7.amzn2023.0.2.x86_64 harfbuzz-7.0.0-2.amzn2023.0.1.x86_64 java-11-amazon-corretto-1:11.0.19+7-1.amzn2023.x86_64 java-11-amazon-corretto-headless-1:11.0.19+7-1.amzn2023.x86_64
javapackages-filesystem-6.0.0-7.amzn2023.0.5.noarch langpacks-core-font-en-3.0-21.amzn2023.0.4.noarch libICE-1.0.10-6.amzn2023.0.2.x86_64 libSM-1.2.3-8.amzn2023.0.2.x86_64 libX11-1.7.2-3.amzn2023.0.2.x86_64
libX11-common-1.7.2-3.amzn2023.0.2.noarch libXau-1.0.9-6.amzn2023.0.2.x86_64 libXext-1.3.4-6.amzn2023.0.2.x86_64 libXi-1.7.10-6.amzn2023.0.2.x86_64 libXinerama-1.1.4-8.amzn2023.0.2.x86_64
libXrandr-1.5.2-6.amzn2023.0.2.x86_64 libXrender-0.9.10-14.amzn2023.0.2.x86_64 libXt-1.2.0-4.amzn2023.0.2.x86_64 libXtst-1.2.3-14.amzn2023.0.2.x86_64 libbrotli-1.0.9-4.amzn2023.0.2.x86_64
libjpeg-turbo-2.1.4-2.amzn2023.0.2.x86_64 libpng-2:1.6.37-10.amzn2023.0.2.x86_64 libxcb-1.13.1-7.amzn2023.0.2.x86_64 pixman-0.40.0-3.amzn2023.0.3.x86_64 xml-common-0.6.3-56.amzn2023.0.2.noarch
Complete!
java -version
을 입력하여 자바가 제대로 설치됐는지 확인한다.
[ec2-user@ip ~]$ java -version
openjdk version "11.0.19" 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-11.0.19.7.1 (build 11.0.19+7-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.19.7.1 (build 11.0.19+7-LTS, mixed mode)
[참고문서] Amazon Corretto 11 설치 지침 - Amazon Corretto
타임존 변경
EC2 서버의 기본 타임존은 세계 표준 시간(UTC)이므로 한국 시간으로 변경해준다.
현재 심볼릭 링크를 삭제한다.
sudo rm /etc/localtime
심볼릭 링크를 한국 표준시로 다시 생성해준다.
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
정상적으로 수행되었다면 date 명령어로 타임존이 한국시간(KST)로 변경된 것을 확인할 수 있다.
//변경전
Tue May 30 01:55:36 UTC 2023
//변경후
Tue May 30 10:56:50 KST 2023
Hostname 변경
여러 서버를 관리할 경우 IP만으로 어떤 서비스의 서버인지 확인이 어렵다. 각 서버가 어느 서비스인지 표현하기 위해 HOSTNAME을 변경한다.
호스트 이름 업데이트를 유지하려면 preserve_hostname
cloud-init 설정이 true
로 설정되어 있는지 확인해야 한다. 나의 경우 false
로 되어있어 true
로 변경해주었다. sudo vi /etc/cloud/cloud.cfg
명령어를 입력해 vi 편집기로 들어간 후, i를 눌러 insert(입력모드)로 넘어간다. preserve_hostname
값을true
로 변경해주고 esc
→ :wq
명령어로 저장하고 종료한다.
sudo vi /etc/cloud/cloud.cfg
//변경 후
preserve_hostname: true
호스트 이름을 변경한다. Amazon Linux 1,2 버전에 따라 적용 방식이 다르다.
-
Amazon Linux 2
hostnamectl 명령으로 호스트 이름을 설정하여 정규화된 도메인 이름을 반영한다.
[ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
-
Amazon Linux AMI
/etc/sysconfig/network
구성 파일을 열고HOSTNAME
으로 되어있는 부분을 변경한다.HOSTNAME=webserver.mydomain.com
인스턴스를 재부팅하여 새 호스트 이름을 적용한다.
[ec2-user ~]$ **sudo reboot**
인스턴스에 로그인하고 호스트 이름이 업데이트되었는지 확인한다.
[ec2-user@bokyoung89-webservice ~]$ hostname
bokyoung89-webservice
/etc/hosts에 hostname 등록
다음 명령어로 /etc/hosts
파일을 연다.
sudo vim /etc/hosts
새로 등록한 hostname을 아래에 추가로 등록한다. :wq
명령어로 저장하고 종료한다.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
127.0.0.1 bokyoung89-webservice
정상적으로 등록되었는지 확인한다.
curl bokyoung89-webservice
아래와 같이 80포트로 접근이 안된다는 에러가 발생하면 등록 성공이다. curl 호스트 이름으로 실행은 잘 되었지만, 아직 80포트로 실행된 서비스가 없다는 의미이다.
curl: (7) Failed to connect to bokyoung89-webservice port 80 after 1 ms: Couldn't connect to server