기록과 정리

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 06 본문

IT/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 06

zepetto 2021. 4. 1. 07:15

이 글은 이동욱(jojoldu)님의 <스프링 부트와 AWS로 혼자 구현하는 웹 서비스> 를 참고하였습니다.

m.yes24.com/Goods/Detail/83849117

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 

m.yes24.com

AWS 서버 환경 구축 1 - AWS EC2

 

서버 환경 구축의 종류

 

AWS, amazone web servic라는 클라우드 시스템을 이용하여 서버를 구축하여 보자.

 

서버 구축에는 크게 3가지가 있다. 

 

1. 집에 PC를 24시간 구동한다.

놀고 있는 데스크탑이나 노트북으로 가장 무난하고 저렴하게 구축할 수 있다. 하지만 네트워크&인프라 관련 공부를 조금(?) 해야한다. 

zepettoworld.tistory.com/7?category=919004

홈 서버 구축

개발하기 앞서 환경구축은 매우 귀찮고 힘든 작업이다.. 하지만 작업하기 원활한 환경을 만들기 위해 집에 놀고있는(?) PC를 이용하여 서버를 만들어보려합니다. 결과적으로 만든 네트워크 구성

zepettoworld.tistory.com

2. 호스팅 서비스( Cafe24 등) 이용  

처음 호스팅을 해볼때 이용했던 cafe24 해당 링크는 학생때 만든 사이트이다. ( 안보일수도 있음. 관리 안함 )

zepetto7065.cafe24.com/

Zepetto World

The New Way to Success Advance Progress

zepetto7065.cafe24.com

3. 클라우드 서비스 (AWS, AZURE, GCP 등)을 이용
 aws.amazon.com/ko/

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

제조 AWS를 활용한 Siemens의 에너지, 의료 서비스, 제조 분야 혁신 Siemens가 AWS를 사용하여 어떻게 문화를 바꾸고 혁신을 장려하며 비즈니스 성과를 창출했는지 알아보세요. 자세히 알아보기  업종

aws.amazon.com

 

우리가 해보는 것은 3번의 클라우드 서비스 중 AWS를 이용해보려한다.

 

비용적 측면에서 1, 2가 유리할 수 있으나 3의 경우,막강하게 유연한 대처를 할 수 있으며 ( 특정 시간대에 트래픽이 몰림에 따라 유동적으로 사양 변경 ) 서버 이외에 스토리지/데이터베이스/로그/모니터링 등의 서비스를 제공하며 가장 큰 장점은 많은 기업에서 AWS를 채택하고 있다. ( 경험을 해볼 수 있다거나 레퍼런스가 많다는 점에서 큰 장점이 아닐까 ) 

 

AWS 회원가입

AWS는 가입시 프리티어 등급으로 1년간 무상으로 이용할 수 있다. 가입에는 별다른 특이사항이 없이 Visa 나 Master 카드를 통해 1달러 지불후 가입을 하게 된다. 

 

EC2 인스턴스 생성

EC2, Elastic Compute Cloud 는  성능과 용량등을 유연하게 대처할 수 있는 서버라고 생각하면 된다. AWS 접속 후 , 인스턴스 생성을 하자.

 

접속 후 보이는 메인 대시보드에서 찾을 수 있다.
Amazon Linux 2 AMI

 

책에서는 아마존 리눅스 1을 선택하라고 하지만 현재 아마존 EC2 목록에서 찾을 수 없었다. ( 누가 찾으면 댓글 부탁드려요 ) 따라서 Amazone Linux 2로 진행했다. 레드헷 베이스이며 1에 비해 레퍼런스가 적고 환경설정이 조금 다르지만 무난히 찾아가면서 할 수 있을 것 이다.

 

 

t2.micro

 

트래픽은 낮은 서비스들이 주로 사용하는 t2.micro , 작은 프로젝트이니 t2.micro 를 이용하자 . 선택할 필요없이 Next

 

세부 정보 구성

 

VPC, 서브넷등 자세한 세부 정보 구성이다 여기도 Next

 

 

storage 설정

 

프리티어는 30GB까지 추가 할 수 있다. 가능하다면 30GB 로 추가 후 진행 Next

 

 

 

웹 콘솔에 표기될 이름 설정

 

웹콘솔 구분하는 이름을 설정하도록 한다. Next

 

 

방화벽설정

 

보안그룹을 통해 방화벽 설정을 할 수 있다. 서버로 부터 80포트 이외에는 허용하지 않는 설정을 한다. 22번 포트는 ssh 로 접속시 , 본인 로컬에서 가능하도록 '내 IP'로 설정을 해주도로고하자. pem키가 존재하여야 ssh 접속이 가능하여 어디서나 접속할 수 있도록 하는 경우가 종종 있는데, 보안상 안전하지 않으니 키관리 + 로컬 접속을 추천

 

다음 진행시, 키페어를 다운로드할 수 있다. 해당 pem 키는 로컬이나 본인이 따로 지정해놓은곳에 잘보관을 해놓도록 하자. 

 

EIP 할당

 

EIP, Elastic IP 는 일종의 고정 IP 이다. 인스턴스 재가동시 IP가 변동이 되는데 이를 방지하는 것이다.

 

왼쪽에서 발견 가능
탄력적 IP 주소 할당

 

탄력적 IP 주소 할당으로 주소를 생성후 , 작업 drop box 선택후, 주소 연결을 시켜주도록 하자.

 

프라이빗에는 EC2의 IP 가 자동 완성이 된다

 

EC2에 접속하기 위한 설정이 완료 되었다. 

 

 

EC2 접속

Mac 기준으로 설명

 

ssh -i pem <pem 키 위치> <EIP주소>

 

위 명령어로도 접속이 가능하지만 매번 이렇게 하기 번거로우니 config 파일을 통해 쉽게 접속하도록 하자.

 

 

cp pem 키를 받은 위치 ~/.ssh/ -> 폴더에 따로 보관

 

chmod 600 ~/.ssh/pem키 명 -> 키 권한 변경

 

vim ~/.ssh/config -> config 파일 생성

 

config 파일 내 설정 내용 -----

 

#주석

Host 본인이 원하는 서비스명

    HostName ec2의 탄력적 IP 주소

    User ec2-user

    IdentityFile ~/.ssh/pem키 이름

 

저장 후 종료 -> :wq

 

chmod 700 ~/.ssh/config -> config 파일의 실행 권한 설정

 

ssh <config 파일에 설정해놓은 서비스 명>

 

 

접속 성공

 

 

이외 자바8 설치 / 타임존 변경 ( 한국 시간대 ) / 호스트네임 을 추가적 셋팅하여 서버 초기 환경 설정을 하도록 하자.