AWS는 이론(Concept)과 실전(Practice)으로 구분하여 포스팅할 계획이다.
AWS는 그냥 많이 만져봐야 익숙해지는데, 개념 정리도 같이 하려니 글이 너무 복잡해져서 분리했다.
참고로 프리티어 플랜에서 다루는 내용이다.
목차
1. EC2 인스턴스 생성하기
2. EC2 서버 접속하기
3. 아마존 리눅스 서버 1 생성 시 꼭 해야 할 설정들
1. EC2 인스턴스 생성하기
- EC2(Elastic Compute Cloud) : AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버
우선, 우측 상단의 리전을 서울로 변경한다.
리전이란 AWS 서비스가 구동될 지역을 말한다.
그리고 EC2 대시보드에서 인스턴스 시작 버튼을 누른다.
인스턴스란 EC2 서비스에 생성된 가상머신을 말한다.
📌 인스턴스 이름
가장 먼저 인스턴스 이름을 지어주면 된다. 아무렇게나 지어주자.
📌 AMI (Amazon Machine Image)
AMI란 EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것을 말한다.
인스턴스라는 가상머신에 운영체제 등을 설치할 수 있도록 만들어둔 것이라 이해하면 된다.
기본으로 Amazon Linux 1 AMI가 선택되어 있고, Amazon Linux 2 AMI도 프리티어 단계에서 선택할 수 있다.
다만, 아직 국내 자료가 Linux 1이 더 많기 때문에, 특별한 이유가 없다면 Linux 1을 선택하는 게 낫다.
📌 인스턴스 유형
t2.micro를 선택하면 된다.
t2는 요금 타입(T 시리즈), micro는 사양을 의미한다.
AWS는 크레딧이란 CPU를 사용할 수 있는 포인트 개념을 사용한다.
인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받게 되는데, 사용하지 않을 때는 축적한다.
정해진 사양보다 더 높은 트래픽이 오면 크레딧을 보다 적극적으로 사용해 처리하긴 하는데, 크레딧을 모두 소진하면 더이상 EC2를 사용할 수 없다.
📌 키 페어 (로그인)
ssh 접속이 가능하도록 새 키 페어 생성을 클릭하자.
Mac & Linux 환경이라면 .pem을 하는 것이 편할 수도 있으나, 나는 Window 환경이므로 .ppk로 선택했다.
아무 이름이나 입력하고 키 페어 생성을 누르면 .ppk 파일이 받아진다.
puttygen을 실행해서 Conversions에서 해당 파일을 불러오면 아래처럼 뜬다.
여기서 save private key를 클릭해 어디에 잘 저장해주면 된다.
참고로 이 정보는 절대 유출되어서는 안 된다!!! 꽁꽁 숨겨두자.
그렇다고 잃어버리면 안 된다...🙄
📌 네트워크 설정
네트워크 설정에서 HTTP(80 포트), HTTPS(443 포트) 트래픽을 허용해주면 된다.
문제는 ssh 트래픽이 default로 위치 무관 허용으로 지정되어 있는데, 이건 권장되지 않는다.
왜냐하면 ssh면서 22번 포트 항복이면 AWS EC2 터미널 접속할 때를 이야기 하는데, 이렇게 되면 실수로 pem 혹은 ppk키가 노출되는 순간 서버에서 가상화폐가 채굴되는 것을 직관할 수 있다.
웬만하면 지정된 IP에서만 ssh 접속이 가능하도록 구성하는 것이 좋다.
기본적으로 내 집의 IP를 추가하고, 이외의 장소에 접속할 때는 해당 장소의 IP를 ssh 규칙에 추가하는 것이 안전하다.
80, 443번 포트는 열어놔도 위험한 일이 아니니 그냥 놔두면 된다.
📌 스토리지 구성
프리티어는 30GB까지 무료로 서버의 용량을 사용 가능하다.
그 이상은 비용이 청구되니 30으로 맞추자.
여기까지 끝났다면 인스턴스 시작을 눌러주면 된다.
생성이 끝났다면 IP와 도메인이 할당된 것을 알 수 있다.
인스턴스도 하나의 서버이므로 IP가 존재하는데, 문제는 인스턴스를 중지하고 다시 시작할 때 새로운 IP가 할당된다.
이렇게 되면 접속해야 하는 IP가 매번 변경되어 너무 번거로우므로, 고정 IP 주소를 가지게 해야 한다.
📌 EIP (Elastic IP, 탄력적 IP) 할당
왼쪽 카테고리에서 탄력적 IP를 눌러 선택하고, 새 주소 할당을 누르자.
그럼 페이지가 이동하는데, 바로 할당 눌러버리면 주소가 추가된다.
여기서 멍때리지 말고, 곧장 실행 중인 인스턴스와 연결시키자.
탄력적 IP 주소 할당 받아놓고 방치해두면 비용이 청구된다.
즉, 생성한 EIP는 무조건 EC2에 바로 연결해야 하고, 더 이상 사용할 인스턴스가 없으면 삭제해야 한다.
2. EC2 서버 접속하기
Window 기준으로 설명합니다. putty가 설치되어 있어야 합니다.
Putty를 실행하고 Conncetion-SSH-Auth-Credentials를 선택하자.
'private key file for authentication'의 browse를 클릭해서 이전에 저장했던 ppk 파일을 불러오면 된다.
정상적으로 불러와졌다면, Session 탭에서 현재 설정들을 저장할 이름을 등록하고 Save를 누른다.
그러면 로그인 하라고 뜨는데, 기본으로 ec2-user 계정으로 들어가면 접속이 성공적으로 수행되는 것을 알 수 있다.
3. 아마존 리눅스 서버 1 생성 시 꼭 해야 할 설정들
📌 Timezone 변경
EC2의 기준 타임존은 UTC이므로 한국과 9시간 차이가 발생한다.
이렇게 되면 서버에서 수행되는 애플리케이션에서 생성되는 시간도 모두 9시간씩 차이가 나므로 수정해야 한다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
타임존이 UTC에서 KST로 변경된 것을 확인할 수 있다.
📌 Hostname 변경
여러 서버를 관리할 경우 IP 만으로 어떤 서비스의 서버인지 확인하기 힘들다.
'172-31-36-205'가 무슨 서비스인지 알 수 있겠는가?
그래서 각 서버의 HOSTNAME을 변경하여 어느 서비스인지 표현할 수 있다.
sudo hostnamectl set-hostname {hostname 명}
'/etc/hostname' 파일 안의 내용도 변경했으므로, reboot를 해도 호스트명이 유지된다.