반응형 전체 글44 [AWS CI/CD] nohup사용 및 배포 nohup java -jar 명령어를 사용하면 애플리케이션 실행자가 터미널을 종료해도 애플리케이션은 계속 구동한다. sudo cat nohup.out 명령을 통해서 웹 애플리케이션의 로그를 확인할 수 있다. 정말 익숙한 로그가 출력되었다. - "sudo netstat -tnlp" 명령을 통해서 컴퓨터에서 돌아가고 있는 포트들의 상태를 확인할 수 있다. - 만약에 이미 8080포트로 실행중인 다른 프로그램으로 인해 실행이 안되었다면, 다음 명령어로 기존의 프로세스를 죽일 수 있다. sudo kill -9 [PID] AWS 2022. 12. 8. [AWS CI/CD] Codedeploy 배포 오류 이전에 개정 위치가 이상하여 s3 버킷안의 객체를 인식하지 못하였다. 배포를 새로 만들어 개정 위치를 수정하니 오류가 해결되었다. 이번에는 스크립트 위치를 찾지 못한다 결국에는 내가 쓴 script이름이 오타가 있어서 해당 스크립트를 못찾은것이였다. 정말 많은 삽질을 하고 있었다.. 개정위치를 일일이 수정해주니 배포는 되었지만 어디서 개정위치가 잘못 들어갔는지 모르겠다. 보면 자꾸 /가 2개씩 들어가서 객체를 제대로 인식하지 못한다. s3-location bucket=$S3_BUCKET_NAME,bundleType=zip,key=Board.zip s3 버킷 로케이션도 지정해주었는데 나는 뒤에 버킷을 또 지정해주고 슬래쉬를 달아주어서 //이렇게 경로가 잘못 찍혀서 올라간 것이였다. 이것때문에 몇시간을 버린.. AWS 2022. 12. 8. [AWS 무중단 배포] Nginx설치 설정 및 서버 파일 script추가 1. Nginx 1. 1 소개Nginx는 널리 쓰이는 웹 서버 중 하나이다.Nginx는 정적 자원의 처리 외에도 proxy 서버의 역할이나, reverse proxy 서버의 역할 등 여러 방면에서 높은 활용도를 보여준다. 여기서는 Nginx가 CodeDeploy Agent에 의해 두 WAS간의 스위칭 역할을 담당하도록 구성해 보겠다.1. 2 Nginx 설치와 설정 sudo amazon-linux-extras install nginx1sudo nginx -v # 설치 버전 확인설치 후 /etc/nginx/ 로 이동해 보시면 다양한 nginx 설치파일들을 볼 수 있다.우리가 관심있게 보아야 할 것은 설정파일인 nginx.conf 파일이다.파일 수정이 필요하니 sudo 권한으로 ngi.. AWS 2022. 12. 8. [AWS CI/CD] Appspec.yml EC2에서 CodeDeploy를 이용했을 때 appspec.yml에 대해 자세히 알아보지 않고 사용하다가 나중에 에러 처리하는 데 애를 먹어 다시 한 번 정리 해보려고 합니다. Appspec.yml이란? appspec.yml파일은 CodeDeploy에서 배포를 관리하는 데 사용하는 YAML 형식 또는 JSON 형식의 파일입니다. appspec.yml파일은 파일에 정의된 일련의 수명 주기 이벤트 후크로 각 배포를 관리하는 데 사용됩니다. # appspec.yml version: 0.0 os: linux files: - source: / #전부 destination: /home/ec2-user/Board/ #인스턴스에서 파일이 복사되어야 하는 위치 식별 overwrite: yes #선택 값으로, 동일한 파일.. AWS 2022. 12. 7. [AWS CI/CD]CodeDeploy 실패 오류 Github Action에서 잘 빌드하여 s3까지 파일을 잘 압축하여 올라왔으나, ec2에 ls를 확인해보니 해당 파일이 없었다. 확인해보니 배포에 codedeploy랑 ec2랑 태그 연결이 잘못되어 생긴 문제였다. 이제 태그를 맞춰 해당 인스턴스로 잘 매치가 되었으나, 이번에는 객체가 버킷에서 누락되고 나에게 s3 listbucket에 액세스 권한이 없는거 같다. Amazon S3에서 404 "NoSuchKey" 오류 문제를 해결하려면 어떻게 해야 합니까? 최종 업데이트 날짜: 2021년 1월 5일 사용자가 내 Amazon Simple Storage Service(Amazon S3) 버킷에서 객체에 액세스하려고 합니다. 그러나 Amazon S3에서 404 "NoSuchKey" 오류를 반환합니다. 이 오.. AWS 2022. 12. 7. [AWS CI/CD] deploy.yml 수정 및 해결 스크립트 추가하기 마지막으로 프로젝트에서 스크립트를 몇 가지 추가해야한다 먼저 프로젝트의 최상단에 appspec.yml을 생성한다.appspec.yml은 CodeDeploy Agent가 참조하면서 배포를 진행하는 명세서같은 느낌이다. 기본적인 appspec.yml을 다음과 같이 작성 다음 단계인 Nginx 적용 단계에서 스크립트를 추가적으로 작성 # appspec.yml version: 0.0 os: linux files: - source: / #전부 destination: /home/ec2-user/Board/ #인스턴스에서 파일이 복사되어야 하는 위치 식별 overwrite: yes #선택 값으로, 동일한 파일이 있을 경우 덮어쓰기 여부 #정의한 파일이 인스턴스에 복사된 후 해당 파일에 권한이 어떻게.. AWS 2022. 12. 6. [AWS CI/CD] deploy.yaml 분석 Github Action Workflows deploy.yaml name: CI-CD on: push: branches: - main env: S3_BUCKET_NAME: longstone RESOURCE_PATH: ./src/main/resources/application.yaml CODE_DEPLOY_APPLICATION_NAME: GoldenHour_code_deploy CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: goldenhour-server jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up JDK 17 uses: actions/setup-java@.. AWS 2022. 12. 6. [AWS CI/CD] CodeDeploy 생성 및 설정 CodeDeploy Step 1 Step 2 Step 3 Step 2에서 CodeDeploy를 선택했으므로 자동으로 “CodeDeployRole” 권한이 부여되어있다. 추가로 권한 부여를 할 필요가 없으니 넘어간다. “Role name”에는 원하는 값을 입력한다.이 IAM은 CodeDeploy 생성 시 사용한다. 이로써 CodeDeploy를 위한 IAM 생성이 완료되었다. Step 4 “CodeDeploy -> Application -> Create application” 클릭을 한다. Step 5 Application name에는 원하는 값을 입력한다. “Compute platform”은 EC2/On-premises를 선택한다. Step 6 CodeDeploy Application을 생성했다. 이제는 .. AWS 2022. 12. 6. [AWS CI/CD] S3 생성 및 설정 S3 Buckets S3 서비스가 필요한 이유 Github Action으로 빌드된 결과물을 S3에 올려놓을 것이다.S3에 저장된 빌드 결과물을 가져와 인스턴스에 배포를 한다. 그러면 EC2 인스턴스에 있는 CodeDeploy가 그러므로 우리는 빌드된 결과물을 저장하는 공간으로 S3 서비스를 사용할 예정이다. Bucket 생성 Step 1 “Create bucket”을 클릭한다. Step 2 Bucket name과 region을 정한다. Step 3 Public Access를 차단한다.상황에 맞게 Public Access를 허용시킨다. 설정 방법은 “AWS S3 Bucket에 있는 파일에 대해 Public Access 하는 방법”글 을 참고하자. 그런데 만약 본인의 서비스가 외부 이미지 참조가 있다면 추가.. AWS 2022. 12. 5. [AWS CI/CD] Ubuntu 현재 서버는, 만들어둔 인스턴스는 잠시 중지시켜놓고, 인스턴스를 새로만들어 다시 구축하기 시작했다. 현재 JDK 17을 깔고 CodeDeploy를 깔아놓았다 아래 사진을 보면 codedeploy-agent가 실행중인 상태인것을 알 수 있다. 이제 EC2의 Config 설정과 같은 IAM(Identity and Access Management) 설정을 해야 한다. Step 21 IAM 서비스 -> Roles -> Create role을 클릭한다. Step 22 “AWS service”와 “EC2”를 클릭한다. Step 23 [CodeDeployFullAccess, S3FullAccess] 권한을 부여한다. Step 25 “Role name”에는 원하는 값을 입력한다. 그리고 Policies에 [CodeDe.. AWS 2022. 12. 5. [AWS CI/CD] EC2에서 S3 밑에서 2번째줄을 보아서는 성공적으로 연결 되었다는거 같은데 마지막줄에서 HTTP요청에서 403 Forbidden이라는 문구가 출력되었다. 아마 s3의 퍼블릭 액세스가 차단되어서 그런거 같다. 그래서 설정을 바꿔주려 하니 버킷 정책을 편집할 권한이 없다고 나온다. 간략한 설명 ‘403 Forbidden’ 오류는 다음과 같은 이유로 발생할 수 있습니다. s3:PutObject에서 객체를 추가하거나 s3:PutObjectAcl에서 객체의 ACL을 수정할 수 있는 권한이 누락되었습니다. AWS Key Management Service(AWS KMS) 키를 사용할 수 있는 권한이 없습니다. 버킷 정책에 명시적 거부 문이 있습니다. Amazon S3 퍼블릭 액세스 차단이 활성화되었습니다. 버킷 ACL(액세스 제어.. AWS 2022. 12. 3. [Github Action] - Self-hosted runners vs GitHub-hosted 1. self-hosted runners란? 자체 러너를 호스팅하고 GitHub Actions workflows이서 job을 실행하는데 사용되는 환경을 사용자 지정할 수 있다. self-hosted runner는 GitHub의 Actions에서 jobs를 실행하기 위해 배포하고 관리하는 시스템이다. (GitHub Actions에 대해서는 GitHub Docs를 참조하자.) self-hosted runner GitHub-hosted runners에서 제공하는 하드웨어, 운영체제, 소프트웨어 도구보다 더 많은 제어를 할수 있도록 제공한다. self-hosted runners를 사용하여 더 큰 작업을 실행하기 위한 처리 능력 또는 메모리로 요구사항을 충족하는 맞춤형 하드웨어 구성을 생성할 수 있다. 로컬 네트.. AWS 2022. 12. 3. 이전 1 2 3 4 다음 반응형