스프링 부트와 AWS로 혼자 구현하는 웹 서비스 를 공부하고 정리한 내용입니다.
🔔 클라우드 몇 가지 형태
1. Infrastructure as a Service (IaaS, 아이아스, 이에스)
- 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스이다.
- 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해 주는 서비스라고 생각하면 된다.
- AWS의 EC2, S3 등
2. Platform as a Service (Paas, 파스)
IaaS
에서 한번 더 추상화한 서비스이다.- 한번 더 추상화했기 때문에 많은 기능이 자동화되어 있다.
- AWS의 Beanstalk(빈스톡), Heroku(헤로쿠) 등
3. Software as a Service (SaaS, 사스)
- 소프트웨어 서비스를 말한다.
- 구글 드라이브, 드랍박스, 와탭 등
🎁 AWS를 선택한 이유
- 첫 가입 시 1년간 대부분 서비스가 무료이다.
- 클라우드에서는 기본적으로 지원하는 기능(모니터링, 로그관리, 백업, 복구, 클러스터링 등)이 많아 개인이나 소규모일 때 개발에 좀 더 집중할 수 있다.
- 많은 기업이 AWS로 이전 중으로 국내에서는 AWS 점유율이 압도적이다.
- 사용자가 많아 국내 자료와 커뮤니티가 활성화되어 있다.
💡 참고
- 진행하는 모든 AWS 서비스는 IaaS를 사용한다.
- AWS의 PaaS 서비스인 빈스톡을 사용하면 대부분 작업이 간소화되지만, 프리티어로 무중단 배포가 불가능하다.
배포할 때마다 서버가 다운되면 제대로 된 서비스를 만들 수 없으니 무중단 배포는 필수이고 빈스톡은 사용할 수 없다.
💡 참고
AMI(Amazon Machine Image, 아마존 머신 이미지)
- EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것
ssh -i pem ec2-user@주소
을 집적 입력하여 ssh에 접속할 수 있다.
매번 주소를 찾고 입력하기에는 귀찮다!
~/.ssh/
디렉터리로 pem 파일을 옮겨 놓으면 ssh 실행 시 pem 키 파일을 자동으로 읽어 접속을 진행한다.
(1) pem을 .ssh/
로 옮긴다.
(2) vim config
config을 생성한다.
Host 별명이름
HostName ec2-x-xx-xxx-xxx.ap-northeast-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ssh/xxx.pem
mac terminal에서는 ssh 별명이름
을 입력하여 ec2 서버에 접속하면 된다.
윈도우 환경에서 Linux를 사용하기 위해서는 PuTTy를 많이 사용한다.
64-bit x86 putty.exe
64-bit x86 puttygen.exe
두 개를 설치한다.
✔ puttygen.exe 실행한다.
✔ PuTTY 실행한다.
username@public_Ip
를 등록한다. 생성한 Amazon Linux에서 ec2-user@탄력적 IP 주소
를 등록하면 된다.
✔ Java 11 설치
sudo yum install java-11-amazon-corretto.x86_64
설치 완료 후, 다음 명령어를 이용해서 Java 버전이 11이 맞는지 확인한다.
java -version
실행 결과
✔ 타임존 변경
EC2 서버의 기본 타임존은 UTC으로, 한국의 시간과는 9시간 차이가 발생한다. 이렇게 되면 서버에서 수행되는 Java 애플리케이션에서 생성되는 시간도 모두 9시간씩 차이가 나기 때문에 꼭 수정해야 한다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
모두 완료하면 date
명령어를 실행했을 때 타임존이 KST
로 변경된 것을 확인할 수 있다.
✔ 호스트 이름 변경
여러 서버를 관리 중일 경우 IP만으로 어떤 서비스의 서버인지 확인하기 어렵다. 그래서 각 서버가 어느 서비스인지 표현하기 위해 HOSTNAME을 변경해보자
sudo vim /etc/hosts
이 명령어를 수행한 뒤, 127.0.0.1
에 이름을 원하는 이름으로 변경하자.
다음 명령어를 수행한 뒤 위에서 바꾼 이름과 동일하게 변경하자
sudo vim /etc/hostname
원래는 ip-[IP 주소]
로 되어 있으나 별명을 지정해준다.
모두 수정을 완료했으면 서버를 재부팅한다!
sudo reboot
다시 서버에 접속하면 원하는 이름으로 변경된 것을 확인할 수 있다.