Amplify 기본 설치 및 앱 배포

Amplify 가이드북
이민석's avatar
Aug 19, 2024
Amplify 기본 설치 및 앱 배포

Amplify란?

Amplify는 여러 SSR*, SPA*, SSG*를 배포 가능한 서버리스 웹 앱 서비스입니다.
GitHub 등과 연동, 빌드 설정, 빌드 알림, 사용자 지정 도메인, 환경 변수, 모니터링 등의 기능을 지원합니다.

SSR* : Server Side Rendering로서 Next.js, Nuxt 등을 배포 가능
SPA* : Single Page Application로서 React, Angular 등을 배포 가능
SSG* : Static Site Generators로서 Gatsby, Hugo 등을 배포 가능

Amplify Architecture

Amplify는 특별한 지식 없이 다양한 프레임워크를 배포할 수 있습니다.
따라서 Amplify 뒤에서 어떤 Architecture로 배포되어 있는지 알 수 없습니다.
현재 이 부분은 리서치 중에 있습니다.

Amplify 배포하기

Amplify 배포는 AWS Amplify Console의 가이드 대로 손쉽게 배포할 수 있습니다.
다만 아래 몇 가지 주의사항이 존재합니다.

  1. 소스 코드 제공 업체 선택 시, 공용 GitHub 계정 선택할 것 - [Ref]

  2. 리포지터리 및 브런치 추가 시, 모노리포지토리 사용하지말 것 - [Ref]

  3. 앱 설정 시, 빌드 설정 / 고급 설정 꼼꼼히 설정할 것 - [Ref]

소스 코드 제공 업체 선택 시, 공용 계정 선택할 것

타사 소스 코드 제공 업체 선택 시, 반드시 공용 계정을 선택하는 것이 좋습니다.
만약 계정이 탈퇴하거나 권한이 축소될 경우 CI/CD가 작동하지 않을 수 있습니다.

리포지터리 및 브런치 추가 시, 모노리포지토리 사용하지말 것

A/B 배포, 작업 브런치 교체 등의 작업을 진행하기 위해서
Amplify 배포 시 내 앱은 모노 리포지토리임을 활성화하지 않도록 합니다.

앱 설정 시, 빌드 설정 / 고급 설정 꼼꼼히 설정할 것

앱 설정 단계에서 아래 설정값들을 반드시 꼼꼼히 설정하도록 합시다.

  • 빌드 설정

    • 내 사이트를 비밀번호로 보호 ⛳️
      테스트 빌드이거나 엑세스 제어가 필요한 경우 해당 옵션을 활성화합시다.

  • 고급 설정

    • 환경 변수 ⛳️
      민감하지 않은 환경 변수의 경우 여기에 기록하도록 합니다.
      단, API Key / Credential 등은 SSM Parameter Store, Secrets Manager 등의 시크릿 관리 솔루션과 통합하여 사용하여야 합니다.

    • 라이브 패키지 업데이트

      • 빌드 제한 시간 ⛳️
        Amplify의 최대 빌드 제한 시간은 2시간입니다.
        Amplify CI/CD는 때로 무한 Pending 상태에 빠지기 때문에, 해당 빌드 제한 시간을 15분 등으로 줄이도록 합니다.

      • 라이브 패키지 업데이트 ⛳️
        배포 및 장애 환경의 차이를 최소화 시키기 위해서 버전 정보를 명시합시다.
        - Node.js, Yarn, Next.js

사용자 지정 도메인 설정하는 법

AWS Route53 Hosted Zone이 있는 경우
[Amplify - 호스팅 - 사용자 지정 도메인]에서 [도메인 추가]을 사용할 수 있습니다.

만약 서브 도메인으로 배포를 하고 싶을 경우 아래와 같이 입력하면 됩니다.

만약 naver.com이라는 Route53 Hosted Zone이 있다면,
사용자 지정 도메인에 target.naver.com이라는 이름을 입력하여
배포한 Amplify Application으로 도메인을 연결할 수 있습니다.
 

이후 연결한 브런치와 도메인을 연결할 수 있습니다.

고급 사용 사례

Amplify의 다양한 고급 사용 사례에 대해서는 다음 문헌 참고해주세요.

Share article

Unchaptered