-> 맞습니다! 완전히 정확한 이해예요!
이때 이 IAM 사용자는 인간이 아니라 프로그램(Spring Boot) 이 사용하는 계정이라고 생각하시면 이해하시기 편할거에요 ~
Spring Boot에서 S3 접근 = “프로그래밍 접근 전용 사용자” + 권한 부여 + 액세스 키 발급” 인거죠 !!
"CodeDeploy가 EC2 를 이용(접근)하기 위해? CodeDeploy 정책을 받아야한다길래헷갈립니다ㅠㅠ”"
"springBoot->S3 에 접근하기위해서 S3FullAccess 가 필요했던 것처럼 ‘대상’ 에 대한 정책을 얻는게 맞지 않나요 ?"
-> 우선 핵심 개념 먼저 집어드릴게요 ~
"IAM 사용자"는 외부(Github Action, spring서버)에서 AWS 서비스를 쓸(접근할) 때 사용해요 !
"역할"은 AWS 내부 서비스(EC2, S3, CodeDeploy)에서 AWS 내부 서비스를 쓸(접근할)때 사용해요 !
그래서"Spring Boot → S3"는 Spring Boot 앱이 클라이언트처럼 IAM 사용자 자격으로 S3에 요청을 보내요 !
"CodeDeploy → EC2"는 CodeDeploy 서비스가 EC2에 배포 명령을 내릴 수 있으려면, 그 EC2가 역할(Role)을 통해 배포 명령을 수락할 수 있어야 해요 ! 그리고 그역할에는 CodeDeploy 권한정책이 포함 되어있어야 해요 ~
"정책"은 자격증, "사용자/역할"은 신분" 이라고 생각하시면 좋아요 !
"springboot, redis, mysql 등 여러 컨테이너를 동시에 띄우고 싶으면 springboot는 ecr 에서 가져오고 redis , mysql 은 docker hub 에서 가져오게 compose.yml 작성하고 deploy.yml 만 약간 수정하면 되는거겠죠?"
-> 네 맞습니다 !! 말씀하신대로 compose.yml과 deploy.yml만 약간 수정하시면 됩니다 :)
혹시라도 추가로 궁금한 점이 있으시면 언제든 편하게 질문 주세요 ~~😊