학원에서 교육을 듣던 중간 쯤 지나가는 말로 친구 eva에게 생일 선무롤 간단한 페이지를 만들어 주겠다는 약속(?)을 지키기 위해 이지업 강의 - 포토그램 만들기를 토대로 만들은 cheolstagram을 evastagram으로 바꾸어서 aws를 이용해 생일글을 전달해 주려고 배포하면서 기록을 남긴다.
이지업 I 모두를 위한 코딩교육
안녕하세요, 모두를 위한 코딩교육 이지업입니다! 풍부한 강의와 함께 지식을 공유할 수 있는 곳! 20년의 IT교육 역량, 이제 온라인에서 만나보세요!
www.easyupclass.com
우선 cheolstagram의 기반이 된 강의의 출처이다. 설명도 세세하게 잘해주시고, 확실히 보면서 많이 늘었다. 무엇보다 가격대비 최고이니 필요하신 분들은 들어보는 걸 강력 추천드립니다.
스프링 부트와 AWS로 혼자 구현하는 웹 서비스
스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 시큐리티를 활용한 소셜 로그인 등으로 애플리케이션을 개발하고, 뒤이어 AWS 인프라의 기본 사용법과
www.aladin.co.kr
위 책의
Ch. 6 AWS EC2
Ch. 7 AWS RDS
Ch. 8 서버 연결
을 참고했습니다.
AWS Management Console
AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.
aws.amazon.com
AWS 사이트에 들어가서 로그인을 한다. 아이디가 없다면 회원가입을 해야하는데 회원가입 과정에서 신용카드가 필요하다. 회원가입 과정에서 1달러가 결제됐다가 취소되기도(?) 한다.(가입한지는 오래돼서 정확히는 기억이 안난다.)
로그인을 하면 아래와 같은 화면이다.
여기서 왼쪽 상단의 서비스 → 모든 서비스 → EC2로 들어가준다.
주황색 인스턴스 시작 버튼을 눌러 인스턴스를 생성한다.
맨 위에 Amazon Linux 2 AMI (HVM), SSD Volume Type 을 선택한다.
Amazon Linux를 사용하는 이유는 아마존이 개발하고 있기 때문에 서비스와의 연동이 쉽고 yum이 빠르다.
🏀 ANDONE - yum이란 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자이다.
배포 연습을 하는 것이기에 프리티어로 선택한다. 프리티어는 기간 1년동안 무상으로 사용할 수 있다.
다음: 인스턴스 세부 정보 구성 클릭.
여기선 설정할 것이 없다.
다음: 스토리지 추가
처음 들어가면 스토리지 크기가 기본 8(?)로 되어있는데 프리티어는 30GB까지 무료이므로 우리는 사용할 수 있는 최대로 사용해주자. 30으로 크기 변경 후 다음: 태그 추가.
여기서는 태그 추가를 클릭하여 키는 name으로 하고 값은 인스턴스 이름으로 지정하고 싶은 것으로 작성한다.
다음: 보안 그룹 구성
보안 그룹을 구성해야하는데 여기서 지정된 포트번호로 기본적인 통신을 하기 때문에 잘 해야한다.
방화벽의 기본요소는 다음과 같다.
- Inbound: 외부에서 EC2 인스턴스로 들어오는 트래픽입니다. 대표적인 것들로는 HTTP, HTTPS, SSH, RDP 등이 있습니다.
- Outbound: EC2 인스턴스에서 외부로 나가는 트래픽입니다. EC2 인스턴스 안에서 인터넷을 사용할 경우 Outbound라 할 수 있습니다. 대표적으로 파일을 다운로드하거나, 외부 SSH로 접속하는 것 등이 있습니다.
- Type: 프토토콜 형태입니다. 프로토콜은 크게 TCP, UDP, ICMP로 나눌 수 있습니다.
- Port, Port Range: 포트 번호입니다. TCP, UDP 프로토콜은 0~65535 사이의 포트 번호를 사용하게 됩니다(ICMP는 포트 번호를 사용하지 않습니다). 우리가 익히 알고 있는 HTTP는 80번 SSH는 22번처럼 각 서버 애플리케이션들은 고유의 포트 번호를 사용하고 있습니다.
- Source/Destination: 연결 혹은 접속 가능한 IP 대역을 뜻합니다. Inbound 일 경우 Source, Outbound일 경우 Destination이라 부릅니다. IP 주소 하나만 지정할 수도 있고 CIDR 표기 방법을 이용하여 일정한 대역을 설정할 수 있습니다.
- Rule: 지금까지 설명한 Inbound, Outbound, Type, Port, Source/Destination을 조합한 것을 Rule(규칙)이라고 합니다.
SSH에는 소스에 내 IP로 선택하면 오른쪽에 ip가 자동으로 적용된다.(추후에 인스턴스에 SSH로 접속할 ip)
규칙을 추가하여 HTTPS, 사용자 지정 TCP(8080 - Tomcat) 포트를 열어주자. 추후에 db를 위해 더 추가할 것
이제 모든 설정이 끝났다. 검토 및 시작을 눌러준다.
내용을 한번 더 검토해주고 시작하기를 누른다.
시작하기를 누르면 키페어 생성하는 창이 뜬다.
새 키 페어 생성을 선택한 후 키 페어의 이름을 입력해주고, 키 페어 다운로드를 본인이 기억하는 위치로 꼭 저장해둔다!!!!
추후에 SSH로 ec2 인스턴스에 접속할 때도 사용.
인스턴스가 생성된 화면이다. 인스턴스 보기를 눌러보자.
아래쪽에 새로운 인스턴스가 생성된 것을 볼 수 있다. (위에 것은 기존에 사용하던 인스턴스이니 무시하자.)
이제 EC2의 서버를 고정 IP로 사용하기 위해서 탄력적 IP를 생성해야 한다. 탄력적 ip를 사용하지 않으면 ec2 인스턴스를 재시작 할 때 마다 IP가 변경되어 번거로운 경우가 발생한다.
왼쪽 메뉴바에서 >네트워크 및 보안 >탄력적 IP를 클릭.
오른쪽 위에 탄력적 IP 주소 할당 클릭.
할당 클릭하면 바로 탄력적 IP 주소가 할당된다. 필자는 이미 받은 IP주소가 있어서 할당하진 않겠다.(알기로는 한개까지 무료이다.) 그리고 여기서 중요한 것은 생성된 탄력적 IP 주소를 인스턴스와 바로 연결해주어야 한다는 것이다. 그렇지 않으면 요금이 나가는 것으로 알고 있다. 그러므로 바로 연결해주자.
해당 IP 선택 후 작업 > 탄력적 IP 주소 연결 클릭
인스턴스를 선택해주고, 프라이빗 IP 주소를 선택해 준 후 연결 클릭.
탄력적 IP 주소에서 IP 주소에 연결된 인스턴스 ID를 확인할 수 있다.
인스턴스를 확인해보면 탄력적 IP가 지정된 것을 확인할 수 있다. (위의 인스턴스 확인 - 필자 기존 사용하던 것)
그럼 이제 EC2 인스턴스에 터미널로 접속을 해보자.
ssh ~i /경로/pem키파일명 ec2-user@인스턴스ip주소
# 인스턴스 ip 주소는 할당받은 탄력적 ip 주소
묻는 질문에 yes로 대답하면 EC2에 성공적으로 접속된다.
(Permisson denied 메세지가 뜨며 접속이 거부되는 경우가 있는데 이는 아까 받은 pem키 권한의 문제이다. 다음과 같이 권한을 변경해주면된다.)
chmod 600 /pem키경로/pem키파일명
이렇게 생성한 EC2 인스턴스에 접속까지 완료하였다.
'Programming > AWS' 카테고리의 다른 글
AWS로 프로젝트(Spring boot, Maven, Jpa, mariaDB) 배포하기(3) - 최종 프로젝트 배포하기(24시간 무중단 배포) (0) | 2021.07.27 |
---|---|
AWS로 프로젝트(Spring boot, Maven, Jpa, mariaDB) 배포하기(2) - RDS(Maria DB) 생성 및 설정 (2) | 2021.07.27 |