why not
Dutch pay 서비스에서 이용할 기술셋 1 (22일차) 본문
<AWS Amplify>
1. AWS Amplify란?
- 모바일/웹 어플리케이션을 빠르게 구성+빌드+배포+운영까지 서비스의 모든 라이프사이클을 한 곳에서 관리할 수 있도록 통합해둔 AWS에서 만든 풀스택 개발 통합 솔루션 서비스
2. 둘러보기
- Admin UI 제공
- App setting 메뉴
- 도메인 관리 페이지
- 웹앱과 앱을 빌딩할 때 환경 변수 설정
- 접근 권한자 설정
- 서비스 모니터링
- 배포 모니터링
- App setting 메뉴
- Connect branch
- 깃허브가 연결 된 특정 branch에 push가 되거나, 새로운 커밋이 올라오게 되면 빌드, 배포 및 배포된 버젼을 검증하는 것을 자동으로 수행함
- AWS 서비스와의 연동이 간편하다.
- 인증(Cognito서비스와 연동) - 로그인, 회원가입, 추가 인증 등을 지원하는 서비스
- 서비스 모니터링/로깅(CloudWatch 서비스와 연동)
- 데이터베이스(DynamoDB, Aurora, GraphQL 지원)
- 앱 푸시 알림(PinPoint서비스와 연동)
- CLI(Command Line Interface)으로 할 수 있는 것들이 매우 많다는 것이 큰 장점이다.
- 프론트엔드 초기 프로젝트 셋업 (React, Vue, Angular, Next.js 등을 지원함)
- 백엔드 프로젝트 셋업 (node.js 지원함)
- DB 스키마 설정
- 연동 할 지
- 어떤 DB 사용할 건지
- 스키마 설정 어떻게 할 지 등등 물어봄
- RESTful API 기본 코드셋으로 제공함
- DB와의 연동도 이미 되어 있음
- DB 스키마 설정
- 배포
- 커맨드 하나면 배포 완료
- 웹 호스팅 추가
- 별도로 웹 서버 셋팅을 요구하지 않는다.
- 커맨드 하나면 호스팅 추가가 가능하다.
- 뒷 단의 웹 서버 관리는 AWS가 알아서 해준다.
- 서비스 배포
- 배포 모니터링, 로깅이 잘 되어있어, 배포가 실패할 경우 왜 실패 했는지 디버깅 하기 용이하다.
- Admin UI에서 확인 가능
- Github과 연동할 수 있어, main 브랜치에 푸시하는 것으로 배포 프로세스 시작이 가능하다.
- 배포 모니터링, 로깅이 잘 되어있어, 배포가 실패할 경우 왜 실패 했는지 디버깅 하기 용이하다.
- 프론트엔드와 백엔드 코드를 한 레포지터리 내에서 관리 가능하다.
- 그럼에도 백엔드와 프론트엔드의 배포를 분리해서도 가능
- 디자인 툴 Figma와 연동하여 Figma 내 디자이너들이 작업한 컴포넌트를 리액트 컴포넌트화 할 수 있음
- AWS가 제공하는 CloudFormation을 이용한 인프라 관리
- Infrastructure as code 서비스의 한 종류
- Infrastructure as code란?
- 한 서비스를 운영하기 위해 필요한 인프라 리소스(서버, 데이터베이스 등)을 코드화 해놓은 것을 의미
- 매 배포시 마다 배포를 중개하는 서비스에서 해당 파일을 읽어들여 해당 코드 대로 인프라를 구성함
- Infrastructure as code란?
- AWS resource를 관리하기 위한 template file
- Infrastructure as code 서비스의 한 종류
// template file 예시
{
"Description": "DynamoDB resource",
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"partitionKeyName": {
"Type": "String"
},
"partitionKeyType": {
"Type": "String"
},
"env": {
"Type": "String"
},
"tableName": {
"Type": "String"
}
},
"Resources": {
"DynamoDBTable": {
"Type": "AWS::DynamoDB::Table",
"Properties": {
"KeySchema": [
{
"AttributeName": "guid",
"KeyType": "HASH"
}
],
"AttributeDefinitions": [
{
"AttributeName": "guid",
"AttributeType": "S"
}
],
"GlobalSecondaryIndexes": [],
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 5
},
"StreamSpecification": {
"StreamViewType": "NEW_IMAGE"
},
"TableName": {
"Fn::If": [
"ShouldNotCreateEnvResources",
{
"Ref": "tableName"
},
{
"Fn::Join": [
"",
[
{
"Ref": "tableName"
},
"-",
{
"Ref": "env"
}
]
]
}
]
}
}
}
},
"Outputs": {
"Name": {
"Value": {
"Ref": "DynamoDBTable"
}
},
"Arn": {
"Value": {
"Fn::GetAtt": [
"DynamoDBTable",
"Arn"
]
}
},
"StreamArn": {
"Value": {
"Fn::GetAtt": [
"DynamoDBTable",
"StreamArn"
]
}
},
"PartitionKeyName": {
"Value": {
"Ref": "partitionKeyName"
}
},
"PartitionKeyType": {
"Value": {
"Ref": "partitionKeyType"
}
},
"Region": {
"Value": {
"Ref": "AWS::Region"
}
}
}
}
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
'Today I Learn > 환급 챌린지' 카테고리의 다른 글
Dutch pay 서비스에서 이용할 기술셋 3 (24일차) (2) | 2023.03.15 |
---|---|
Dutch pay 서비스에서 이용할 기술셋 2 (23일차) (0) | 2023.03.14 |
기술셋 선정하기 2 (21일차) (0) | 2023.03.12 |
기술셋 선정하기 1 (20일차) (0) | 2023.03.11 |
기술셋을 선정하는 기준 (19일차) (0) | 2023.03.10 |