AWSを使用してCI/CDパイプラインを構築する


この記事はgithubとaws開発者ツールを使用してパイプラインを構築するプロセスです.

パイプラインの構築


クライアントパイプライン



S 3でパケットを作成する


重複しない名前のパケットを生成します.

codebuildのために構築されます。ymlファイルの作成


例)
version: 0.2

phases:
  pre_build:
    commands:
      - cd client
      - npm install
  build:
    commands:
      - npm run build

artifacts:
  files:
    - '**/*'
  base-directory: client/build

パイプラインの設定

  • 命名後のシンボル接続
  • バージョンのプロジェクトを作成し、環境イメージ
  • を設定します.
  • 配備ステージを追加し、パケット
  • を選択

    サーバーパイプライン



    AWS開発者ツールサービスを使用して配置自動化パイプラインを構築する必要があります.

    始まる前に、

  • EC 2インスタンスを作成します.
  • EC 2ランタイム環境構築(nvm、npm、node)
  • 生成されたEC 2にタグ
  • を追加
  • I AMキャラクタ修正(AmazonS 3 FullAccess、AmazonSSMFullAccess、AWSCodeDeployRole)
  • 信頼関係の編集(codedeploy.ap東北-2.amazonaws.comをサービスに追加)
  • セキュリティグループ

  • 80443ポート設定
  • appspec.ymlの作成


    CodeDeploy-Agentは、
  • の導入自動化を支援する識別可能なファイルを作成します.
  • 各種スクリプトファイルを含むフォルダの作成


    ex)start.sh, initialize.sh, stop.sh

    CodeDeploy用のアプリケーションの作成

  • ec 2/onPremiss選択
  • 配置グループの作成

  • IAMロール
  • を選択
  • インスタンス、
  • タグを選択
  • 負荷バランシングチェック
  • をキャンセル

    パイプラインの作成

  • 羽香草庫選択
  • バージョンステージ
  • をスキップ
  • アプリケーション、配置グループ
  • を選択

    codedeploy-agentがいなかったら?

  • リファレンス
  • クライアント環境変数の設定


    開始前に、

  • RDSを作成する必要があります.
  • EC 2インスタンスにAWS CLIをインストールする必要があります.
  • 
     $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    $ unzip awscliv2.zip
    $ sudo ./aws/install

    プロジェクトの構築

  • を選択して環境を設定->その他の構成->環境変数
  • バックエンド環境変数の設定


    parameter store

  • 名、必要な環境変数
  • を作成する値を設定します.

    環境変数を適用するためのスクリプトファイルの変更


    例)
    #!/bin/bash
    cd /home/ubuntu/im-sprint-practice-deploy/server
    
    export DATABASE_USER=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_USER --query Parameters[0].Value | sed 's/"//g')
    export DATABASE_PASSWORD=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PASSWORD --query Parameters[0].Value | sed 's/"//g')
    export DATABASE_PORT=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PORT --query Parameters[0].Value | sed 's/"//g')
    export DATABASE_HOST=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_HOST --query Parameters[0].Value | sed 's/"//g')
    
    authbind --deep pm2 start app.js

    注意事項

  • パイプラインを変換する場合は、codedeploy-agentを実行する必要があります.
  • aws ec 2を使用する場合、nvm、npm、nodeを最新バージョンにダウンロードしても、古いバージョンのエラー解決方法を使用します。

    node.js 업데이트 (3개의 명령어를 차례차례 입력하세요.)
    sudo npm cache clean --force
    sudo npm install -g n
    sudo n stable
    
    npm 업데이트
    sudo npm install -g npm