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에 대한 기본 지식은 Amplify 기본 설치 및 앱 배포을 참고해주세요.
환경 변수 관리
Amplify에도 환경 변수를 관리하는 기능이 존재합니다.
하지만 Amplify 환경 변수 기능은 아래와 같이 2가지 치명적인 단점이 존재합니다.
엑세스 제어 불가능 ⛳️
일부 중요한 환경 변수는 철저히 분리된 영역에 있어야 합니다.
이런 분리된 영역에 접근은 철저히 제어되어야 합니다.
Amplify Application의 환경 변수는 두 가지가 제공되지 않습니다.
누구나 변수를 보거나 수정할 수 있습니다.
환경 변수 관리 어려움 ⛳️
단일 환경변수 파일을 사용하지 않기 때문에 관리가 어렵습니다.
환경 변수 파일의 변경 로그가 남지 않습니다.
브런치가 많아질수록 환경변수를 보기가 어렵습니다.
환경 변수 솔루션 필요
별도의 환경 변수 솔루션을 검토할 필요가 있습니다.
AWS SSM Parameter Store나 Secrets Manager 등이 있습니다.
두 기능 모두 KMS를 통한 암호화 및 엑세스 제어가 가능하므로 중요한 것은 필요로 하는 기능과 비용입니다.
Amplify에서는 SSM Parameter Store 및 Secrets Manager 와의 강력한 통합 및 연결이 제공되지 않습니다. 따라서 무료로 사용이 가능한 AWS SSM Parameger Store를 사용하는 것이 합리적입니다.
KMS + SSM Paratmeter Store에 대한 기본 이해
작성이 필요합니다.
KMS 생성하기
작성이 필요합니다.
SSM Parameter Store 생성하기
작성이 필요합니다.
Amplify IAM Policy 수정하기
작성이 필요합니다.