라벨이 AWS인 게시물 표시

[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  [codedeploy-agent(2423

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) 접속 성공.!

[AWS] WARNING: UNPROTECTED PRIVATE KEY FILE! ssh 연결 오류 해결하기

이미지
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @         WARNING: UNPROTECTED PRIVATE KEY FILE!           @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'share-video2.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. SSH에 접속하기위해서는  EC2 인스턴스를 생성하면서 제공된 .pem 확장자를 가진 키파일이 필요하다. .pem 확장자 파일이 있는 해당 폴더에서 aws에서 제공해주는 SSH 접속 주소를 입력해주면 SSH로 연결이 되어야한다. 그런데 위와 같이 EC2 인스턴스에 접속할때 WARNING: UNPROTECTED PRIVATE KEY FILE! 이라는 오류가 발생했다. 해당 문제는 권한에 관련된 문제이다. 첫줄에 Permission ~ too open 즉 해당 파일이 모든 사람에게 읽기 또는 쓰기가 허용되고 있기 때문에 경고가 발생한것이다. chmod 600 자신의키파일.pem 를 입력하면 소유자에게만 읽기 쓰기 권한을 주는것으로 변경할 수 있다. ➜   AWS chmod 600 ./share-video2.pem 해당 명령어를 입력하고 난 후 다시 SSH 접속 명령어를 입력하면 내용이 주르륵나오고 최종적으로 아래와같이 접속이 된것을 확인할 수 있다. (ip 숫자는 혹시몰라서 변경해놨다.) ubuntu@ip-000-00-0-00 : ~ $   내 블로그에 chmod 에 관하여 이해하기 쉽게 정리한 포스팅이 있으므로 아래 링크 참고 https://seungwon-code.blogspot.com/2021/11/ubuntu-aws-ec2-ssh-chm