AWS EC2에 간단한 애플리케이션 배포

GitHub Actions 및 AWS EC2에 대한 자세한 내용은 이 문서를 확인하십시오.
Nodejs 앱 만들기
nodejs 앱을 설정하는 기본 방법은 각각 NodeJS 및 NPM 웹 사이트를 확인하고 다운로드하여 설치하는 것입니다. 또한 nodejs 앱을 만드는 과정을 안내하는 이 문서repo를 확인하세요.
Terraform으로 EC2 가동
만들기
ec2.tfterraform {
  cloud {
    organization = "arterycloud"
    workspaces {
      name = "Nautty-dev"
    }
  }
}
provider "aws" {
  region  = var.region
  profile = "terraform-user"
}
resource "aws_instance" "web" {
  ami           = "ami-xxxxxxxxxxxx"
  instance_type = "t2.micro"
  count         = 1
  tags = {
    Name = "Nautty-dev"
  }
}
variable "region" {
  default     = "us-east-1"
  description = "AWS Region"
  type        = string
}
SSH 키 생성
이 경우 SSH를 통해
ec2 instance에 연결하고 키를 생성합니다. 새 SSH 키를 생성하려면 이 항목step을 확인하십시오.authorized key에 공개 키를 추가합니다. 이렇게 하는 주된 이유는 (xx.pub)를 authorized key에 추가하여 개인 키를 사용하는 Github Action이 서버에 액세스할 수 있도록 하기 위함입니다. 이 명령을 실행하여 공개 키를
authorized key에 추가합니다.cat xxx.pub  >> authorized keys

EC2 인스턴스에 배포하도록 워크플로 설정
워크플로 생성에 대한 자세한 내용은 여기article를 참조하십시오.
name: EC2 CI/CD
on:
  push:
    branches: [ "ft/week7_cicd" ]
defaults:
  run:
    working-directory: ./week7/
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.x]
    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
        cache-dependency-path: './week7/package-lock.json'
    - run: npm i
    - name: Deploy to EC2 instance
      uses: easingthemes/ssh-deploy@main
      env:
        SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
        REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
        REMOTE_USER: ${{ secrets.REMOTE_USER }}
        TARGET: ${{ secrets.TARGET }}
        SOURCE: ""
    - name: Executing remote ssh commands using ssh key
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.REMOTE_HOST }}
        username: ${{ secrets.REMOTE_USER }}
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        script: |
            # sudo npm install pm2 -g && pm2 update
            cd /home/ubuntu/nautilus-devops/week7
            # sudo pm2 start index.js --name=week7 
            sudo pm2 restart week7
위의 코드는 몇 가지 작업을 수행합니다.
ssh를 사용하여 서버에 코드를 배포하고 러너에서 rsync 수행하는 데 도움이 됩니다. 요약
이 문서는 GitHub에서 AWS EC2로 코드를 자동으로 배포하는 방법을 이해하는 데 도움이 됩니다.
Reference
이 문제에 관하여(AWS EC2에 간단한 애플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/damola12345/deploy-a-simple-application-to-aws-ec2-d62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)