24시간 작동하는 서버가 필요할 때 방법 3가지
일반적으로 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하다. 만약 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드가 유리하다.
클라우드스 서비스는 쉽게 말하면 이넡넷을 통해 서버, 스토리지(파일 저장소), 데이터 베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것이다.
클라우드의 형태
1. Infrastructure as a Service(IaaS, 아이아스, 이에스)
EC2(Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버다.
EC2 이름은 Elastic Comptue Cloud에서 C가 2개가 있어 C2라는 이름이 붙었다. 비슷한 예로 AW3의 S3는 Simple Storage Service를 줄여서 S3라 한다.
리전을 서울로 바꿨다. 리전이란 AWS의 서비스가 구동될 지역을 이야기한다. AWS는 도시별로 클라우드 센터를 지어 해당 센터에서 구축된 가상머신들을 사용할 수 있다. 이를 리전이라 한다.
EC2의 인스턴스를 클릭한다.
인스턴스 시작
책에는 Linux1을 선택하라고 되어있지만, Linux1 서비스가 종료되었다.
인스턴스를 생성하는 첫 단계는 AMI(Amazon Machine Image)를 선택하는 것이다. AMI는 EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것을 이야기 한다. 인스턴스라는 가상 머신에 운영체제 등을 설치할 수 있게 구워 넣은 이미지다.
아마존 리눅스 2는 센토스7버전 자료들을 그대로 사용할 수 있다. 아마존 리눅스 AMI를 고른 이유
디폴트 설정
30GB까지 늘려준다.
EC2의 이름을 붙이는 것이다. 여러 인스턴스가 있으면 태그별로 구분하면 편하다.
이 보안 그룹 부분이 중요하다. 유형 항목에서 SSH면서 포트 항목에서 22인 경우 AWS EC2에 터미널로 접속할 때를 이야기 한다. pem 키가 없으면 접속이 안되니 전체 오픈 (0.0.0.0/0, ::/0)하는 경우를 종종 발견한다. 이렇게 되면 이후 파일 공유 디렉토리나 깃허브 등에 실수로 pem 키가 노출되는 순간 서버에서 가상화폐가 채굴 되는것을 볼 수 있다.
보안은 언제나 높을수록 좋으니 epm키 관리와 지정된 IP에서만 ssh 접속이 가능하도록 구성하는 것이 안전하다. 그래서 본인 집의 IP를 기본적으로 추가하고 (내 IP를 선택하면 현재 접속한 장소의 IP가 자동 지정된다) 카페와 같이 집 외에 다른 장소에서 접속할 때는 해당 장소의 IP를 다시 SSH 규칙에 추가하는 것이 안전하다.
인스턴스도 하나의 서버이기 때문에 IP가 존재한다. 인스턴스 생성 시에 새 IP를 항당하는데, 한가지 조건이 더 있다. 같은 인스턴스를 중지하고 다시 시작할 때도 새 IP가 할당된다.
그래서 고정 IP를 할당할 필요가 있다.
EIP 할당
AWS의 고정 IP를 Elastic IP라고 한다.
탄력젹 IP와 방금 생성한 EC2 주소를 연결하자.
주의할 점이 있다. 방금 생성한 탄력적 IP는 생성하고 EC2서버에 연결하지 않으면 비용이 발생한다. 즉, 생성한 탄력적 IP는 무조건 EC2에 바로 연결해야 하며, 만약 더는 사용할 인스턴스가 없을 때도 탄력적 IP를 삭제 해야 한다.
Putty 다운로드
puttygen 실행
putty는 pem 키로 사용이 안되며 pem 키를 ppk 파일로 변환을 해야한다. 이 과정을 진행해주는 클라이언트가 puttygen이다.
conversions -> import key
pem키를 이용해 ppk 파일 만드로 저장한다.
putty 실행
- HostName: username@public_Ip를 등록한다. 우리가 생성한 Amazon Linux는 ec2-user가 username이라서 ec2-user@탄력적 IP 주소를 등록하면 된다.
- Post: ssh 접속 포트인 22를 등록
- Connection type: SSH
왼쪽 사이드바 Connection -> SSH -> Auth -> browse -> ppk 등록
다시 돌아와서 Saved Sessions에서 이름 등록하고 저장
Open
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
자바 버전을 8로 변경하자
sudo /usr/sbin/alternatives --config java
sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
sudo vim /etc/sysconfig/network
sudo reboot
Hostname 등록하고 한 가지 작업 더 해야 한다. 호스트 주소를 찾을 때 가장 먼저 찾아보는 /etc/hosts에 변경한 hostname을 등록한다.
sudo vim /etc/hosts
curl 등록한 호스트 이름
80포트로 접근이 안된다는 에러가 발생하면 잘된 것이다. 아직 80포트로 실행된 서비스가 없음을 의미한다.