오늘은 다소 짜증날 수도 있는 구현을 해보려고 한다.
어제 대충 회원가입/로그인 페이지 기틀을 짜두었다. 뭐 엄청난 디테일을 준 건 아니고 적당히 이쁘면 된다.
내가 UI/UX 디자인까지 다 하는게 아니기 때문에...
이 정도 해주면 나중에 UI/UX가 들어와도 수정 가능할 것이다. 이젠 백엔드 서버와 통신이 제대로 되기 때문에(네트워크 문제가 없다는 전제하에), 구현해야할 건 대략 3가지가 남았다.
1. App의 AuthContext.
2. HTTPS로 보안 챙기기
3. 배포하기.
인데... 흠. 앱 배포는 그렇다치는데, backend 배포를 해야지 android / ios 기종에서 테스트가 가능해지니까 빠르게 하는게 좋다.
이걸 제외하고도, 기획단에서 더 저장해달라고 부탁한 사항도 있기 때문에 빠르게 완성해야할 것 같다.
1번은 완벽하지는 않을지는 몰라도 일단 구현해두었다. stroage를 좀 더 보안이 좋은 녀석으로 바꿔두기만 한다면 문제 없을 것 같다. 쿠키도 제대로 쓰여지는 것 같다.
2번은 생각보다 디버깅 환경에서 오래 걸리지는 않아서 3번이랑 같이 해보고 있다.
일단은 이 쪽의 튜토리얼을 보고 조금씩 따라하고 있는 중이다.
현재까지 한일은
0. e2c 인스턴스 생성, 접근제어(ip), instance connect 제거
1. e2c role생성
2. codedeploy role생성
3. e2c 인스턴스의 iam role을 1.에서 만들었던 것으로 변경
4. codedeploy의 get started에서 application 생성
5. 생성 완료 화면에서 배포그룹을 추가로 생성
6. e2c 인스턴스에 접속해서 codedeploy agent 깔기. 다른 os라서 까는 법을 따로 찾았다.
중간에 안깔리는 애가 있을 텐데 이걸로 써주면 된다.
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
7. 해당 repo의 github action에 들어가서 set up workflow by yourself를 클릭한다.
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# 지정한 branch에서 push/pull_request 에 해당하는 command가 수행되면 이 workflow가 동작 합니다.
push:
branches: [ master ]
# 이부분은 위의 trigger가 없어도 수동으로 동작 할 수 있게끔 해주는 역할을 합니다.
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout release
uses: actions/checkout@v3
# 빌드 전 .env파일 생성
- name: Generate Environment Variables File for Production
#2.$를 통해 변수 할당
[redacted]
- name: Cache node modules
uses: actions/cache@v2
id: cache
with:
path: node_modules
key: npm-packages-${{ hashFiles('**/package-lock.json') }}
- name: Install Dependencies # 디펜던시 키가 없으면 디펜던시 인스톨
if: steps.cache.outputs.cache-hit != 'true'
run: npm install
- name: archive hive-f-server
run: tar cvfz ./hive-f-server.tar.gz *
- name: AWS configure credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
role-session-name: GitHubActions
aws-region: ap-northeast-2
- name: upload to S3
[redacted]
- name: deploy with AWS codeDeploy
[redacted]
초장엔 잘 모르니까 일단 어느 정도는 복붙을 하기로 했는데, 어찌저찌 하다보니 꽤 복잡해졌다.
8. instance에 mysql설치
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo yum update
sudo dnf install mysql-community-server
8-1. root mysql 다시 따오는 법
sudo grep 'temporary password' /var/log/mysqld.log
sudo mysql_secure_installation -p
9. .env는 따라가지 않기 때문에 일일이 action secret 변수로 케어
...
10. IAM role 세팅 다시하기...
아 이게 날 2시까지 붙잡았는데, 일단 deploy가 성공하기는해서 놔두고 내일 아침에 와서 다시보려고 한다. 중요한 건 일단,
여기서 3번째 옵션을 이용해서 github를 등록하는데, 기본적으로는 없을 것이다. 따라서,
여기서 등록해주어야한다.
그리고 organization을 등록하라고 하는데 쌩까고 그냥 아무 핸들명이나 넣어도 된다.
아 일단 오늘은 여기까지. 내일 다시 와서 보자.
'일지 > 헬키' 카테고리의 다른 글
헬키 개발일지 6. 2024 06 25 때 아닌 iOS Xcode 빌드하기 (0) | 2024.06.26 |
---|---|
[Node.js] 헬키 개발일지 5. backend schema 확인과 endpoint 만들기 (1) | 2024.05.11 |
[React-native + Web] 헬키 개발일지 4. CI 파이프라인 완성, 간단한 테스팅 (0) | 2024.05.11 |
[React-native + Web] 헬키 개발일지 3. HTTPS + 배포 도전기 2 (2) | 2024.05.07 |
[React-native + Web] 헬키 개발일지 1. (0) | 2024.05.05 |