code-deploy, pipe-line, CI/CD

김기태·2021년 11월 6일
1
  1. EC2에서 사용할 IAM 역할을 생성

  2. AWS 서비스가 클릭되어 있는 지 확인하고, 일반 사용 사례에서 EC2 항목을 선택한 후 다음

아래 권한들을 연결.
•AWSCodeDeployFullAccess

•AmazonS3FullAccess

•AWSCodeDeployRole

•CloudWatchLogsFullAccess

  1. 역할 만들기

  2. 보안 -> IAM 역할 수정

5.CodeDeploy에 적용할 역할도 만들기

6.CodeDeploy, 아래 쪽 사용 사례 선택에서 CodeDeploy를 선택후 역할 만들기.

  1. CodeDeploy 역할 만든 후 AWS 서비스의 CodeDeploy로 이동하여 애플리케이션 생성

  2. EC2/온프레미스를 선택한 후 애플리케이션 생성

  3. CodeDeploy에서 발생한 이벤트를 EC2가 수신할 수 있도록 CodeDeploy Agent를 설치.
    우선 사용자 추가를 위해 IAM 서비스의 그룹 페이지로 이동해서 새로운 그룹 생성

  4. 정책 연결에서는 아무것도 선택하지 않기.

  5. 정책 연결을 생략했기 때문에 인라인 정책 생성 클릭.

  6. Json 클릭(수정됨)

  7. 정책을 설정하고 적용

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:*",
                "codedeploy:*",
                "ec2:*",
                "lambda:*",
                "elasticloadbalancing:*",
                "s3:*",
                "cloudwatch:*",
                "logs:*",
                "sns:*"
            ],
            "Resource": "*"
        }
    ]
}
  1. 그룹에 사용자를 추가

  2. 사용자 추가 단계 1에서는 사용자 이름과 AWS 액세스 유형을 선택

16.사용자 추가 단계 2에서는 그룹에 사용자 추가를 클릭하고 위에서 생성한 그룹 선택

  1. CSV파일 저장 재발급 안됨.

    ------------------------------------------터미널 설정------------------------------------------
  2. sudo apt install awscli

AWS Access Key ID [None]: 다운로드 받은 .csv파일에서 Access key ID 항목 입력

AWS Secret Access Key [None]: 다운로드 받은 .csv파일에서 Secret access key 항목 입력

Default region name [None]: ap-northeast-2

Default output foramt [None]: json

  1. wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install

  2. chmod +x ./install

  3. sudo apt-get install ruby

  4. sudo ./install auto

  5. sudo service codedeploy-agent status

  6. sudo vim /etc/init.d/codedeploy-startup.sh
    #!/bin
    sudo service codedeploy-agent restart

  7. sudo chmod +x /etc/init.d/codedeploy-startup.sh

--------------------------터미널 끝 -------------------------------
프로젝트 제일 상위에 appspec.yml 추가
version: 0.0
os: linux
files:

  • source: /
    destination: /home/ubuntu/build/
  1. CodeDeploy가 배포하게 될 위치를 build폴더로 잡아두었기 때문에 해당 경로에 build 폴더를 생성

  2. AWS 서비스의 EC2 대시보드로 이동해 해당 인스턴스를 클릭하면 하단에 세부정보가 나오는데 그 중 태그 탭

  3. 태그 설정이 끝났다면 다시 AWS 서비스의 CodeDeploy 페이지로 이동 리스트에서 CodeDeploy 애플리케이션 클릭

  4. 애플리케이션의 상세화면에서 배포 그룹 생성을 클릭

  5. 배포 그룹 이름과, 서비스 역할을 선택. 서비스 역할은 앞서 IAM 서비스에서 CodeDeploy용으로 만들었는데 해당 태그 값이 리스트를 클릭하면 노출, 만들고 나서 배포 생성 클릭

  6. 연동할 저장소의 이름을 입력하고 배포를 하고 싶은 커밋 ID를 입력

  7. 파이프라인 생성

  8. GitHub version2선택(수정)

  9. 본인의 저장소와 브랜치를 설정, 빌드 설정X

  10. 배포 스테이지에서는 CodeDeploy를 선택했고, 2편에서 설정한 배포 애플리케이션 및 배포그룹을 선택

  11. pm2 --watch옵션으로 서버 실행 -> 코드가 변경되면 자동으로 서버 재시작

참고할만한 자료

https://urbanbase.github.io/dev/2019/07/02/AWS-CodePipeline.html

profile
김개발

0개의 댓글