AWS에서 우리가 사용하고 있는 IP는 고정 IP가 아니라 퍼블릭 IP이기 때문에 인스턴스를 껐다 켤때마다 바뀝니다. 인스턴스를 켤 때마다 직접 들어가서 매번 바꿔줘야하는 게 너무 귀찮았습니다.
그래서 shell script로 IP와 DNS 주소를 가지고 올 수 있는 방법을 찾긴 했습니다.
# 퍼블릭 IP
aws_public_ip=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)
# 퍼블릭 DNS IP
aws_public_dns_ip=$(curl http://169.254.169.254/latest/meta-data/public-hostname)
aws_public_ip, aws_public_dns_ip 를 전역변수로 만들고 nginx.conf 안에서 쓰면 되지 않을까 생각했는데 생각보다 잘 되지 않았습니다. 쉘 파일이 아니라 .conf 파일이라서 그런듯합니다.
같이 고민해보면 좋을 것 같아 적습니다 :)
해결 : nginx.conf를 굳이 바꾸지 않아도 인스턴스 안에 nginx와 서버가 켜져있다면 켜진 서버로 알아서 할당해줍니다. 삽질했네요 ㅎㅎ
AWS EC2에 CodeDeploy Agent를 설치 시 /usr/bin/env: ruby: No such file or directory 가 뜨는 이슈
설치를 진행하다보면 sudo ./install auto 에서
/usr/bin/env: ruby: No such file or directory 가 뜹니다.
몇 가지 이슈 정리
서버가 켜질 때마다 nginx.conf 를 바뀌어진 IP로 할당해야하는 이슈
AWS에서 우리가 사용하고 있는 IP는 고정 IP가 아니라 퍼블릭 IP이기 때문에 인스턴스를 껐다 켤때마다 바뀝니다. 인스턴스를 켤 때마다 직접 들어가서 매번 바꿔줘야하는 게 너무 귀찮았습니다.
그래서 shell script로 IP와 DNS 주소를 가지고 올 수 있는 방법을 찾긴 했습니다.
aws_public_ip, aws_public_dns_ip 를 전역변수로 만들고 nginx.conf 안에서 쓰면 되지 않을까 생각했는데 생각보다 잘 되지 않았습니다. 쉘 파일이 아니라 .conf 파일이라서 그런듯합니다.
같이 고민해보면 좋을 것 같아 적습니다 :)
해결 : nginx.conf를 굳이 바꾸지 않아도 인스턴스 안에 nginx와 서버가 켜져있다면 켜진 서버로 알아서 할당해줍니다. 삽질했네요 ㅎㅎ
AWS EC2에 CodeDeploy Agent를 설치 시
/usr/bin/env: ruby: No such file or directory
가 뜨는 이슈sudo ./install auto
에서/usr/bin/env: ruby: No such file or directory
가 뜹니다.sudo yum install ruby
로 루비를 설치하고 다시 실행하면 됩니다.출처 : https://sarc.io/index.php/aws/1875-error-aws-codedeploy-agent
Spring Boot를 이용하므로 책과 쉘 스크립트가 다른 이슈
/home/ec2-user/deploy
입니다.~
)로 하면 못 찾기에 모두 절대경로로 줬습니다.CodeDeploy에서 &만 붙여서 배포 실행 시 에러가 뜨는 이슈
Script at specified location: scripts/restart_server.sh failed to close STDOUT
에러가 떴습니다.출처 : https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/troubleshooting-deployments.html