■■■S3 버킷 생성■■■
Redirect HTTP to HTTPS / GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE /
Caching Optimized / 액세스 모두 차단 / 정적 웹 호스팅 활성화
버킷 정책은 CF 만든 후 원본액세스를 활용 하여 넣어주기
■■■CloudFront■■■
CloudFront 생성 (원본액세스 권장으로 하여 생성)
(도메인과 SSL 은 없을 시 새로 발급 받기 )
정적 웹 사이트 시 오류페이지에 403,404 /index.html 넣어주기
■■■Route53■■■
Route53 으로 도메인 별 CF 와 연결 시켜주기
A레코드,Cname
■■■접속 테스트■■■
aws s3 cp [올릴파일 위치] [S3버킷] --profile [접근할 계정 미리 세팅해두기]
■■■Git■■■
Git repo 생성 및 Secrets에 access key 정보 넣기
(main , prd , stg 각각 생성 하여 최대한 main 접근 안하고 merge 로만)
.git 에 yml 파일 넣어서 실행
name: stg-deploy-to-s3
on:
push:
branches:
- stg
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code.
uses: actions/checkout@v2
- name: Setup Python for AWS CLI
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Install AWS CLI
run: pip3 install awscli --upgrade --user
- name: Cache node modules
uses: actions/cache@v1
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-
${{ runner.OS }}-
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build_stg
- name: Deploy to s3 and Cloudfront distribution
env:
AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY_ID }} #secrets 미리 생성 해두기
AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS_KEY }}
run: |
aws s3 cp \
--recursive \
--region ap-northeast-2 \
_stage s3://[S3 버킷 주소]
aws cloudfront create-invalidation --distribution-id [CF배포ID] --paths "/*" #캐시 무효화 잠시 안쓰고 배포 뒤 다시 무효화
IDC 서버 일 경우
- name: Deploy to IDC
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST IP }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
source: _production/ #소스 위치 적기
target: "/home/[배포할 위치]"
'AWS' 카테고리의 다른 글
AWS 도메인 오픈 순서 (0) | 2023.03.16 |
---|---|
AWS MSK+Docker+Prometheus+Grafana(테스트) (0) | 2023.03.06 |
AWS MSK 구축 (0) | 2023.02.28 |
AWS Route53-CloudFront-S3 연동 (0) | 2023.02.17 |
AWS EC2,RDS 스케쥴 가동(자동 시작/종료) (0) | 2023.02.15 |