[Deployment] Automated Deployment


導入の自動化
AWSでgithubに修正を提出すると、自動的に修正が反映されます.
自動配置パイプ
Source stage -> Build stage -> Deploy stage
  • ソースステージ-Githubなどのリポジトリでコード変更が発生した場合、
  • が検出されます.
  • 構築フェーズ-ソース・フェーズから渡されたコード
  • をコンパイル、構築、およびテストします.
  • 導入フェーズ-構築フェーズで受信した結果を反映する
  • Pipelineフェーズは、状況および必要に応じて細分化または簡略化することができる.
    AWS開発者ツール
    CodeCommit
    Githubのようなバージョン管理ツール
    githubとの違いは、より安全で費用の支払いが容易であることです.
    CodeBuild
    Compile、Build、およびテストが可能buildspec.ymlファイルを使用した操作
    参考資料:https://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/build-spec-ref.html
    CodeDeploy
    実行中のサーバ・アプリケーションにリアルタイムで変更を反映appspec.ymlファイルを使用した操作
    参考資料:https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/reference-appspec-file.html
    CodePipeline
    パイプラインの構築
    free tierアカウントは2つから課金されます
    AWS IAM
    Identity and Access Management
    権限管理サービス(adminアカウントや一般アカウントなど)
    サンプルファイル
    buildspec.ymlサンプルファイル
    version: 0.2
    
    phases:
      pre_build:
        commands:
          - cd client
          - npm install
      build:
        commands:
          - npm run build
    
    artifacts:
      files:
        - '**/*'
      base-directory: client/build
    例appspec.ymlファイル
    version: 0.0
    os: linux
    files:
      - source: /
        destination: /home/ubuntu/im-sprint-practice-deploy
    
    hooks:
      ApplicationStop:
        - location: scripts/stop.sh
          runas: root
      AfterInstall:
        - location: scripts/initialize.sh
          runas: root
      ApplicationStart:
        - location: scripts/start.sh
          runas: root
    scripts/initialize.sh
    #!/bin/bash
    cd /home/ubuntu/im-sprint-practice-deploy/server
    npm install
    npm install pm2@latest -g
    sudo apt-get update
    sudo apt-get install authbind
    sudo touch /etc/authbind/byport/80
    sudo chown ubuntu /etc/authbind/byport/80
    sudo chmod 755 /etc/authbind/byport/80
    scripts/start.sh
    #!/bin/bash
    cd /home/ubuntu/im-sprint-practice-deploy/server
    authbind --deep pm2 start app.js
    scripts/stop.sh
    scripts.stop.sh
    #!/bin/bash
    cd /home/ubuntu/im-sprint-practice-deploy/server
    pm2 stop app.js 2> /dev/null || true
    pm2 delete app.js 2> /dev/null || true
  • gibubにも関連機能があります.github action, github pages
  • vrecelはクララしか配布できません.サーバは使用できません.
  • devopsの位置は、配置、運営、環境配置の専門家直軍です.
  • Linuxの理解がますます必要になっています.
  • 12factors.net