▪️EC2 인스턴스 생성하기
- 클라우드 형태
- IaaS(아이아스, 이에스)
- 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스
- 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해주는 서비스
- AWS의 EC2, S3 등
- Paas(파스)
- IaaS에서 한 번 더 추상화 한 서비스
- 한 번 더 추상화 했기 때문에 많은 기능이 자동화 되어 있다
AWS의 Beanstalk, Heroku(헤로쿠) 등
- SaaS(사스)
- 소프트웨어 서비스
- 구글 드라이브, 드랍박스 등
EC2 T 시리즈는 다른 서비스와 달리 크레딧이란 일종의 CPU를 사용할 수 있는 포인트 개념이 있다. 인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받게 되며, 사용하지 않을 때는 크레딧을 축적하고, 사용할 때 이 크레딧을 사용한다.
크레딧이 모두 사용되면 더이상 EC2를 사용 할 수 없다.따라서 트래픽이 높은 서비스들은 T 시리즈를 쓰지 않고 다른 시리즈를 사용하기도 한다.
- 아마존 리눅스 1 EC2 서버 생성후,보안 그룹을 TCP 22,TCP 8080,TCP 443 각각 내 IP,사용자 지정,사용자 지정으로 추가한다.
- 보안은 언제나 높을수록 좋으니 pem 키 관리와 지정된 IP에서만 ssh 접속이 가능하도록 구성하는 것이 안전하다.
- 본인 집 IP를 기본으로 추가하고(내 IP 선택시 현재 접속한 장소의 IP가 자동 지정됨) 카페와 같이 집 외에 다른 장소에서 접속할 때는 해당 장소의 IP를 다시 SSH 규칙에 추가하는 것이 안전하다.
- 그 후 고정IP를 가지도록 탄력적 IP를 발급하고 연결지어준다.
▪️아마존 리눅스 1 서버 생성 시 꼭 해야 할 설정들
- Java 8 설치 (여기서는 버전 17)
$ sudo yum install java-17-amazon-corretto
$ java -version
$ sudo /usr/sbin/alternatives --config java
- 타임존 변경 : 기본 서버 시간은 미국 시간대이므로 한국시간대로 설정해야한다.
$ sudo rm /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul etc/localtime
- 호스트 네임 변경 : 현재 접속한 서버의 별명을 등록. IP만으로 어떤 서버가 어떤 역할을 하는지 알수 있도록 해야한다.
프리티어 기준 AMI 1, 2의 케이스로 나누면
1. Amazone Linux AMI 1의 경우
- 쉘에서 해당 명령어 입력
sudo vim /etc/sysconfig/network
이후
NETWORKING=yes
HOSTNAME=localhost.localdomain
NOZEROCONF=yes
의 내용을 가진 화면이 뜰 것이다.
해당 창에서 편집을 위해 "i" (insert)를 누르고, HOSTNAME=내가 바꾸고 싶은 이름으로 변경해준다.
이후 esc -> :wq (저장하고 나가기) 누르고
다시 재부팅해보면 적용되어 있다.
2. Amzone Linux AMI 2의 경우
sudo hostnamectl set-hostname 원하는이름.localdomain
이것만 입력 후 재부팅하면 변경되어 있다.
위 과정을 통해 Hostname을 등록하고 나서 한 가지 더 작업을 해줘야 한다. 호스트 주소를 찾을 때 가장 먼저 검색해 보는 /etc/hosts에 hostname을 등록해야 한다.
공통 과정이다.
sudo vim /etc/hosts
이후
127.0.0.1 등록한HOSTNAME
이후 curl 등록한 호스트 이름을 쳐보고
curl: (7) Failed to connect to beomgeun port 80: Connection refused 이 발생하면 등록이 된 것이다.
등록이 안된 경우 Could not resolve host: 가 발생한다.
출처
스프링 부트와 AWS로 혼자 구현하는 웹 서비스