EC2는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버를 말한다.
인스턴스 생성
- 인스턴스란 EC2 서비스에 생성된 가상머신을 말하며, 인스턴스를 생성하려면 우선 AMI를 선택해야 한다.
- AMI란 EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것으로, 인스턴스라는 가상머신에 운영체제 등을 설치할 수 있게 구워 넣은 이미지를 말한다.
- 예를 들어 아마존 리눅스 2 AMI를 사용한다면 Amazon Linux 2 OS가 인스턴스에 설치되어 사용할 수 있다.
- 아마존 리눅스 AMI는 아마존이 개발하고 있기 때문에 지원받기가 쉽고, AWS의 각종 서비스와 상성이 좋다.
- t2는 요금 타입을 이야기하며, micro는 사양을 이야기한다.
- T 시리즈는 범용 시리즈로, 다른 서비스와 달리 크레딧이란 일종의 CPU를 사용할 수 있는 포인트를 제공한다.
- 인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받게 되고, 사용하지 않을 때는 크레딧을 축적한다.
- 정해진 사양보다 더 높은 트래픽이 오면 크레딧을 적극적으로 사용하면서 트래픽을 처리하며, 크레딧이 모두 사용되면 더이상 EC2를 사용할 수 없다.
- 스토리지는 흔히 하드디스크라고 부르는 서버의 디스크를 이야기하며, 서버의 용량을 얼마로 할지 선택할 수 있다.
- 30GB까지 프리티어로 사용 가능
- 태그에는 웹 콘솔에 표기될 태그인 Name 태그를 등록한다.
- 해당 인스턴스를 표현하는 여러 이름으로 사용되며, EC2에 이름을 붙이는 과정
- 보안 그룹은 방화벽을 말하며, 서버로 80 포트 외에는 허용하지 않는다는 역할을 하는 방화벽이 AWS에서는 보안 그룹으로 사용된다.
- 유형 항목에서 SSH이면서 포트항목에서 22인 경우는 AWS EC2에 터미널로 접속할 때를 이야기하며 pem 키가 있어야 접속 가능하다.
- 보안을 위해서 pem 키 관리와 지정된 IP에서만 SSH 접속이 가능하도록 구성하고, 추가로 접속할 장소의 IP를 SSH 규칙에 추가하는 것이 안전하다.
- 인스턴스로 접근하기 위해서는 pem 키가 필요하며, 인스턴스는 지정된 pem 키와 매칭되는 공개키를 가지고 있어, 해당 pem 키 외에는 접근을 허용하지 않는다.
- pem 키는 절대 외부에 유출하면 안되기 때문에, 잘 관리할 수 있는 디렉토리로 저장한다.
- 생성이 완료되면 IP와 도메인이 할당되되며, 같은 인스턴스를 중지하고 다시 시작할 때도 새로운 IP가 할당된다.
- 따라서, 잠깐 인스턴스를 중지하고 다시 시작할 때마다 접속해야 하는 IP가 변경된다.
- 이에 대해 인스턴스의 IP가 매번 변경되지 않고 고정 IP를 가지도록 설정할 수 있다.
EIP 할당
- AWS의 고정 IP를 EIP 또는 탄력적 IP라고 한다.
- 탄력적 IP는 생성하고 EC2 서버에 연결하지 않으면 비용이 발생한다.
- 따라서 생성한 탄력적 IP는 무조건 EC2 서버에 바로 연결해야 하고, 만약 더는 사용할 인스턴스가 없는 경우에는 탄력적 IP를 삭제해야 한다.
putty
- 윈도우에서 EC2 서버에 접속하려면 putty.exe와 puttygen.exe 실행파일을 다운받아야 한다.
- putty는 pem 키로 사용이 안 되며 pem 키를 ppk 파일로 변환해야 하는데, puttygen이 pem 키를 ppk 파일로 변환해 준다.
- ppk 파일을 생성하고, putty.exe 파일을 실행한다.
- HostName에는 username@public_ip를 등록하며, 아마존 리눅스는 username은 ec2-user
- Port에는 ssh 접속 포트인 22를 등록하고, Connection type으로 SSH를 선택한 후, ppk 파일을 등록한다.
서버 설정
Java 설치 (JDK 11)
- yum에는 설치가능한 JDK가 1.8까지만 존재하기 때문에 JDK 11을 설치하려면Amazon에서 제공하는 OpenJDK인 Amazon Coretto를 다운받아야 한다.
# aws coreetto 다운로드
sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm
# jdk11 설치
sudo yum localinstall jdk11.rpm
# jdk 버전 선택
sudo /usr/sbin/alternatives --config java
# java 버전 확인
java --version
타임존 변경
- EC2 서버의 타임존은 UTC 세계 표준 시간으로, 한국과 9시간 차이가 난다.
- 타임존을 변경하지 않으면 서버에서 수행되는 애플리케이션에서 생성되는 시간에 차이가 생기기 때문에, 한국 시간으로 변경해주어야 한다.
# 타임존 변경
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# 타임존 확인
date
Hostname 변경
- IP만으로 어떤 서비스의 서버인지 확인하기 어렵기 때문에, 각 서버가 어느 서비스인지 표현하기 위해 hostname 파일에서 HOSTNAME을 변경해준다.
- 호스트이름을 변경한 후 호스트 주소를 찾을 때 가장 먼저 검색하는 /etc/hosts에 변경한 hostname을 등록한다.
# 호스트이름 변경
sudo vim /etc/hostname
# 호스트이름 등록
sudo vim /etc/hosts
- curl 호스트 이름 명령어를 입력했을 때 위와 같이 접근할 수 없다는 에러가 발생하면 잘 등록된 것
- 아직 80 포트로 실행된 서비스가 없다는 뜻으로, curl 호스트 이름으로 실행은 잘 되었음을 의미
'AWS' 카테고리의 다른 글
일라스틱 빈스톡에 프로덕션 배포 (0) | 2022.01.29 |
---|