Dutch Pay Service에서 사용하기 위한 스킬셋 1(22일차)


1. AWS Amplify란 무엇입니까?

  • 신속한 구성 + 빌드 + 배포 + 운영까지 모든 모바일/웹 애플리케이션 수명 주기를 통합하여 한 곳에서 관리하는 AWS에서 구축한 통합 풀스택 개발 솔루션 서비스입니다.

2. 둘러보기

  • 관리자 UI 제공
    • 앱 설정 메뉴
      • 도메인 관리 페이지
      • 웹 앱 및 앱을 빌드할 때 환경 변수 설정
      • 접근 권한 설정
      • 서비스 모니터링
      • 배포 모니터링
  • 지점을 연결
    • 특정에 대한 Github 링크 나뭇가지푸시가 완료되거나 새로운 커밋이 업로드되면 배포된 버전의 빌드, 배포 및 검증이 자동으로 수행됩니다.

  • AWS 서비스와의 통합은 쉽습니다.

    • 인증(Cognito 서비스 연동) – 로그인, 회원가입, 추가인증 등을 지원하는 서비스
    • 서비스 모니터링/로깅(CloudWatch 서비스 연동)
    • 데이터베이스(DynamoDB, Aurora, GraphQL 지원)
    • 앱 푸시 알림(PinPoint 서비스 연동)
  • 가장 큰 장점은 CLI(Command Line Interface)로 많은 일을 할 수 있다는 것입니다.

    • 프론트엔드 프로젝트 초기 설정(React, Vue, Angular, Next.js 등 지원)
    • 백엔드 프로젝트 설정(node.js 지원)
      • DB 스키마 설정
        • 잠글지 여부
        • 어떤 DB를 사용해야 하는지
        • 계획 등을 설정하는 방법을 문의하십시오.
      • 기본 RESTful API 코드셋으로 제공
      • 이미 DB 연동 완료
    • 분포
      • 하나의 명령으로 배포
    • 웹 호스팅 추가
      • 별도의 웹 서버 설정이 필요하지 않습니다.

      • 단 하나의 명령으로 호스팅을 추가할 수 있습니다.

      • AWS는 백엔드 웹 서버 관리를 담당합니다.

  • 서비스 제공
    • 디플로이먼트 모니터링과 로깅이 잘 되어 있어서 디플로이먼트가 실패하더라도 실패한 이유를 쉽게 디버깅할 수 있습니다.

      • 관리 UI에서 사용 가능
    • Github에 연동할 수 있기 때문에 메인 브랜치로 push하여 배포 프로세스를 시작할 수 있습니다.

  • 프런트엔드 및 백엔드 코드를 하나의 저장소에서 관리할 수 있습니다.

    • 그래도 백엔드 및 프런트엔드 배포를 분리할 수 있습니다.

  • Figma 디자인 도구에 연결함으로써 Figma의 디자이너는 작업한 구성 요소를 React 구성 요소로 전환할 수 있습니다.

  • AWS 기반 CloudFormation으로 인프라 관리
    • 코드형 인프라 서비스의 일종
      • 코드형 인프라란 무엇입니까?
        • 즉, 서비스 운영에 필요한 인프라 자원(서버, 데이터베이스 등)이 인코딩되어 있음을 의미합니다.

        • 각 배포에 대해 배포를 중개하는 서비스는 파일을 읽고 적절한 코드에 따라 인프라를 구성합니다.

    • AWS 리소스 관리를 위한 템플릿 파일
// 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

Fast Campus(직원 교육)

프로그래밍, 비디오 편집, UX/UI, 마케팅, 데이터 분석, Excel 강의, The RED, 정부 자금 지원, 기업 교육 및 서비스 제공.

fastcampus.co.kr