전체 글
-
aws codeDeploy beforeInstall fail이슈 기록 2023. 2. 5. 14:33
``` The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems. ``` ``` CodeDeploy agent was not able to receive the lifecycle event. Check the CodeDeploy agent logs on your host and make sure the agent is running and can connect to the CodeDepl..
-
8. NestJs & Git Actions 통한 CI/CD - [ AWS EC2 배포 ] - 자동배포 (2)카테고리 없음 2023. 2. 3. 22:21
EC2 IAM 설정 저는 미리 만들어서 링크의 4번, 5번을 참조해주세요 ec2 인스턴스 aws-cli 설치 sudo yum install -y aws-cli cd /home/ec2-user sudo aws configure ### AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: ap-northeast-2 Default output format [None]: json ### ec2 인스턴스 codeDeploy agent 설치 sudo yum update sudo yum install ruby sudo yum install wget cd /home/ec2-user # 서울 리전일 경우 wget https:..
-
7. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ] - 자동배포 (1)공부하기/node.js 2023. 2. 3. 20:44
[AWS EC2 배포] - 기본편에서 발생한 문제점 3번을 해결하는 글입니다 지금까지 저는 [ 작업 코드를 레파지토리에 푸쉬 -> ec2 인스턴스에 접근 -> pm2를 사용한 재배포 -> nginx 재실행 ]등의 작업들을 수동으로 진행했습니다. 이러한 귀찮고 반복적인 작업들을 자동화할 생각입니다. 이번 글에서는 git actions를 통해 s3 버킷에 build된 zip파일을 올리는것까지 자동으로 만들어보겠습니다. 준비물 1. s3 버킷 => build 된 애플리케이션.zip 파일을 업로드하기 위해서 필요합니다. 2. IAM 유저 (S3FullAccess 권한, CodeDeployFullAccess 권한) => git actions로 s3, codeDeploy를 컨트롤하기 위해서 필요합 니다. 3. Co..
-
6. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ] - 도메인&nginx공부하기/node.js 2023. 2. 3. 00:17
[AWS EC2 배포] - 기본편에서 발생한 문제점 2번을 해결하는 글입니다 DNS로 인스턴스에 접근하기 ( 퍼블릭ip:포트번호로 접근합니다. 일반적으로 우리는 ip:포트번호로 접근하진 않습니다 ) 우선 도메인을 하나 구매해야합니다. 저는 가비아에서 도메인을 구매하였고 이벤트 도메인으로 550원(1년)에 도메인을 구매하였습니다. 1. aws 웹페이지 접속 후 검색창에 route 53을 입력하고 route 53 페이지에 진입합니다. 2. 호슽팅 영역 생성 버튼을 클릭합니다. 3. 도메인 이름 인풋박스에 미리 구매한 도메인을 입력한 후 호스팅 영역 생성 버튼을 클릭합니다. 4. 생성된 결과 레코드 중 NS유형의 값/트래픽 라우팅 대상의 4개의 값을 복사한 뒤 도메인을 구매한 사이트로 이동합니다. -> 저는 ..
-
5. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ] - pm2공부하기/node.js 2023. 2. 2. 23:17
[AWS EC2 배포] - 기본편에서 발생한 문제점 1번을 해결하는 글입니다. 인스턴스에 접근한 터미널을 종료하고도 애플리키에션을 실행 상태로 유지하기 터미널로 인스턴스에 접근한 뒤 npm i -g pm2 cd ./프로젝트_디렉토리/dist pm2 start main.js pm2 list pm2[바로가기]는 백그라운드에서 실행되는 데몬 프로세스입니다. pm2를 활용하면 인스턴스로 접근한 터미널을 종료하더라도 애플리케이션의 온라인 상태를 유지할 수 있습니다.
-
[클린 코드 1장] 깨끗한 코드란 무엇일까?공부하기/개발서적 2023. 2. 2. 06:53
코드란 무엇? 평소에 나는 코드란 기계가 이해할 수 있는 언어로 기계에게 일을 시키기 위한 언어 정도로 생각했고, 프로젝트 마다 기계에게 좀 더 효율적으로 일을 시키기 위해 여러 언어로 나눠져있으며 용도에 따라 여러 가지 언어를 이용해서 원하는 제품을 만드는 것 정도로 생각했다. 왜 좋은 코드를 만들려고 노력하는지 왜 좋은 코드를 써야 하는지를 더 생각해 볼 수 있었고 코드에 대한 깊은 이해 없이 깨끗한 코드를 원했던 게 아닐까? 라는 의문이 들었다. 나쁜 코드와 나쁜 개발자.. 전부 내 이야기같았다. 과거 웹 에이전시에서 프로젝트 기간에 쫓기며 내가 하던 말과 행동들이 고스란히 적혀있었다. '어쩔 수 없다'라고 생각하고 행동했던 것들이 결국은 내가 책임을 외면하고 회피했구나.. 잘못된 경험은 이제 충분..
-
4. NestJs & Git Actions CI/CD - [ AWS EC2 배포 ]공부하기/node.js 2023. 2. 1. 23:44
지난 글에서 EC2 인스턴스 접근을 다뤄보았습니다. 이 글은 생성된 EC2 인스턴스에 nest-cli로 생성한 프로젝트의 아주 간단한 배포를 기록합니다. 인스턴스에 접근한 초기 상태로 가정하고 글을 작성합니다. 1. AWS-EC2 인스턴스에서 yum 명령을 통해 git을 설치합니다. sudo yum update sudo yum install git git --version 2. Node.js를 설치합니다. [ CASE_1 ] curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash . ~/.nvm/nvm.sh nvm install 16 node -v npm -v [ CASE_2 ] nvm list nvm uninstal..
-
3. NestJs & Git Actions CI/CD - [ AWS EC2 접속 ]공부하기/node.js 2023. 2. 1. 23:12
지난 글에서 AWS-EC2 인스턴스를 생성했습니다. 인스턴스 생성 중 ssh 접속을 위한 체크박스를 체크한 뒤 인스턴스를 생성했으므로 인스턴스는 자동적으로 ssh 접속을 위한 22번 인바운드 포트가 개방된 상태로 생성이 되었습니다. 이제 터미널을 통해서 생성된 인스턴스에 접근합니다. 터미널을 켜고 인스턴스를 생성할 때 다운로드한 키페어가 저장되어 있는 위치로 이동합니다. 해당 디렉토리에서 다시한번 pem키가 디렉토리에 존재하는지 확인합니다. 다운로드된 키페어의 권한을 변경해줍니다. chmod는 나/그룹/전체 에 따른 권한을 부여하는 리눅스 명령입니다. 각각 read(4), write(2), execute(1)의 권한을 부여할 수 있습니다. 400의 경우 나(read권한 허용) /그룹(권한없음)/ 전체(권..