++ 코드에서 작성해야하는 것
- application-prod.yaml
- deploy.yml + github AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
ec2 에서 bastion → private ec2접속
ec2에 설치해야 하는 것
less /var/log/aws/codedeploy-agent/codedeploy-agent.logsudo ./install auto 에서 /usr/bin/env: ‘ruby’: No such file or directory 에러 날 때 :sudo yum install -y ruby 로 설치해주기.aws ssm get-parameters-by-path --path "$PARAMETER_STORE_PATH" --with-decryption --recursive
- private ec2에서
aws ssm get-parameters-by-path --path "$PARAMETER_STORE_PATH" --with-decryption --recursive를 요청했을 때 아래와 같은 에러가 발생!!
An error occurred (AccessDeniedException) when calling the GetParametersByPath operation: User: arn:aws:sts::155965728688:assumed-role/dev-ec2/i-019013be520d703a9 is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:ap-northeast-2:155965728688:key/86e678a0-7ec6-4762-a26e-916b0b72b048 because no identity-based policy allows the kms:Decrypt action (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Request ID: 37f177e6-0748-41f8-addf-6c5646b260da; Proxy: null)
* 대신 kms의 ARN을 넣으라고 한다.-----> 근데 내문제는 이게 아니라 파라미터 스토어에 파라미터를 생성할 때,
KMS 키 소스에 KMS 키 ID를 alias/aws/ssm (aws ssm을 가져와야함) 을 준게 아니라 다른 임시로 만들었던 키를 넣어줘서 decrypt가 안됐던 것임.
(aws ssm get-parameters-by-path --path "$PARAMETER_STORE_PATH" --with-decryption --recursive) 여기서 —with-decryption 을 빼고 하니까 잘 나옴 → decrypt 가 안됨 → 키를 잘못 쓰고 있던 것!

parameter store 에서 key 만들 때 화면. KMS Key ID 에서 잘 선택했는지 확인해야함!!
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 에러https:// 가 안되는 이유는 인증서가 없기(or 안맞기) 때문!


- 검증 대기중에서 너무 오래 걸릴 때....
AWS Certificate Manager 에서
- 인증서 들어가기
- 도메인 -> Route53에서 레코드 생성
- 해당 도메인 클릭 -> 레코드 생성
후 조금 기다리면 적격 으로 바뀐다!
# AWS 자격증명 파일 삭제
$ sudo rm -rf /root/.aws/credentials
# codedeploy-agent 재시작
$ sudo systemctl restart codedeploy-agent
++ 참고사항
- 서버에서 개발안할거니까 jdk 필요없고 jre만 하면 됨
- NACL이랑 보안그룹 아웃바운드 건들지 말고 라우팅 테이블에서 설정해줘야함!
- mysql은 다운 안받아도 되고, 텔넷 이라는것 이용하면 될 것
- ec2들어가서 deploy 잘 됐는지 확인하고 alb랑 연결해야함!
- alb에서 https를 연결해놓으면 내부의 서버 인스턴스 ec2는 http 만 신경쓰면됨.