SlideShare uma empresa Scribd logo
1 de 47
ElasticBeanStalk을 이용한 출석 관리 “Attendee” WebApp 제작
전북대학교 컴퓨터공학부 이동준
djunnni@gmail.com
Attendee
2019. 12. 10
Index
1. 프로젝트 소개
1-1. 목적
1-2. UI / UX
2. AWS Service 소개
2-1. 서비스 동작 방식
2-2. ElasticBeanStalk
2-3. Simple Email Service
2-4. WorkMail
3. Design
3-1. ER Data Model
3-2. Use Case Diagram
3-3. Flow Chart
4. Programming
4-1. SpringToolSuite4 이용한 개발 과정
5. Deploy
5-1. ElasticBeanstalk을 통한 배포
5-2. 배포 중 발생한 문제점과 해결방법
6. Testing
6-1. Google Search Console Mobile Test
6-2. Apache AB Test
6-3. Auto Scaling Test
7. Process Document
7-1. Gitbook
7-2. Github
Attendee
프로젝트 소개
Attendee
프로젝트 소개
Attendee
1-1. 목적
Khub에서 사용하던 출석체크 !!
“ 이런 게 있으면 좋겠다 ”
A4용지에 한번 사용하고 바로 버린 출석부 !!
“ 뽑기도 귀찮고 이제 종이 낭비 그만하고 싶어
그래서 만들었습니다.
소모임, 스터디 조, 동아리에서 사용할 수 있는 Attendee
프로젝트 소개
Attendee
1-2. UI / UX
로그인 화면 회원가입 화면
간편하게
한눈에
사용할 수 있도록
만들었습니다.
프로젝트 소개
Attendee
1-2. UI / UX
유저 메인 화면 QR 코드 화면
간편하게
한눈에
사용할 수 있도록
만들었습니다.
프로젝트 소개
Attendee
1-2. UI / UX
출석 진행 화면 카카오톡 공유 화면Excel 파일 다운로드 지원
AWS Service 소개
Attendee
AWS Service 소개
Attendee
2-1. 서비스 동작 방식
AWS Cloud
Availability Zone – 2a
VPC WebServer Public WebServer Public
Database Private
Amazon EC2
Auto Scaling
Availability Zone – 2c
Auto Scaling group
Amazon RDS
(Multi AZ)
Instance
Spot InstanceSpot Instance
Amazon Simple
Email Service
Seoul Region US-EAST-
1 Region
Elastic Beanstalk container
S3 Bucket
CloudWatch
Amazon WorkMail
Attendee
2-2. Elastic Beanstalk
AWS Service 소개
AWS Elastic Beanstalk는 Apache, Nginx, Passenger, IIS와 같은
친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게
배포하고 조정할 수 있는 서비스입니다.
코드를 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝,
로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모
니터링에 이르기까지 배포를 자동으로 처리합니다.
Elastic Beanstalk는 추가 비용 없이 애플리케이션을 저장 및 실
행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 됩
니다.
Attendee
2-3. Simple Email Service
AWS Service 소개
애플리케이션 개발자가 마케팅, 알림 및 트랜잭션 이메일을 발송하는 데 도움이 되도록 설계된
“클라우드 기반 이메일 발송 서비스” 입니다.
https://aws.amazon.com/ko/ses/
Attendee
2-4. Work Mail
AWS Service 소개
안전한 관리형 비즈니스 이메일 및 달력 서비스입니다.
사용자에게 원하는 클라이언트 애플리케이션을 사용하거나 웹 브라우저를 통해 직접 이메일, 연락처 및 달
력에 원활하게 액세스할 수 있는 기능을 제공합니다.
https://aws.amazon.com/ko/workmail/?nc2=type_a
Attendee
2-4. Work Mail
AWS Service 소개
Attendee 서비스를 WorkMail로 관리하여
쉽게 서비스에 대해 문제해결 및 알림을 보낼
수 있습니다.
Design
Attendee
Design
Attendee
3-1. ER Data Model
Jpa를 통한 Member와 Activity 양방향 연결 // Activity 와 User 단방향 연결
Design
Attendee
3-2. Use Case Diagram
Member
추가, 삭제, 종료, 시작
다운로드, 공유
User
출석
Design
Attendee
3-3. Flow Chart
Programming
Attendee
Programming
Attendee
4-1. SpringToolSuite4 이용한 개발 과정
Package
ml.attendee = AppApplication.class
aws.ses = 메일 전송과 내용 처리
controller = 웹 컨트롤러
domain = Entity 정의
encode = 인코딩용 class
repository = JPA 를 위한 DB repository
security = SpringSecurity
service = Transaction service
Programming
Attendee
4-1. SpringToolSuite4 이용한 개발 과정
Resource
Spring-Thymeleaf 를 통한 레이아웃 형 html 작성
Static에 css, js , img 가 있다.
Application.properties에 설정파일 내용 저장
Programming
Attendee
4-1. SpringToolSuite4 이용한 개발 과정
Member의 비밀번호 설정 Bcrypt 암호화
Bcrypt 암호는 복호화가 어려워
관리자 또한 비밀번호를 찾을 수 없어 비밀번호
복구를 위한 Mail 서비스를 지원할 예정
Programming
4-1. SpringToolSuite4 이용한 개발 과정
Excel 파일 만드는 과정
Apache poi를 통해 만들어서
Microsoft Excel 등에서 사용할 수 있도록
사용자에게 제공한다.
Programming
4-1. SpringToolSuite4 이용한 개발 과정
AWS SES(Simple Email Service) 서비스 연동과정
AWS 의 Credential을 얻는 부분이
골치였다.
https://djunnni.gitbook.io/springboot/2019-12-01
Deploy
Attendee
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
Aws 배포 과정 인스턴스 보안 그룹 설정(Attendee-WebServer)
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
AutoScaling 설정
인스턴스 1~3개
기본 온디멘드 1개 설정
인스턴스 설정 t2.micro 만
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
로드 밸런서 설정
Application Load Balancer 이용
80 포트 (Http)와 443 포트(Https)를 설정
가상 머신 키페어 설정
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
VPC 가용 영역 서브넷 설정
2a, 2c 2개의 가용영역에서 동작
인스턴스 설정
WebServer 2개 설정
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
배포중
Deploy
Attendee
5-1. ElasticBeanstalk을 통한 배포
오류 발생
502 에러
뒤에서 설명
Deploy
Attendee
5-2. 배포 중 발생한 문제점과 해결방법
1. 초기 Time zone 이 GMT 로 되어 있어 한국과 9시간 차이가 났다. ( DB에서도 시간차 발생 )
해결방법 SpringBoot로 배포할 시 timezone에 대한 Setting을 아래처럼 하면 됨.
1) src/main/ebxtensions 만들기 2) pom.xml build에서 maven-war-plugin 추가 설정
3) 01-timezone.config를 다음과 같이 작성한다. 4) Maven project Update를 한다.
https://djunnni.gitbook.io/springboot/2019-12-05
Deploy
5-2. 배포 중 발생한 문제점과 해결방법
2. Port에 대한 Proxy 문제가 스프링 부트에 존재했다.
ElasticBeanstalk에서 SpringBoot는 AWS 로드 밸런서가 5000번으로 수신 대기 할 것으로 예상
단순 배포시에는 문제가 없지만, AutoScaling을 통해 하려고 하면 위 같은 문제가 발생
Deploy
5-2. 배포 중 발생한 문제점과 해결방법
Ebextensions에서 두개의 파일을 추가 했다.
1. 80 포트로 접근하면 자동으로 8080로 연결되게 끔
2. 5000 포트로 접근하면 자동으로 8080로 연결되게 끔
당연히 WebServer 보안그룹에서
8080번과 5000번을 열어두었다.
Deploy
배포 성공 ( Auto Scaling은 뒤에 Testing에서 설명합니다. ) 
Deploy
But 오토스케일 테스트를 진행하면 502 에러가 계속 발생한다…
Nginx로 서비스를 구축하고 업로드 했더니 정상적으로 작동했다.
Nginx-proxy.config
Nginx.conf에서 참고할 부분만 발췌
Testing
Attendee
Attendee
Testing
6-1. Google Search Console Mobile Test
Desktop 연결 테스트 0.5 초 (100점) Mobile 연결 테스트 1.7 초 (99점)
Attendee
Testing
6-2. Apache AB Test
각각 –c –t –n의 값을 바꿔가면서 테스트를 진행한 결과 양호하다.
Attendee
Testing
6-3. Auto Scaling Test
Auto Scaling 정책은 학교에서 TargetResponseTime으로 했지만
본인의 경우 classic-load-balance 이므로 Latency로 진행하였음
Attendee
Testing
6-3. Auto Scaling Test
Auto Scaling 전략을 써보려고 했는데 그보다 프록시 서버 성능에 대해
알게 된 것 같다.
Nginx가 Apache 보다 더 성능 면에서 깔끔하다?
Testing
6-3. Auto Scaling Test
혹시나 fail인데 거짓말 하는 건 아닌지 살펴봤는데 정상이다.
그리고 apache2.4와 비교하면 nginx가 튜닝만 잘하면 더 좋을것 같다
Nginx
Apache 2.4
Testing
6-3. Auto Scaling Test 앞의 결과에 따른 Auto Scaling 개수 변화 (1~3개로 제한 걸어둠)
Process Document
Attendee
Process Document
Attendee
7-1. Gitbook
SpringBoot 개발에 대해
"모두가 알았으면 좋을 점 + 문제해
결 방법 “
Gitbook으로 정리
https://djunnni.gitbook.io/springboot/
Process Document
Attendee
7-2. Github
개발과정에 대한 일지와 코드를 올린 Repository
JPA + Hibernate를 사용하기에
누구나 Fork 해서 자신만의 출석부를 재구축할 수 있다.
https://github.com/Djunnni/Attendee
Process Document
Attendee
7-3. SlideShare
https://www.slideshare.net/LEEDONGJOON1/attendeespringboot-webapp
Attendee
감사합니다.

Mais conteúdo relacionado

Semelhante a 아마존 웹서비스를 이용한 WebApp 제작 Attendee

[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
Sang Don Kim
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 

Semelhante a 아마존 웹서비스를 이용한 WebApp 제작 Attendee (20)

01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
 
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
 
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
 
Electron
ElectronElectron
Electron
 
2021 분산컴퓨팅 최종 프로젝트
2021 분산컴퓨팅 최종 프로젝트2021 분산컴퓨팅 최종 프로젝트
2021 분산컴퓨팅 최종 프로젝트
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring vs. spring boot
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring boot
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Parallel diary
Parallel diaryParallel diary
Parallel diary
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
J2 Ee
J2 EeJ2 Ee
J2 Ee
 
Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015
 

Último

Último (7)

공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 

아마존 웹서비스를 이용한 WebApp 제작 Attendee

  • 1. ElasticBeanStalk을 이용한 출석 관리 “Attendee” WebApp 제작 전북대학교 컴퓨터공학부 이동준 djunnni@gmail.com Attendee 2019. 12. 10
  • 2. Index 1. 프로젝트 소개 1-1. 목적 1-2. UI / UX 2. AWS Service 소개 2-1. 서비스 동작 방식 2-2. ElasticBeanStalk 2-3. Simple Email Service 2-4. WorkMail 3. Design 3-1. ER Data Model 3-2. Use Case Diagram 3-3. Flow Chart 4. Programming 4-1. SpringToolSuite4 이용한 개발 과정 5. Deploy 5-1. ElasticBeanstalk을 통한 배포 5-2. 배포 중 발생한 문제점과 해결방법 6. Testing 6-1. Google Search Console Mobile Test 6-2. Apache AB Test 6-3. Auto Scaling Test 7. Process Document 7-1. Gitbook 7-2. Github Attendee
  • 4. 프로젝트 소개 Attendee 1-1. 목적 Khub에서 사용하던 출석체크 !! “ 이런 게 있으면 좋겠다 ” A4용지에 한번 사용하고 바로 버린 출석부 !! “ 뽑기도 귀찮고 이제 종이 낭비 그만하고 싶어 그래서 만들었습니다. 소모임, 스터디 조, 동아리에서 사용할 수 있는 Attendee
  • 5. 프로젝트 소개 Attendee 1-2. UI / UX 로그인 화면 회원가입 화면 간편하게 한눈에 사용할 수 있도록 만들었습니다.
  • 6. 프로젝트 소개 Attendee 1-2. UI / UX 유저 메인 화면 QR 코드 화면 간편하게 한눈에 사용할 수 있도록 만들었습니다.
  • 7. 프로젝트 소개 Attendee 1-2. UI / UX 출석 진행 화면 카카오톡 공유 화면Excel 파일 다운로드 지원
  • 9. AWS Service 소개 Attendee 2-1. 서비스 동작 방식 AWS Cloud Availability Zone – 2a VPC WebServer Public WebServer Public Database Private Amazon EC2 Auto Scaling Availability Zone – 2c Auto Scaling group Amazon RDS (Multi AZ) Instance Spot InstanceSpot Instance Amazon Simple Email Service Seoul Region US-EAST- 1 Region Elastic Beanstalk container S3 Bucket CloudWatch Amazon WorkMail
  • 10. Attendee 2-2. Elastic Beanstalk AWS Service 소개 AWS Elastic Beanstalk는 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스입니다. 코드를 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모 니터링에 이르기까지 배포를 자동으로 처리합니다. Elastic Beanstalk는 추가 비용 없이 애플리케이션을 저장 및 실 행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 됩 니다.
  • 11. Attendee 2-3. Simple Email Service AWS Service 소개 애플리케이션 개발자가 마케팅, 알림 및 트랜잭션 이메일을 발송하는 데 도움이 되도록 설계된 “클라우드 기반 이메일 발송 서비스” 입니다. https://aws.amazon.com/ko/ses/
  • 12. Attendee 2-4. Work Mail AWS Service 소개 안전한 관리형 비즈니스 이메일 및 달력 서비스입니다. 사용자에게 원하는 클라이언트 애플리케이션을 사용하거나 웹 브라우저를 통해 직접 이메일, 연락처 및 달 력에 원활하게 액세스할 수 있는 기능을 제공합니다. https://aws.amazon.com/ko/workmail/?nc2=type_a
  • 13. Attendee 2-4. Work Mail AWS Service 소개 Attendee 서비스를 WorkMail로 관리하여 쉽게 서비스에 대해 문제해결 및 알림을 보낼 수 있습니다.
  • 15. Design Attendee 3-1. ER Data Model Jpa를 통한 Member와 Activity 양방향 연결 // Activity 와 User 단방향 연결
  • 16. Design Attendee 3-2. Use Case Diagram Member 추가, 삭제, 종료, 시작 다운로드, 공유 User 출석
  • 19. Programming Attendee 4-1. SpringToolSuite4 이용한 개발 과정 Package ml.attendee = AppApplication.class aws.ses = 메일 전송과 내용 처리 controller = 웹 컨트롤러 domain = Entity 정의 encode = 인코딩용 class repository = JPA 를 위한 DB repository security = SpringSecurity service = Transaction service
  • 20. Programming Attendee 4-1. SpringToolSuite4 이용한 개발 과정 Resource Spring-Thymeleaf 를 통한 레이아웃 형 html 작성 Static에 css, js , img 가 있다. Application.properties에 설정파일 내용 저장
  • 21. Programming Attendee 4-1. SpringToolSuite4 이용한 개발 과정 Member의 비밀번호 설정 Bcrypt 암호화 Bcrypt 암호는 복호화가 어려워 관리자 또한 비밀번호를 찾을 수 없어 비밀번호 복구를 위한 Mail 서비스를 지원할 예정
  • 22. Programming 4-1. SpringToolSuite4 이용한 개발 과정 Excel 파일 만드는 과정 Apache poi를 통해 만들어서 Microsoft Excel 등에서 사용할 수 있도록 사용자에게 제공한다.
  • 23. Programming 4-1. SpringToolSuite4 이용한 개발 과정 AWS SES(Simple Email Service) 서비스 연동과정 AWS 의 Credential을 얻는 부분이 골치였다. https://djunnni.gitbook.io/springboot/2019-12-01
  • 25. Deploy Attendee 5-1. ElasticBeanstalk을 통한 배포 Aws 배포 과정 인스턴스 보안 그룹 설정(Attendee-WebServer)
  • 26. Deploy Attendee 5-1. ElasticBeanstalk을 통한 배포 AutoScaling 설정 인스턴스 1~3개 기본 온디멘드 1개 설정 인스턴스 설정 t2.micro 만
  • 27. Deploy Attendee 5-1. ElasticBeanstalk을 통한 배포 로드 밸런서 설정 Application Load Balancer 이용 80 포트 (Http)와 443 포트(Https)를 설정 가상 머신 키페어 설정
  • 28. Deploy Attendee 5-1. ElasticBeanstalk을 통한 배포 VPC 가용 영역 서브넷 설정 2a, 2c 2개의 가용영역에서 동작 인스턴스 설정 WebServer 2개 설정
  • 30. Deploy Attendee 5-1. ElasticBeanstalk을 통한 배포 오류 발생 502 에러 뒤에서 설명
  • 31. Deploy Attendee 5-2. 배포 중 발생한 문제점과 해결방법 1. 초기 Time zone 이 GMT 로 되어 있어 한국과 9시간 차이가 났다. ( DB에서도 시간차 발생 ) 해결방법 SpringBoot로 배포할 시 timezone에 대한 Setting을 아래처럼 하면 됨. 1) src/main/ebxtensions 만들기 2) pom.xml build에서 maven-war-plugin 추가 설정 3) 01-timezone.config를 다음과 같이 작성한다. 4) Maven project Update를 한다. https://djunnni.gitbook.io/springboot/2019-12-05
  • 32. Deploy 5-2. 배포 중 발생한 문제점과 해결방법 2. Port에 대한 Proxy 문제가 스프링 부트에 존재했다. ElasticBeanstalk에서 SpringBoot는 AWS 로드 밸런서가 5000번으로 수신 대기 할 것으로 예상 단순 배포시에는 문제가 없지만, AutoScaling을 통해 하려고 하면 위 같은 문제가 발생
  • 33. Deploy 5-2. 배포 중 발생한 문제점과 해결방법 Ebextensions에서 두개의 파일을 추가 했다. 1. 80 포트로 접근하면 자동으로 8080로 연결되게 끔 2. 5000 포트로 접근하면 자동으로 8080로 연결되게 끔 당연히 WebServer 보안그룹에서 8080번과 5000번을 열어두었다.
  • 34. Deploy 배포 성공 ( Auto Scaling은 뒤에 Testing에서 설명합니다. ) 
  • 35. Deploy But 오토스케일 테스트를 진행하면 502 에러가 계속 발생한다… Nginx로 서비스를 구축하고 업로드 했더니 정상적으로 작동했다. Nginx-proxy.config Nginx.conf에서 참고할 부분만 발췌
  • 37. Attendee Testing 6-1. Google Search Console Mobile Test Desktop 연결 테스트 0.5 초 (100점) Mobile 연결 테스트 1.7 초 (99점)
  • 38. Attendee Testing 6-2. Apache AB Test 각각 –c –t –n의 값을 바꿔가면서 테스트를 진행한 결과 양호하다.
  • 39. Attendee Testing 6-3. Auto Scaling Test Auto Scaling 정책은 학교에서 TargetResponseTime으로 했지만 본인의 경우 classic-load-balance 이므로 Latency로 진행하였음
  • 40. Attendee Testing 6-3. Auto Scaling Test Auto Scaling 전략을 써보려고 했는데 그보다 프록시 서버 성능에 대해 알게 된 것 같다. Nginx가 Apache 보다 더 성능 면에서 깔끔하다?
  • 41. Testing 6-3. Auto Scaling Test 혹시나 fail인데 거짓말 하는 건 아닌지 살펴봤는데 정상이다. 그리고 apache2.4와 비교하면 nginx가 튜닝만 잘하면 더 좋을것 같다 Nginx Apache 2.4
  • 42. Testing 6-3. Auto Scaling Test 앞의 결과에 따른 Auto Scaling 개수 변화 (1~3개로 제한 걸어둠)
  • 44. Process Document Attendee 7-1. Gitbook SpringBoot 개발에 대해 "모두가 알았으면 좋을 점 + 문제해 결 방법 “ Gitbook으로 정리 https://djunnni.gitbook.io/springboot/
  • 45. Process Document Attendee 7-2. Github 개발과정에 대한 일지와 코드를 올린 Repository JPA + Hibernate를 사용하기에 누구나 Fork 해서 자신만의 출석부를 재구축할 수 있다. https://github.com/Djunnni/Attendee