티스토리 뷰

배포

AWS 사용하기

도라지보다더덕 2020. 8. 26. 15:25

 

 

내가 만든 서비스를 배포(Deployment)하기 위해서는 항상 가동되고 있는 서버가 필요합니다. 일반적으로 기업들은 물리적인 회사 서버를 가지고 서비스를 외부에 제공하거나 클라우드 서비스를 이용하여 제공합니다. 하지만 저는 집 컴퓨터를 24시간 365일 켜놓고 있을 수는 없고 개인 서버 장비를 살 정도로 부유하지 않으니 클라우드를 통해 배포를 진행해보도록 하겠습니다. 

 

그 중에서 IaaS의 대표적인 예시인 AWS EC2를 사용해보도록 하겠습니다.

 

1. AWS 회원가입

 

우선 AWS로 접속하여 계정 생성을 클릭합니다. 메일주소, 암호 계정 이름 등을 입력하고 넘어가면 다음과 같은 화면이 나옵니다.

 

 

 

이 때 계정 유형은 개인으로 선택하고 주소는 영문 주소를 기입합니다. (영문 주소 찾기

다른 칸도 다 기입해주세요

 

 

모두 기입한 후 단계를 넘어가면 결제 정보를 입력하는 폼이 있습니다. Visa 카드나 Master 카드를 준비해 작성해주세요.

 

 

입력이 완료되면 본인 확인을 거치고 마지막으로 지원 플랜을 선택합니다. 저는 학습용으로 사용할 예정이니 기본 플랜으로 선택하겠습니다.

 

 

 

 

 

2. AWS EC2 인스턴스 

 

위 회원가입을 모두 마치면 콘솔로 로그인하기를 클릭하여 로그인해주세요. 그리고 ec2를 검색하여 클릭하면 다음과 같은 화면을 볼 수 있습니다.

 

 

 

초기 리전은 미국 동부 (오하이오)로 설정되어 있습니다. 리전은 AWS 클라우드 센터의 위치를 의미합니다. 이 클라우드 센터에서 운영되는 가상머신을 사용하는 것이기에 가장 가까운 위치를 선택하는 것이 좋습니다. 현재는 서울에도 AWS의 서버가 존재하니 한국에서 클라우드를 사용 시 특별한 이유가 없으면 서울로 변경해주세요. (우측 상단에 설정있습니다.)

 

리전을 설정했으면 인스턴스 시작을 눌러주세요. 다음과 같은 화면이 나옵니다. 다음 화면은 아마존 머신 이미지를 선택하는 화면입니다. AMI는 EC2 인스턴스의 필요한 정보를 이미지로 만들어 둔 것입니다. 첫번째로 나온 AMI 를 선택하여 사용하겠습니다.

 

이미지 선택 후 다음 단계로 넘어가면 인스턴스 유형을 선택할 수 있습니다. nano, micro와 같이 뒤에 붙은 것은 사양을 의미합니다.  저는 t2.micro를 사용하겠습니다.

 

 

그 다음 단계인 3, 4 단계는 학습단계에서 특별히 설정할 것이 없으므로 넘어가겠습니다. 다음 단계는 태그 추가 단계입니다. 다음과 같은 화면이 나옵니다. 인스턴스가 여러 개가 될 경우 이름을 구별하기 위해 Name 태그를 추가하여 넣어주겠습니다.

 

다음 단계는 보안 그룹 구성입니다. 보안은 굉장히 중요한 사항이므로 잘 설정해야합니다. 우선 ssh로 접근하는 유형의 IP를 설정해줍시다. 어차피 pem키가 없으면 접근을 못하니 전체 IP를 허용해놓는다고 생각할 수 있습니다. 하지만 실수로라도 pem키를 노출할 경우 굉장히 위험하니 ssh 접속이 필요한 곳에서 IP를 추가하여 접속하는 것이 좋습니다. 내 IP를 선택하면 자동으로 자신의 IP가 입력됩니다. 다음은 기본포트인 8080 포트를 열어두었습니다. 8080포트를 열어두는 것은 크게 위험한 일은 아니니 전체 IP에 대한 허용을 해놓습니다. 

 

 

 

이제 시작하기 버튼을 클릭하면 보안을 개선하라는 경고 메세지가 뜹니다. 8080 포트를 전체 IP 허용으로 해놔서 뜨는 경고 메세지이니 걱정말고 시작하기를 클릭합니다.

 

 

 

다음은 키 페어 생성입니다. ssh 접속 시 pem키가 필요한데 이 키를 생성해줍니다. 새 키 페어 생성을 선택한 후 키 페어 이름을 적절하게 지어주고 키 페어 다운로드를 클릭합니다. 

 

다운로드 완료 후 인스턴스 ID를 클릭하면 EC2 인스턴스가 생성되고 실행 중인 것을 알 수 있습니다. 

 

생성 후 그대로 사용할 수도 있지만 해당 인스턴스가 재실행될 경우 IP가 변경되어 재실행 시마다 확인해주어야 합니다. 따라서 고정 IP를 할당하는 것이 편리합니다. 왼쪽 메뉴바에서 탄력적 IP 메뉴를 선택해주세요. 그 후 우측 상단에 탄력적 IP 주소 할당을 클릭 후 새 주소를 할당합니다. 마지막으로 작업을 클릭하여 현재 EC2 인스턴스와 연결해주세요.

(EIP 생성 후 인스턴스를 연결 안할 경우 요금이 부과된다고 합니다. 따라서 인스턴스를 연결하지 않을 경우 EIP를 삭제해주세요.) 

 

다시 인스턴스 페이지로 돌아와서 하단에 탄력적 IP가 제대로 할당되었는지 확인하세요!

 

 

 

 

 

3. EC2 서버 접속

AWS EC2 인스턴스로 서버를 실행했으니 로컬환경에서 접속해봅시다. 아까 다운로드 받았던 pem키를 이용하여 ssh 접속을 할 수 있습니다. 

 

ssh -i pem키위치 접속하고자하는IP

 

매번 이렇게 접속하기 힘드니 ~/.ssh에 pem를 옮겨놓습니다.

 

mv pem키 ~/.ssh

 

그리고 config를 작성하여 호스트 네임을 통해 접속 가능하도록 설정해줍시다.

 

vi ~/.ssh/config

 

 

Host는 ssh 뒤에 입력할 호스트 이름입니다.

HostName은 위에서 할당한 EIP 입니다.

User는 접속할 유저입니다.

IdentityFile은 pem key의 위치입니다.

 

 

 

ssh "Host"

esc wq로 저장 후 설정한 Host의 이름을 입력합니다. 위와 같은 경우에는 springboot2-davinci-webservice입니다.

 

 

다음과 같은 화면이 출력되면서 접속이 잘 된 것을 확인할 수 있습니다.

 

 

 

4. AWS 설정

 

AWS의 생성과 ssh로 접속이 완료되었으면 이제 서버의 몇 가지 필수 설정을 해야합니다.

 

  • java 버전 설정

  • 타임존 설정

  • 호스트 네임 설정

 

 

java 버전 설정

 

AMI 1 버전으로 서버를 실행했다면 java 7 이 기본 버전으로 설정되어 있습니다. 하지만 그 상위 버전인 java 8을 사용하기 위해선 java 8을 다운로드 받은 뒤 변경해야합니다. 

 

설치가능한 java 버전을 보면 1.8 버전이 다음과 같이 존재하므로 

 

sudo yum install java-1.8.0-openjdk-devel.x86_64 	#설치
sudo /usr/sbin/alternatives --config java		#버전 변경

위 명령어를 통해 다운 받은 뒤 버전을 변경하면 됩니다.

 

더보기

저는 java 11 버전이 필요했지만 패키지에 java 11이 존재하지않았습니다. 따라서 java 11 rpm을 검색하여 다운받아 따로 설치했습니다.

 

 

 

타임존 변경

AWS의 기본 시간은 UTC로 설정되어있습니다. 아래 명령어를 차례로 입력해 한국 표준 시간대(KST)로 변경합니다.

 

 

 

 

 

호스트 네임 설정

network파일을 변경하여 hostname을 설정해줍니다. 

 

 

 

 

 

reboot 명령어로 서버를 재부팅하면 호스트 네임이 변경돼있는 걸 확인할 수 있습니다.

 

 

 

 

 

마지막으로 /etc/hosts내부에 hostname을 등록해줍니다.

 

sudo vi /etc/hosts

 

 

 

제대로 등록이 되었다면 다음과 같이 curl을 이용해 요청했을 경우 연결이 거부되었다는 메세지가 뜹니다

 

 

 

 

 

 

 

 

 

 

reference


 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'배포' 카테고리의 다른 글

CI/CD 적용하기  (0) 2020.09.04
EC2에 배포하기  (0) 2020.09.01
AWS RDS 사용하기  (0) 2020.08.28
클라우드 서비스  (0) 2020.08.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함