SlideShare a Scribd company logo
AWS S3, SPA, 그리고 Vue.JS
26. Nov. 2018
addnull@hbsmith.io
(W3C HTML5 Conference 2018)
HBSmith는 어떻게 Frontend를 Serverless로 운영하는가
1
발표자 소개
• 한종원
• Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑.
• 2012년 석사 학위를 마치고, startup을 시작
• '의미가 있는 일을, 올바르게 하고 싶다.’
• 경력
• (현) DevOps 전문 스타트업 ‘HB Smith’ 대표
• 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당
• Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병)
• NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원)
2
https://www.linkedin.com/in/addnull/
https://hbsmith.io
Contents
• 발표 대상

- Web client 운영에 필요한 서버, 인프라 관리 “비용”을 최소화하고 싶은 분
• 발표 목차

- 왜 Serverless인가?

- 기술 스택

- Troubleshooting
3
(예상 발표 시간: 30분)
왜 Serverless인가?
4
왜 Serverless인가?
• Business Scenario 장애 모니터링 ‘hbsmith’
5
왜 Serverless인가?
• 서비스 전체 AWS Infra overview
6
왜 Serverless인가?
• Web frontend 개발, 운영에 필요한 내용
7
IDE
Web server
Monitoring
Linux
HA
Failover
Logging
Backup
HTML
Web browser
Javascript
CSS
Debugging
(더 자세한 내용은 아래 link 참고)
https://github.com/kamranahmedse/developer-roadmap
왜 Serverless인가?
8
왜 Serverless인가?
• Web frontend 개발, 운영에 필요한 내용
9
IDE
Web server
Monitoring
Linux
HA
Failover
Logging
Backup
HTML
Web browser
Javascript
CSS
Debugging
Serverless
기술 스택
10
기술 스택
• Overview
11
SPA
기술 스택: SPA
• SPA: Single Page Application
• HTML 기반 Web Application
• index.html 단일 페이지에서 동적으로

DOM을 변경하여 contents를 보여주는 형태
• 즉, page reloading이 없기 때문에 browser 환경에서

좀 더 자연스러운 UX를 제공
• 최근 Javascript framework에서 대부분 지원
• 예시: Gmail, Google Maps, Facebook, GitHub
12
SPA
기술 스택: SPA
• 장점
• 빠름. HTML, CSS, script는 처음 loading에만 가져오고

그 이후에는 data만 뒤에서 loading.
• 모든 page rendering을 front 쪽에서 처리할 수 있음.
• Front 쪽에서 network monitoring과 debuging 하기 쉬움.
• Mobile web application 제작시에 기존의 Front code 재활용하기 쉬움.
• 미리 data를 cache 할 수 있기 때문에, offline mode 지원도 가능함.
13
즉, 서버의 page rendering을 고려할 필요가 없으므로

serverless 같은 환경에서도 적용이 용이.
기술 스택: SPA
• 단점
• 다소 무거운 framework loading에 따른 속도 저하
• Javascript가 비활성화된 browser 사용자를 위한 대비책 필요
• 이전의 전통적인 방식의 web application에 비해서 보안이 취약

(Cross-Site Scripting (XSS) 을 이용한 공격자가

다른 공격 대상자에게 client-side script injection이 가능함)
• Memory leak, memory leak 그리고 memory leak !!!
•
14
기술 스택: S3
• S3: Simple Storage Service
• Cloud object storage (Object = File + Metadata)
• 무제한 공간
• 저장된 파일 개수, 용량, 그리고 동시에 접속자 수에 상관없이

늘 동일한 performance(파일 검색, download 시간) 보장
• High availability (기본값 3 replicas)
• Static website hosting 지원





15
즉, 정적 contents(CSS, JS, image 등)으로만 만들어진 SPA를 이용해서
바로 website 서비스 제공 가능함
기술 스택: S3 Static Website Hosting 설정
1. S3에 접속
2. 적당한 이름의 Bucket(예: “example.com") 을 생성하고,

bucket policy에 ‘public read access’ 권한 설정 추가
3. Bucket 을 선택하고, [Properties] 에서

[Static website hosting] 선택
4. [Index document] 로 “index.html”을 입력
5. 저장
6. Bucket에 SPA website contents 업로드
7. ‘Endpoint’ 주소로 접속해서 SPA 정상 동작 확인



16
https://console.aws.amazon.com/s3/
기술 스택: CloudFront + ACM + Route53
• CloudFront: CDN(content delivery network)
• ACM: AWS에서 무료로 제공하는 SSL 인증서 사용 가능
• Route53: DNS 에 등록해서 customer domain으로 연동 가능
• CDN의 Origin을 S3으로 지정
17
즉, ‘https://hbsmith.io'로 접속할 경우

CloudFront에 caching된 S3 의 SPA를 가져오게 됨
기술 스택: SPA Provisioning on S3
1. git clone

SPA source code / config / provisioning code
2. npm package(vue 등) 설치
3. npm build
4. Upload SPA files to S3
18
Troubleshooting
19
‘누구나 그럴싸한 계획을 가지고 있다.’
Troubleshooting
20
마이크 타이슨: ‘누구나 그럴싸한 계획을 가지고 있다. 얼굴에 한방 쳐맞기 전까지는.’
Troubleshooting: Eventual Consistency
• S3는 HA를 위해 데이터를 분산 복제 (기본값 3 replicas)
21
이전에 존재한 file overwrite 할 경우 file의 모든 replica가 동기화 되기 전엔
이전 file을 읽어올수도 있음 (!)
Troubleshooting: Eventual Consistency 해결
• S3에 새로 추가된 file은 분산 복제가 끝나기 전에 읽어올 수 없음

(Read after Write Consistency 속성)
• SPA에 file 이름 끝에 timestamp 또는

hash 값(MD5, SHA1, ...)을 붙여서 S3 입장에서

계속 새로 추가된 file처럼 인식하게 함
• ‘index.html’의 경우는 CloudFront(CDN)에서

cache purge/invalidation해서 강제로

최신 ‘index.html’을 읽어오도록 함
22
cache breaker
Troubleshooting: Hashbang (#!)
• ‘vue-router’ version 2 (2016년 release)부터 hashbang을 지원하지 않음
• hashbang을 이용한 SPA routing
23
https://github.com/vuejs/vue-router/releases/tag/v2.0.0-beta.1
(예시) https://hbsmith.io/#!/path/to/resource/
https://hbsmith.io/index.html 에
‘/path/to/resource/‘를 전달
Troubleshooting: Hashbang (#!) 해결
• CloudFront의 ‘Custom Error Response’ 설정
24
즉, hashbang 없이도 router 가능
(예시) https://hbsmith.io/path/to/resource/
https://hbsmith.io/index.html 에
‘/path/to/resource/‘를 전달
Troubleshooting: SPA Provisioning on S3 (최종)
1. git clone

SPA source code / config / provisioning code
2. npm package(vue 등) 설치
3. npm build
4. Upload SPA files to S3 temp bucket
5. Delete all files in S3 deploy bucket
6. Sync between S3 temp and deploy bucket
7. Purge CloudFront(CDN) cache for ‘index.html’
25
cache breaker
Wrap-Up
26
HBSmith는 어떻게 Frontend를 Serverless로 운영하는가
Contents
• 발표 목차

- 왜 Serverless인가?





- 기술 스택







- Troubleshooting
27
Serverless
Eventual Consistency
Hashbang (#!)
감사합니다
addnull@hbsmith.io
010-9166-6855
28

More Related Content

PPTX
5. 솔루션 카달로그
PDF
Awskrug serverless slideshare
PDF
Crawling with AWS Lambda
PPTX
마이크로서비스 아키텍처로 개발하기
PDF
Amazon MQ 쉽게시작하는 메시지 브로커 서비스 - 트랙1, Community Day 2018 re:Invent 특집
PDF
Spring boot + java 에코시스템 #1
PDF
마이크로서비스 아키텍처 도입의 허와 실 - feat. 문제는 도메인이야
PDF
AWS Partner Techshift - B2B IT SaaS 기업은 왜 AWS와 함께 하는가? (샌드버드 윤진현 팀장)
5. 솔루션 카달로그
Awskrug serverless slideshare
Crawling with AWS Lambda
마이크로서비스 아키텍처로 개발하기
Amazon MQ 쉽게시작하는 메시지 브로커 서비스 - 트랙1, Community Day 2018 re:Invent 특집
Spring boot + java 에코시스템 #1
마이크로서비스 아키텍처 도입의 허와 실 - feat. 문제는 도메인이야
AWS Partner Techshift - B2B IT SaaS 기업은 왜 AWS와 함께 하는가? (샌드버드 윤진현 팀장)

What's hot (20)

PDF
람다아키텍처
PDF
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
PDF
[TD 2015] Microsoft Azure IaaS v2(최정현)
PDF
Aws발표자료 final
PPTX
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
PPTX
빠르게훓어보는 Node.js와 Vert.x
PPTX
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
PDF
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
PPTX
Social game and windows azure platform (final)
PDF
[2017 AWS Startup Day] 인프라 관점에서 접근하는 리디스토리 개발기
PPTX
Micro Service Architecture의 이해
PDF
AWS S3를 이용한 효과적인 SPA 배포
PDF
SQL Azure 실무 도입하기
PDF
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
PDF
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
PDF
Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)
PPTX
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
PPTX
MSA를 이용해 구현하는 고가용/고확장성 서비스
PDF
기업 IT 인프라 환경 최적화를 위한 하이브리드 클라우드 적용 방안 - AWS Summit Seoul 2017
PDF
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
람다아키텍처
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[TD 2015] Microsoft Azure IaaS v2(최정현)
Aws발표자료 final
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
빠르게훓어보는 Node.js와 Vert.x
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
Social game and windows azure platform (final)
[2017 AWS Startup Day] 인프라 관점에서 접근하는 리디스토리 개발기
Micro Service Architecture의 이해
AWS S3를 이용한 효과적인 SPA 배포
SQL Azure 실무 도입하기
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
MSA를 이용해 구현하는 고가용/고확장성 서비스
기업 IT 인프라 환경 최적화를 위한 하이브리드 클라우드 적용 방안 - AWS Summit Seoul 2017
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
Ad

Similar to T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverless로 운영하는가 (20)

PDF
신입개발자가 스타트업에서 AWS로 어떻게든 살아가는 썰
PDF
서버학개론(백엔드 서버 개발자를 위한)
PDF
AWS 클라우드 이해하기-사례 중심으로 - 정민정 매니저:: AWS Cloud Track 1 Intro
PDF
찾아가는 AWS 세미나(구로,가산,판교) - AWS에서 작은 서비스 구현하기 (김필중 솔루션즈 아키텍트)
PDF
모두싸인의 AWS 성장기
PDF
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
PDF
Web and server
PPTX
Serverless Architecture - 김현민
PDF
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
PDF
Static Website Hosting with AWS :: Front-end Meetup
PDF
Serverless 101
PDF
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
PDF
텀 프로젝트에서 제품 프로젝트로 - 성준영님
PPTX
Single-page Application
PDF
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
PDF
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
PPTX
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
PDF
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
PDF
AWS Meetup 프리젠테이션.pdf
PDF
[3주차] 알파 유저를 위한 AWS 스터디
신입개발자가 스타트업에서 AWS로 어떻게든 살아가는 썰
서버학개론(백엔드 서버 개발자를 위한)
AWS 클라우드 이해하기-사례 중심으로 - 정민정 매니저:: AWS Cloud Track 1 Intro
찾아가는 AWS 세미나(구로,가산,판교) - AWS에서 작은 서비스 구현하기 (김필중 솔루션즈 아키텍트)
모두싸인의 AWS 성장기
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
Web and server
Serverless Architecture - 김현민
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
Static Website Hosting with AWS :: Front-end Meetup
Serverless 101
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
텀 프로젝트에서 제품 프로젝트로 - 성준영님
Single-page Application
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
AWS Meetup 프리젠테이션.pdf
[3주차] 알파 유저를 위한 AWS 스터디
Ad

More from 양재동 코드랩 (15)

PDF
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
PDF
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
PDF
T13_1_김건_오픈소스 컨트리뷰션 101
PDF
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
PPTX
[Codelab 2017] ReactJS 기초
PPTX
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
PPTX
[Codelab 2017] Docker 기초 및 활용 방안
PDF
[W3C HTML5 2016] Angular + ES6
PDF
[W3C HTML5 2016] Univeral Rendering
PDF
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
PDF
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
PDF
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
PDF
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
PDF
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
PDF
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_1_김건_오픈소스 컨트리뷰션 101
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
[Codelab 2017] ReactJS 기초
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Docker 기초 및 활용 방안
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js

T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverless로 운영하는가

  • 1. AWS S3, SPA, 그리고 Vue.JS 26. Nov. 2018 addnull@hbsmith.io (W3C HTML5 Conference 2018) HBSmith는 어떻게 Frontend를 Serverless로 운영하는가 1
  • 2. 발표자 소개 • 한종원 • Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑. • 2012년 석사 학위를 마치고, startup을 시작 • '의미가 있는 일을, 올바르게 하고 싶다.’ • 경력 • (현) DevOps 전문 스타트업 ‘HB Smith’ 대표 • 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당 • Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병) • NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원) 2 https://www.linkedin.com/in/addnull/ https://hbsmith.io
  • 3. Contents • 발표 대상
 - Web client 운영에 필요한 서버, 인프라 관리 “비용”을 최소화하고 싶은 분 • 발표 목차
 - 왜 Serverless인가?
 - 기술 스택
 - Troubleshooting 3 (예상 발표 시간: 30분)
  • 5. 왜 Serverless인가? • Business Scenario 장애 모니터링 ‘hbsmith’ 5
  • 6. 왜 Serverless인가? • 서비스 전체 AWS Infra overview 6
  • 7. 왜 Serverless인가? • Web frontend 개발, 운영에 필요한 내용 7 IDE Web server Monitoring Linux HA Failover Logging Backup HTML Web browser Javascript CSS Debugging (더 자세한 내용은 아래 link 참고) https://github.com/kamranahmedse/developer-roadmap
  • 9. 왜 Serverless인가? • Web frontend 개발, 운영에 필요한 내용 9 IDE Web server Monitoring Linux HA Failover Logging Backup HTML Web browser Javascript CSS Debugging Serverless
  • 12. 기술 스택: SPA • SPA: Single Page Application • HTML 기반 Web Application • index.html 단일 페이지에서 동적으로
 DOM을 변경하여 contents를 보여주는 형태 • 즉, page reloading이 없기 때문에 browser 환경에서
 좀 더 자연스러운 UX를 제공 • 최근 Javascript framework에서 대부분 지원 • 예시: Gmail, Google Maps, Facebook, GitHub 12 SPA
  • 13. 기술 스택: SPA • 장점 • 빠름. HTML, CSS, script는 처음 loading에만 가져오고
 그 이후에는 data만 뒤에서 loading. • 모든 page rendering을 front 쪽에서 처리할 수 있음. • Front 쪽에서 network monitoring과 debuging 하기 쉬움. • Mobile web application 제작시에 기존의 Front code 재활용하기 쉬움. • 미리 data를 cache 할 수 있기 때문에, offline mode 지원도 가능함. 13 즉, 서버의 page rendering을 고려할 필요가 없으므로
 serverless 같은 환경에서도 적용이 용이.
  • 14. 기술 스택: SPA • 단점 • 다소 무거운 framework loading에 따른 속도 저하 • Javascript가 비활성화된 browser 사용자를 위한 대비책 필요 • 이전의 전통적인 방식의 web application에 비해서 보안이 취약
 (Cross-Site Scripting (XSS) 을 이용한 공격자가
 다른 공격 대상자에게 client-side script injection이 가능함) • Memory leak, memory leak 그리고 memory leak !!! • 14
  • 15. 기술 스택: S3 • S3: Simple Storage Service • Cloud object storage (Object = File + Metadata) • 무제한 공간 • 저장된 파일 개수, 용량, 그리고 동시에 접속자 수에 상관없이
 늘 동일한 performance(파일 검색, download 시간) 보장 • High availability (기본값 3 replicas) • Static website hosting 지원
 
 
 15 즉, 정적 contents(CSS, JS, image 등)으로만 만들어진 SPA를 이용해서 바로 website 서비스 제공 가능함
  • 16. 기술 스택: S3 Static Website Hosting 설정 1. S3에 접속 2. 적당한 이름의 Bucket(예: “example.com") 을 생성하고,
 bucket policy에 ‘public read access’ 권한 설정 추가 3. Bucket 을 선택하고, [Properties] 에서
 [Static website hosting] 선택 4. [Index document] 로 “index.html”을 입력 5. 저장 6. Bucket에 SPA website contents 업로드 7. ‘Endpoint’ 주소로 접속해서 SPA 정상 동작 확인
 
 16 https://console.aws.amazon.com/s3/
  • 17. 기술 스택: CloudFront + ACM + Route53 • CloudFront: CDN(content delivery network) • ACM: AWS에서 무료로 제공하는 SSL 인증서 사용 가능 • Route53: DNS 에 등록해서 customer domain으로 연동 가능 • CDN의 Origin을 S3으로 지정 17 즉, ‘https://hbsmith.io'로 접속할 경우
 CloudFront에 caching된 S3 의 SPA를 가져오게 됨
  • 18. 기술 스택: SPA Provisioning on S3 1. git clone
 SPA source code / config / provisioning code 2. npm package(vue 등) 설치 3. npm build 4. Upload SPA files to S3 18
  • 20. Troubleshooting 20 마이크 타이슨: ‘누구나 그럴싸한 계획을 가지고 있다. 얼굴에 한방 쳐맞기 전까지는.’
  • 21. Troubleshooting: Eventual Consistency • S3는 HA를 위해 데이터를 분산 복제 (기본값 3 replicas) 21 이전에 존재한 file overwrite 할 경우 file의 모든 replica가 동기화 되기 전엔 이전 file을 읽어올수도 있음 (!)
  • 22. Troubleshooting: Eventual Consistency 해결 • S3에 새로 추가된 file은 분산 복제가 끝나기 전에 읽어올 수 없음
 (Read after Write Consistency 속성) • SPA에 file 이름 끝에 timestamp 또는
 hash 값(MD5, SHA1, ...)을 붙여서 S3 입장에서
 계속 새로 추가된 file처럼 인식하게 함 • ‘index.html’의 경우는 CloudFront(CDN)에서
 cache purge/invalidation해서 강제로
 최신 ‘index.html’을 읽어오도록 함 22 cache breaker
  • 23. Troubleshooting: Hashbang (#!) • ‘vue-router’ version 2 (2016년 release)부터 hashbang을 지원하지 않음 • hashbang을 이용한 SPA routing 23 https://github.com/vuejs/vue-router/releases/tag/v2.0.0-beta.1 (예시) https://hbsmith.io/#!/path/to/resource/ https://hbsmith.io/index.html 에 ‘/path/to/resource/‘를 전달
  • 24. Troubleshooting: Hashbang (#!) 해결 • CloudFront의 ‘Custom Error Response’ 설정 24 즉, hashbang 없이도 router 가능 (예시) https://hbsmith.io/path/to/resource/ https://hbsmith.io/index.html 에 ‘/path/to/resource/‘를 전달
  • 25. Troubleshooting: SPA Provisioning on S3 (최종) 1. git clone
 SPA source code / config / provisioning code 2. npm package(vue 등) 설치 3. npm build 4. Upload SPA files to S3 temp bucket 5. Delete all files in S3 deploy bucket 6. Sync between S3 temp and deploy bucket 7. Purge CloudFront(CDN) cache for ‘index.html’ 25 cache breaker
  • 26. Wrap-Up 26 HBSmith는 어떻게 Frontend를 Serverless로 운영하는가
  • 27. Contents • 발표 목차
 - 왜 Serverless인가?
 
 
 - 기술 스택
 
 
 
 - Troubleshooting 27 Serverless Eventual Consistency Hashbang (#!)