
관리자는 무조건 휴대폰용으로는 안만든다 왜냐 불편하니까!
하나의 서버에
도메인 분리 - 그 도메인에만 집중해서 개발 가능 - 인원 줄어듦 - 커뮤니케이션 비용 감소
리눅스 도커 쿠버네티스 클라우드 네트워크 +모든 프로그램으로 서버를 만든 경험 → 서버를 쪼갤 수 있다.
Elastic BeanStalk
단일 서버 배포시 편하다
컴퓨터가 아니라 다양한 리소스를 가지고 있는 서비스
PaaS = 배포 환경이 다 만들어져 있다.
서버 만들고 테스트하면 된다.


1. 역할 생성
1. ec2 역할 생성

여러개의 권한을 하나의 정책으로 묶음
AdministratorAccess = 전체 권한


2. service 역할 생성




이제 이 권한들을 계속 재사용하면 된다.
2. Elastic Beanstalk 애플리케이션 생성
1. 환경 구성

나중에는 docker로하는 것이 편하다. (한번에 구워서 가능)
jdk가 필요하므로 플랫폼은 java를 선택한다.
openjdk가 아님 oraclejdk도 아니고
벤더사들끼리 협의해서 많이 쓰는 서드파티 라이브러리를 그 다음 버전에 추가
자기들만의 라이브러리가 개발되어서 들어갈 수 있다.
배포할 경우 안돌아갈 수 있기 때문에 openjdk로 개발하기

지금은 단일 인스턴스를 사용하지만 나중에는 사용자 지정 구성으로

2. 서비스 액세스 구성


3. 선택사항 (3~5단계)
3,4,5단계는 선택사항이므로 검토단계로 건너뛰기
4. 생성 완료

DNS를 만들어준다.


spring서버의 포트번호가 5000이어야 한다. (8080 안됨)
prod 모드로 실행되지 않고 jar 파일을 배포하면 그냥 java -jar *.jar로 실행된다.
프로젝트 시에는 dev로 잡아두고 실행만 prod 모드로 하면 된다.
prod에서는 5000으로 잡혀있으므로 무조건 5000으로 서버 포트 지정
OS ubuntu가 아니고 amazon linux이다.

ec2 인스턴스 자동생성됨
단일인스턴스로 만들어서 하나만 만들어짐

포트를 5000으로 했는데 80으로 된 것
5000번 포트를 열어준적도 없는데 → 내부를 알아야 됨




나는 현재 root 사용자로 들어간 것


이제는 ec2-user로 들어와있는 것을 확인할 수 있다.

프로세스가 돌고 있는지?
포트는 진짜5000인가? 근데 왜 80으로 돌지?

80을 때리면 80을 받는 서버가 있고 걔를 5000으로 redirection해주는 애가 있다.
80서버가 req,resp 받았을텐데 80서버에서 만든 req,resp 말고 5000 서버는 원래 클라이언트가 들고온 req, resp를 받아야 한다.


최상위 루트에서 이름으로 *.jar와 일치하는 것을 찾겠다.
어떤 이름으로 배포하든 내부에서 mv라는 명령어로 카피 후 이름을 변경한다. application.jar로

내가 파일 던지면 webapp이라는 애가 만들어낸거임
pid로 kill해도 포트번호가 여전히 떠있다. = 자동 재시작이 된다.





서버 배포될 때 상태확인(서버가 잘 돌고 있는지 포트 확인)하는데 잘 안돌아가면 ec2를 꺼버린다.
배포 (ec2 생성 - 환경 설정 - jar 파일 넣고 - jar 파일 실행 - 5000번 포트 잘 도는지 확인 - 안돌면 ec2 꺼버린다.) → 잠깐 ec2 떠있을 때 확인해야한다. ⇒ 이런식으로 배포하면 안된다.
→ test 서버에서 확인하고 완벽한 파일을 던져야됨
conf.d는 폴더니까 쓰고 ela까지 쓰고 tab하면 자동완성됨

ela 만들기 = 객체 박스 만들어짐 (auto scaling박스) + 관리자

실습 끝나면 바로 지우기
종료


Share article