전체 글
[AWS][Codedeploy] missing credentials - please check if this instance was started with an iam instance profile
Codedeploy를 이용하여 EC2에 배포를 시도했는데, Codedeploy 콘솔에서 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 CodeDeploy server. EC2에서 에러 로그를 확인해야할 것 같아서 로그를 확인해보았다. tail -F /var/log/aws/codedeploy-agent/codedeploy-agent.log 에러로그 missing credentials - please check if this instance was started ..
[Javascript] const 변수 push(), pop()
개발 중, 배열1에서 배열2로 각 요속들을 옮기는 코드에서 당연히 let으로 빈 배열을 선언했는데, eslint error가 났다. push하는 코드가 있는데 왜 경고가 나지? const는 값 변경이 불가능한 것 아니었나? 라는 생각이 들었다. 하지만, const로 선언하고 push(), pop()을 해도 잘 동작한다. 이유를 찾아보니, const는 선언과 동시에 할당이 이루어질 때 사용하는 것으로, 재할당이 불가능하다는 특징이 있는데 push(), pop()의 경우 배열을 다른 값으로 교체하는 것, 재할당하는 것이 아닌, 기존 배열 원본을 수정하는 것이므로 가능하다는 것이다. 배열은 포인터로 선언이 되어있는데, push, pop은 포인터를 바꾸는 것이 아닌 같은 포인터의 값만 변경시키는 것이다. +덧붙..
[Github Actions][Codedeploy] CI/CD 구축하기 (1)
Github Actions와 AWS Codedeploy를 이용해서 CI/CD를 구축해보았다. Travis CI, Jenkins등은 사용해보지 않았지만 Github actions로 시작해보는 것도 괜찮은 것 같다. 자동배포라고하면, 구축하는 것 자체에 시간이 너무 뺏길것 같고, 구현하기 바빠서 미뤘었는데 처음 한번만 제대로 해놓으면 그 다음부터는 작은 부분들만 수정해서 바로 적용할 수 있기때문에 처음에 시간을 들여서라도 한번 해보는게 좋은 것 같다고 느꼈다! 이번 포스팅에서는 Github Actions와 Codedeploy사용을 위한 세팅(AWS S3, EC2, Codedeploy등)을 진행한다. AWS EC2 환경은 Ubuntu 20.04이다. 1. S3 버킷 생성 Github Actions에서 EC2에..
[AWS EC2] WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
AWS EC2에서 탄력적 IP를 사용하다가, 인스턴스를 바꿨을 경우 터미널에서 ssh 접속시 경고창이 뜬다. 접속하는 IP는 같지만, 실제 인스턴스지문이 달라졌기 때문이다. 오류 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 해결방법 ssh-keygen -R {ip or domain} # ssh-keygen -R 1.12.123.123 명령어를 쳐준뒤, 다시 ssh 접속을 하면 잘된다~
[Ubuntu] EACCES: permission denied, scandir '/root/.npm/_logs'
새로 세팅한 EC2에 node설치하고 npm 명령어를 사용하는데 아래와같이 에러가 났다. EACCES: permission denied, scandir '/root/.npm/_logs' 에러메세지에는 sudo chown -R 1000:1000 "/root/.npm"를 해보라고 되어있는데, 실행해봐도 같은 오류가 생긴다. 나는 root계정으로 작업을 하고있었는데, 내가 작업하려던 경로는 ubuntu유저에 의해 관리되는 폴더라 그런듯했다. exit하고 ubuntu유저로 npm명령어를 실행해주니 잘된다..! root는 다할수있는 줄 알았는데 그런건 아닌가보다 :)
[Spring Boot] 오류: Cannot construct instance of (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
정말 오랜만에 작년에 진행했던 프로젝트의 서버를 다시 살려보았다. 겨우 살리는데는 성공을 했는데, API호출을 해보니 500에러가 난다!ㅠㅠ 🚨 에러메세지 Cannot construct instance of `model` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 문제가된 'model' 위치에는 req, res에 사용되는 dto class가 있었다. import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lom..
[Mysql] 날짜 시간 더하기, 빼기 (DATE_ADD, DATE_SUB)
특정 날짜, 시간에서 일정 초,분,시간을 더하거나 빼야하는 경우 더하기 DATE_ADD(날짜 시간, INTERVAL 숫자 단위) SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND); # 1초 SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE); # 1분 SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR); # 1시간 빼기 DATE_SUB(날짜 시간, INTERVAL 숫자 단위) SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND); # 1초 SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE); # 1분 SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); # 1시간 NOW()..
[Codedeploy] 에러메세지 및 해결방법 정리
Codedeploy + Github actions 로 CI/CD를 구축하면서 엄청나게 많은 시도와 많은 에러메세지들을 만났었는데, 시도하면서 만난 에러메세지들과 해결방법들을 정리해두려고 한다. (Github actions에서 겪은 문제들은 따로 올릴 예정!) Error 로그 확인방법 1. 먼저 Codedeploy의 경우 AWS codedeploy에서 해당 배포를 클릭하면 에러메세지를 확인할 수 있다. codedeploy설정과 관련된 에러라면 대부분 여기 빨간박스에 에러메세지가 뜬다. 2. codedeploy설정이 아닌, 배포스크립트를 수행하던 중 오류가 발생했다면, 하단으로 스크롤하여 View events를 클릭하면, 더욱 자세한 오류메세지를 보여준다. View events 클릭 여기서 하단의 Scrip..
[Javascript] setInterval 바로 실행하기
setInterval 함수는 인자로 받은 함수를 특정시간마다 실행시키는 함수이다. 즉시 실행되지 않고 먼저 기다린 뒤 특정 시간 간격으로 실행된다. setInterval(console.log("hello world"), 10000); // 1000 = 1초 // 10초 뒤 hello world 출력 // 20초 뒤 hello world 출력 // 30초 뒤 hello world 출력 // ... 하지만, 먼저 실행을 시키고 일정간격으로 동작시키고 싶을 때가 있다! 그럴땐 아래처럼 코드를 두 줄로 써도 가능하지만, 실행하는 함수가 중복이 된다. 아래 코드의 경우 console.log("hello world")가 중복이다. console.log("hello world") setInterval(console...
[Mysql] mysql에서 현재 연결된 connection 찾기
Node.js와 Mysql사이에 발생한 Connection lost 문제를 알아보던 중 사용한 mysql 명령어들을 정리한다. 현재 연결된 Thread 개수 show status like 'Threads_connected'; 현재 실행중인 Thread 개수 show status like 'Threads_running'; 최대 가능한 connection 개수 show variables like 'max_connections'; 현재 연결된 connection 목록 show full processlist;