라벨이 Ubuntu인 게시물 표시

[AWS] CodeDeploy 오류: 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.

이미지
개발환경은 아래와 같다. - Github Actions - AWS S3 - AWS CodeDeploy  - AWS EC2(ubuntu server v22.04) 위 환경에서 배포 자동화 설정 중 CodeDeploy에서 발생했던 오류를 해결했던 정리하려한다. AWS CodeDeploy Console 오류 화면 오류 메세지: 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 콘솔에서 배포 오류 이벤트 내역을 확인해도 되지만 보다 정확한 문제를 확인하기위해서는 CodeDeploy가 실행되는 ec2 인스턴스에 ssh에 접속해 CodeDeploy에 대한 로그를 확인해보는것이 좋다. * Ubuntu EC2 인스턴스에 CodeDeploy agent가 설치되어 있어야 한다. Install the CodeDeploy agent for Ubuntu Server 아래 명령어를 통해 codedeploy agent log가 저장되어있는 위치로 이동한다. $ cd /var/log/aws/codedeploy-agent 아래 명령어를 통해 로그 내역을 확인할 수 있다. $   cat codedeploy-agent.log 나의 경우 로그에 아래와 같이 에러 로그가 찍혀있었다. ERROR [codedeploy-agent(2423)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials - please check if this instance was started with an IAM instance profile INFO  [codedep...

Type error: Cannot find module ... Github Actions Ubuntu 환경

이미지
  Github Actions로 배포 자동화를 설정하기 위해서 yml 파일을 작성하고 push 했는데 위에 사진과 같이 파일 경로를 찾지 못하는 문제가 발생했다. 로컬 개발환경에서 build시에는 문제가 없는데 Github Actions에서 build시에만  Type error: Cannot find module '@/assets/icons' or its corresponding type declarations. 오류가 발생했다. 오류 해결 과정에서 세웠던 가설들과 해결 과정 3가지를 적어보려한다. 첫번째, 가설:  Next.js 13에서는 터보팩으로 전환했지만 여전히 Webpack을 번들러로 사용하고. Webpack은 TS 컴파일 단계와 다른 단계에서 실행되므로 tsconfig.json을 고려하지 않는다. 그러므로  tsconfig.json의 paths가 제대로 적용되지 않는것이 문제이다. 해결방법: next.config.js에 webpack config.resolve.alias 옵션을 사용해서 @를 경로에 맞게 수정되도록 설정한다. /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: false , webpack ( config ) { config . resolve . alias = { ... config . resolve . alias , '@' : path . join ( __dirname , '/' ), }; return { ... config ,    ...        ... 기타 설정 생략         ... ... 결론: 하지만 나의 경우  동일하게 Cannot find moudle 에러가 발생했다. 두번째,...

Ubuntu AWS EC2 ssh chmod 권한 설정 알아보기

이미지
AWS EC2에 ssh를 이용하여 접속할때 키파일에 대한 Permission 오류가 발생한다. 키파일에 대한 권한 설정을 변경해줌으로써 문제를 해결할 수 있었는데 그때 사용되는것이 chmod 이다. chmod 뒤에 숫자 세개가 나오는데 차례대로 나(사용자) / 그룹 / 전체에 대한 권한을 의미한다. 권한은 세가지로 read(4), write(2), execute(1) 가 있는데 이 숫자들 합을 이용하여 나(사용자) / 그룹 / 전체 각각에 권한을 설정할 수 있다. 예를 들어 5면, 5 = 4 + 1 로 read, write 권한이 있음을 의미한다.  EC2 인스턴스에 연결하는곳을 보면 아래와같은 명령어를 볼 수 있다. $ chmod 400 자신의키파일.pem 즉 chmod 400의 의미는 4/0/0 이므로 나에게만 읽기 권한이 있도록 하는것이다. 다른 예를 들어보면 600: 나에게만 읽기,쓰기 권한 허용 744: 나는 읽기,쓰기,실행 권한 / 그룹과 전체에는 읽기 권한 허용 이런 식으로 권한을 설정할 수 있다. 

[AWS] ssh 접속 오류 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

이미지
EC2를 생성하면 퍼플릭 IPv4 가 할당되는데 이때 할당되는 IP주소는 시간이지나면 계속해서 변경된다. 계속해서 변경되기때문에 해당 IP주소로 나중에 접속하려고하면 접속이 안되는 경우가 발생한다. 이러한 문제점은 탄력적 IP 주소를 할당받아 IP주소를 고정시켜 해결할 수 있다. 그런데 이렇게 탄력적 IP 주소를 할당해주고 ssh에 연결하려고하면 위와 같이 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 오류가 발생한다. 최초에 접속한 인증 정보와 새로운 IP주소가 할당된 후 접속하는 인증정보가 다르기 때문에 위와같은 현상이 발생하는것이다. 해당 오류에서 보여주는 해결제시 방안을보면 /root/.ssh/known_hosts 에 옳바른 host key를 추가하라고 한다. 나는 아래 명령어로 간단하게 known_hosts의 내용을 갱신해줄 수 있었다. $ ssh-keygen -R 192.168.0.1(대상 서버 IP 주소 또는 Domain Name) 접속 성공.!

Ubuntu 18.04 nvm, Node.js, npm 설치하기

이미지
  # nvm 설치하기 $ sudo apt-get update $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 설치가 완료되면 잘 설치되었는지 확인 $ nvm -v 만약 "Command 'nvm' not found, ~~" 와 같은 내용이 보이거나 nvm 버전이 출력되지 않는다면 현재 terminal(터미널)을 닫았다가 다시 새로 열거나, shell 별로 아래 명령어를 통해 해당 문제를 해결할 수 있다. bash: source ~/.bashrc zsh: source ~/.zshrc ksh: . ~/.profile 참고 : nvm github https://github.com/nvm-sh/nvm https://github.com/nvm-sh/nvm#install--update-script # nvm으로 Node.js, npm 설치하기 $ nvm install node 잘 설치 되었는지 확인 $ node -v $ npm -v 설치된 Node.js 버전 확인 및 설치 가능한 버전들 확인 $ nvm ls 원하는 특정 버전 설치하기 $ nvm install --lts $ nvm install 12.17.0 현재 사용중인 버전을 다른 버전으로 변경하고 싶은 경우 $ nvm use 14.17.3

Ubuntu 18.04 .env 파일 생성, 숨김 파일 확인

이미지
  .env 파일 생성 명령어 $ sudo vim .env 숨김파일을 포함한 모든 파일 목록 확인 $ ls -a vim 에디터로 들어가지 않고 명령어로 파일 내용 확인하는 명령어 $ cat "filename" ex) $ cat .env