11월 17일. 오늘의 배움 (삽질)
오늘의 포스팅은 제가 성공한 방법에 대한 메모입니다. 비교적 자세한 설명이 부족할 수 있습니다. 😥
Gabia domain이 있고, AWS 계정이 있고, Github repo가 만들어져 있다는 걸 전제로 시작합니다.
이 방식은 AWS S3 정적 호스팅을 이용한 방식이며 http를 지원합니다. https 배포가 필요하다면 "AWS EC2 + ACM" 또는 "AWS Amplify"를 이용해야합니다.
AWS에서 외부 Domain을 사용하기 위해서는 AWS의 DNS 서비스인 'Route 53'에 등록이 필요하며, Route 53의 DNS서버를 Gabia DNS 서버를 대체하여 사용합니다.
domain_name.dev
는 사용할 Domain으로 변경
AWS 'S3' > '버킷 만들기' > 아래와 같이 설정 후 '버킷 만들기'
AWS 'S3' > 생성한 버킷 click > '권한' > 버킷 정책 > 편집
{
"Version": "2012-10-17",
"Id": "Policy1668671586744",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::domain_name.dev/*"
}
]
}
AWS 'S3' > 생성한 버킷 click > '속성' > '정적 웹 사이트 호스팅 편집' > 활성화
이미 같은 설정으로 생성된 사용자가 있다면 생략해도 됩니다.
AWS 'IAM' > '사용자' > '사용자 추가'
추가 시 받을 수 있는 '액세스 키', '비밀 액세스 키' 메모
원격 repo > Actions > 'set up a workflow yourself'
name: Node.js Package
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
env:
CI: false
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: yarn
- name: Build
run: yarn build
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} # AWS 사용자 ACCESS KEY
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # AWS 사용자 SECRET ACCESS KEY
aws-region: ap-southeast-2
- name: Deploy static site to S3 bucket
run: aws s3 sync ./build s3://${{ secrets.S3_BUCKET }} --delete # AWS BUCKET NAME
.yml 파일의 작성 방식 설명은 생략하겠습니다.
위 예제에서 사용된 action secret key 는 Git repo > Settings > Secrets 에서 등록할 수 있습니다!
📌 참조