brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Sep 03. 2022

16탄-4. 기술 키워드로 알아보는 AWS


Developer Specialist SA


<1> 현대적 애플리케이션

<2> 애플리케이션 체크 리스트

<3> 실습 목표

<4>  MVP 만들기

<5> 단계 1 : 프런트엔드 호스팅?

<6> 단계 2 : 서비스 생성

<7> 단계 3 : 애플리케이션 배포 자동화

<8> 단계 4 :  데이터 추가

<9> 단계 5 :  사용자 관리 추가, API   기능 추가

<10> 단계 6 :  사용자 행동 분석

<11> 실습



<1>  현대적 애플리케이션


애플리케이션?

신속하게 확장

글로벌 가용성 보장

페타, 엑사 수준의 데이터 관리

밀리초 단위 응답


비즈니스?

빠른 속도

빠르고 안정하게 

위험과 비용 감소

비즈니스에서 경쟁 우위 선점



<2> 애플리케이션 체크 리스트


CI/CD로 신속하게 출시

코드를 사용하여 재활용

서버리스 기술로 로직에 집중 - 간소화

마이크로 서비스로 유연하게 대처

모니터링을 통해 통찰력 확보- 가시성 확보



<3> 실습 목표


https://www.mythicalmysfits.com/


어떤 요구사항?

어떤 기능?

어떤 서비스 및 도구?

어떻게 활용?



<4>  MVP 만들기


1

3가지?

개발환경 구성 

정정 웹 호스트 구성

코드형 인프라를 통해 코드화, 자동화


2

자동화 2가지?

인프라 구성 자동화

애플리케이션 배포 자동화


3

AWS 코드형 인프라 2 가지?

클라우드 포메이션  - AWS 제공하는 포맷 사용

CDK -  개발자가 익숙한 프로그래밍 언어로 사용하여 인프라 룰 구성, 파이썬, 자바 등 지원


4

CDK 앱 개발 워크 플로?

cdk init

npm run build

cdk synth

cdk diff

cdk deploy



<5>  단계 1 : 프런트엔드 호스팅?


1

CDN

S3 사용


2

s3를 정적 홍페이지로 만들기

사용자는 cloudformation 접속하도록 하고 , S3를  오리진으로 한다.


3

클라우드 기반 개방을 위한 IDE




<6> 단계 2 : 서비스 생성


1

실제로 기능이 동작하도록 백엔드 추가


2

백엔드 서비스 구성 방법 3가지?

EC2

컨테이너

서버리스



3

컨테이너 서비스?

ECS , EKS


EC2 사용?   AWS가 관리하는 Fargate사용( ECS, EKS)


이미지 관리를 위해서는 ECR 사용


4

 Fargate사용? 

서버리스를 사용

애플리케이션을 컨테이너로 만들고, ECS에 배포, Fargate로 동작하도록 설정


5

NLB 사용함




<7> 단계 3 : 애플리케이션 배포 자동화


1

소프트웨어 릴리즈 단계?

소스, 빌드, 테스트, 디플로이, 모니터링

 AWS CodeCommit , AWS CodeBuild, AWS CodeBuild+trird party + AWS CodeDeploy , AWS X-Ray/ Amazon CloudWatch

AWS CodePipeline - 파이프라인 모델링


2

Cloud9에서 코드 수정 - 코드 커밋 - ECR에 push - Codepileline - deploy



<8> 단계 4 :  데이터 추가


1

데이터 베이스

https://www.youtube.com/watch?v=K9KgiDRGXpc


2

RDS  또는 NoSQL  중 선택


3

10ms 이내 응답

AWS DynamoDB 사용

파티션 키나 세컨더리 인덱스 잘 사용 필요


4

파 게이트에서  데이터 베이스 접근해 사용



<9> 단계 5 :  사용자 관리 추가, API   기능 추가


1

미등록 사용자에 대한 접근 제한


2

Amazon Cognito   사용자 풀을 생성


3

API Gateway 

API를 정의하고 백엔드를 연결 지은 후 스테이지에 배포



4

동작?

코그니토에 사용자 등록

사용자는 API Gateway 호출 ----- 로드 밸런서 ---- Fatgate 애플리케이션 사용





<10> 단계 6 :  사용자 행동 분석


1

AWS Kinesis Data Firehose

실시간으로 데이터 전송받아 일정기간 저장


2

동작?

사용자는 API GW 접속 -- 사용자 클릭 데이터는 키네시스로 전송 , 람다로 처리 ---- S3 버킷에 저장됨- 데이터 레이크 구축 




<11> 실습


1

https://github.com/kpiljoong/aws-modern-application-workshop


2

실습 자습서

https://aws.amazon.com/build-modern-app




다음 과정

https://brunch.co.kr/@topasvga/2685






https://brunch.co.kr/@topasvga/2678


감사합니다.










브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari