반응형

지난 스텝에 이어서, AWS와 Git을 연동해보도록 하겠습니다.

환경

Node : 16.20.0

TypeScript : 5.1.6

Next : 8.19.4

 

AWS ECR 생성

AWS ECR을 demo로 생성해주도록 하자 !

 

 

 

Workflow 수정

ECR을 문제없이 수정했다면 Workflow를 수정해준다 !

 

name: Staging # 워크플로 Action의 이름
on:
  push:
    branches: [main] #github main 브런치에 푸시 발생 시 실행 ( main 외 다른브런치 이용시 이름변경)
jobs:
  staging: #staging이라는 작업
    name: demo # 작업의 이름
    runs-on: ubuntu-latest # 실행될 작업환경을 말함.
    steps:
      - name: Checkout
        uses: actions/checkout@v3 #체크아웃 받기
      - name: HelloWorld
        uses: actions/hello-world-javascript-action@v1 # 헬로월드 찍어보기
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} # Github Secret 이름
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # Github Secret 이름
          aws-region: ap-northeast-1 # AWS 리전 선택
      #AWS ECR(Elastic Container Registry)
      - name: Login to Amazon ECR # AWS-ECR 로그인
        id: login-ecr
        uses: aws-actions/amazon-ecr-login@v1
      - name: Build, tag, and push image to Amazon ECR
        id: build-image
        env:
          ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
          ECR_REPOSITORY: demo # ecr이름
          IMAGE_TAG: demo-${{ github.run_number }} # git 커밋넘버를 이미지 이름 구분을 위해 넣어줌
        run: |
          docker build --no-cache --network host -t $ECR_REPOSITORY:$IMAGE_TAG -f dockerfile .
          docker tag $ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
          docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
          echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

 

 

dockerfile 생성

root경로에 docker파일을 생성해준다 ~

 

*** Docker File의 경우 본인의 프로젝트 구조에 맞게 작성 해주셔야 합니다 !
아래 내용은 제 프로젝트 기준입니다 ***

FROM node:16.20 AS build

#/usr/src로 이동
WORKDIR /app

# package 복사
COPY /my-app/package*.json /my-app/yarn.lock ./
RUN yarn install
#파일전체복사
COPY /my-app .
RUN yarn build

FROM node:16.20  AS runner
WORKDIR /app

COPY --from=build /app/package*.json ./
COPY --from=build /app/yarn.lock ./
COPY --from=build /app/public ./public
COPY --from=build  /app/.next/static ./.next/static

# 운영환경 Install
RUN yarn install --production 

EXPOSE 7878
CMD ["yarn", "start"]

 

 

 

 

 

커밋 !

전 스텝과 마찬가지로 커밋 후 ! 정상적으로 Action이 성공하는지, ECR이 생성되었는지 확인 후 마무리 하도록 하자 !

다음 스텝에는 ECR을 기준으로 서비스를 띄워보도록 하자 ~

 

 

 

둘다 정상적으로 동작되었다 !!

다음 스텝에 만나요 ~~

반응형
반응형

지난 스텝에 이어서, AWS와 Git을 연동해보도록 하겠습니다.


환경

Node : 16.20.0

TypeScript : 5.1.6

Next : 8.19.4

 

aws Accees Key 생성

Aws Access Key 생성을 위해 Aws 로그인 후 Iam > 사용자 > 보안자격증명에서 Access Key생성을 한다(해당 키는 노출되면안됌 !)


낄낄 어피치 옆에 엑세스 키 만들기 버튼을 이용해서 만들어주면 됩니다요 ~

주의 ! : 발급된 엑세스키는 시크릿키, 엑세스키2개가 발급되는데  별도로 꼭 저장해놓읍시다 !

 

Github에 엑세스키 저장

아래 이미지의 경로에서 

AWS_SECRET_ACCESS_KEY(시크릿키)와 AWS_ACCESS_KEY_ID(엑세스키)를 각각 입력해준다 !

 

입력하면 아래와 같이 나온다!

 

 

 

 

WorkFlow 수정
name: Staging # 워크플로 Action의 이름
on:
  push:
    branches: [main] #github main 브런치에 푸시 발생 시 실행 ( main 외 다른브런치 이용시 이름변경)
jobs:
  staging: #staging이라는 작업
    name: demo # 작업의 이름
    runs-on: ubuntu-latest # 실행될 작업환경을 말함.
    steps:
      - name: Checkout
        uses: actions/checkout@v3 #체크아웃 받기
      - name: HelloWorld
        uses: actions/hello-world-javascript-action@v1 # 헬로월드 찍어보기
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} # Github Secret 이름
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # Github Secret 이름
          aws-region: ap-northeast-1 # AWS 리전 선택
      #AWS ECR(Elastic Container Registry)
      - name: Login to Amazon ECR # AWS-ECR 로그인
        id: login-ecr
        uses: aws-actions/amazon-ecr-login@v1

지난 스텝에서 작성했던 WorkFlow를 수정해주도록 하자 !

 

커밋

커밋하여 Action이 정상적으로 성공되었는지 체크한다 !

Action이 성공하였다면 이제 AWS에 인증키로 로그인하는 부분까지 완료하였다  !

다음 스텝에서는 Docker File로 도커이미지 생성하는 부분까지 알아보도록 하자 !



주의사항

AWS와 연동하기위해서는 AWS계정에 권한이 필수적으로 입력되어야 한다 ! 권한을 꼭 전부 주도록 ㅎ ㅏ자 !

 

필자는 아래의 권한을 주었다

 

 

-------------------------------------------------------------------------------------------------------------

 

정상적으로 Actions가 동작한것을 확인 할 수 있다 !

다음 스텝에서 보자구요 ~~

반응형
반응형
환경

Node : 16.20.0

TypeScript : 5.1.6

Next : 8.19.4

 

Next 프로젝트 생성

Git 레파지토리생성을 했다고 생각하고 Next 프로젝트 부터 생성하도록 하겠습니다.

1. Node 설치

Node 설치는 구글에 검색해보면 쉽게 찾을 수 있습니다. 구글 검색하여 노드설치 해주기 !


2. create-next-app 설치

> npm install create-next-app

 

3. Next.js 프로젝트 생성

//노드를 설치했다면, 프로젝트 경로에서 아래 명령어를 입력하여 next.js 프로젝트를 생성한다
> npm create-next-app my-app

 

 

프로젝트 실행

프로젝트 생성을 완료하였다면, 이제 프로젝트를 실행하여 정상적으로 화면이 나오는지 확인합니다.

//프로젝트 경로에서 npm run dev 입력
> npm run dev

프로젝트가 정상적으로 실행된 것을 확인할 수 있습니다.


 

.github > workflows 작성

 

//프로젝트 root 경로에서 아래 폴더와 파일을 생성해준다.

1. .github
2. .gibhub/workflows
3. .gibhub/workflows/workflow.yml

 

 

workflow.yml

 

workflow.yml에 아래 내용 입력

name: Staging # 워크플로 Action의 이름
on:
  push:
    branches: [main] #github main 브런치에 푸시 발생 시 실행 ( main 외 다른브런치 이용시 이름변경)
jobs:
  staging: #staging이라는 작업
    name: demo # 작업의 이름
    runs-on: ubuntu-latest # 실행될 작업환경을 말함.
    steps:
      - name: Checkout
        uses: actions/checkout@v3 #체크아웃 받기
      - name: HelloWorld
        uses: actions/hello-world-javascript-action@v1 # 헬로월드 찍어보기

 

이제 Git 커밋&푸시를 하게되면 Github Action이 발생한다. 오류가 나지않고 정상적으로 진행되는지 확인하기 !

 

 

작업이 성공적으로 끝났습니다 !

자 이제 Github Workflow를 통해 Action을 사용하도록 설정이 완료되었습니다 

다음 스텝에서는 실질적으로 AWS와 연동해보도록 하겠습니다.

감사합니다.

반응형
반응형

 

고기싸롱?

 

암사역앞에 풍부한 고기메뉴와 다양한 사이드바를 즐길 수 있는 고기뷔페 [고기싸롱]이 오픈했다고하여 방문해보았습니다 !!


 

가격?

 

  런치 디너
고기싸롱 가격 15,500 16,500

 

서비스

 

직원분들과 사장님이 굉장히 친절하고 재밌으셔서 좋았습니다!

 

 

꿀팁 !!

 

지금 네이버 영수증 리뷰를 쓰면 음료수가 공짜 !!!!

다들 네이버 영수증리뷰 작성하고 음료수 공짜로 가져가시라구요 !!

 

 

 

리뷰 및 평점

 

보통 고깃집에가면 저는 고기와함께 먹기위해 냉면을 따로 주문했습니다.

 

근데 고기싸롱에는 무려 쫄면이 사이드바에 나오더라구요 ?? (맛도 존맛탱...)

 

그래서 냉면을 별도로 주문하지 않고 이 맛있는 쫄면과 고기를 함께 학살했습니다 ..ㅋㅋㅋㅋ

 

 

고기싸롱 암사점의 맛, 서비스등 전반적인 것을 점수로 매기면.... 두구두구두구두구!

 

                                                                                                5점


5점 만점에 5점입니다 !

암사에 갈때 또 방문해야겠어요 !! 다들 암사 [고기싸롱] 한번 가보세요 ~~

 

마지막 고기사진들

 

반응형
반응형

Next.js 배포 후 운영서버에서 확인해보면 이미지를 정상적으로 다운받지 못하는 이슈가 발생한다.

 

이때 basePath를 설정해주어야한다.

 

next.config.js

next.config.js에서 basePath를 설정해준다.

이후 이미지 등 정적파일의 경로에 basePath를 추가한다.

ex) 
/images/logo.png 였다면, /app/images/logo.png 로 수정해준다.

* basePath 설정 시 배포 후 URL 도메인 뒤에 basePath가 붙는다 주의하자

 

 

FROM node:14.21 AS build
#/usr/src로 이동
WORKDIR /app
# package 복사
COPY package*.json yarn.lock ./
RUN yarn install
#파일전체복사
COPY . .
RUN yarn build

FROM node:14.21  AS runner
WORKDIR /app
ENV NODE_ENV production


COPY .env ./
COPY next-env.d.ts ./
COPY next.config.js ./

COPY --from=build /app/package*.json ./
COPY --from=build /app/yarn.lock ./
COPY --from=build /app/public ./public
COPY --from=build  /app/.next/standalone ./
COPY --from=build  /app/.next/static ./.next/static
RUN yarn install --production
EXPOSE 30000
CMD ["yarn", "start"]

추가로 내가 작업한 dockerfile도 기록용으로 업로드 :)

반응형
반응형

1. brew search node 로 노드 버전 검색

 

2. 원하는 버전 brew install node@14 등으로 설치

 

3. brew search node로 잘 설치되었는지 확인한다.

 

4. brew unlink node 로 언링크 한다.

 

5. brew link --overwrite node@14로 원하는 버전으로 링크를 건다

반응형

+ Recent posts