일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- AWS Codedeploy
- java stream api
- github ec2 deploy
- github action codedeploy
- c++ 빌드
- javascript image slider
- Java Wrapper Class
- java hashCode
- equals
- list remove
- github deploy
- image slider
- Java lombok
- java 비동기처리
- kotest
- Spring Aspect
- equals override
- github CI
- java CompletableFuture
- AliasFor
- hashcode override
- Java
- vanilla js image slider
- 코드포스
- SpringBootApplication
- github action
- github CI/CD
- lombok Builder
- Github action deploy
- stream groupingby
- Today
- Total
기록창고
Github action 으로 EC2 에 spring boot 배포하기(2) 본문
1 에서는 빌드한 파일을 S3에 옮겼습니다.
이제 Code Deploy 를 이용하여 S3 있는 빌드파일을 EC2로 옮겨서 실행시키는 일만 남았네용
code deploy 는 깃허브를 통해서 파일을 가져올수도 있고, S3 를 이용해서도 가져올 수 있습니다.
근데 빌드파일을 깃허브에 올리는건 좀 이상(?)하다고 생각하고 있습니다.. 올려도 상관은 없습니다!
https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/tutorial-ecs-deployment.html
자습서: Amazon ECS 서비스 배포 - AWS CodeDeploy
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
https://jojoldu.tistory.com/281?category=777282
1) AWS로 배포하기 시리즈 - 1. Code Deploy 사용하기
AWS로 전체 시스템 구축해야 할 일이 생겨 AWS 배포 환경 시리즈를 시작합니다. 시리즈 과정은 CodeDeploy -> Code Pipeline -> ELB & Auto Scaling Group -> Beanstalk 으로 진행될 예정입니다. 저는 아래와 같은..
jojoldu.tistory.com
위의 두 글을 참고 했습니다.
자습서에 보면 사전 조건이라는 탭이 있는데, 이걸 필수적으로 먼저 해야됩니다.
안하면 권한문제 때문에 하다가 문제가 생긴다네용
첫번째로 IAM 유저를 만듭니다.
https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/getting-started-provision-user.html
위의 정책은 IAM 사용자에게 AWS Lambda 컴퓨팅 플랫폼, EC2/온프레미스 컴퓨팅 플랫폼 및 Amazon ECS 컴퓨팅 플랫폼을 배포하는 데 필요한 액세스 권한을 부여합니다.
여기서 발급받은 사용자는 Github action 에서 S3 를 업로드 할 때처럼 ID, Key 를 잘 저장해두셔야합니다.
이 사용자가 Codedeploy 를 실행해서 S3 에 있는 데이터를 EC2 로 옮기는 권한을 받고
github action 에서 aws cli 로 deploy 를 실행하기 때문입니다!
AWS 콘솔에서 IAM 에서 사용자에서 사용자를 추가합니다.
정책을 만듭니다
아래는 권한입니다. 자습서에도 나왔습니당
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "autoscaling:*", "codedeploy:*", "ec2:*", "lambda:*", "ecs:*", "elasticloadbalancing:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoles", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:*", "ssm:*" ], "Resource" : "*" } ] }
정책을 이름을 정합니다.
생성을 누르면 정책이 만들어지고
다시 사용자 추가를 하여, 아까 만든 정책을 검색하여 선택해서 쭉쭉 진행합니다
다 만들면 ID 와 KEY 가 나올텐데, github action 에서 쓰일것이니 잘 저장해주시기 바랍니다.
잃어버리면 다시 삭제했다가 만들면 됩니당
그리고 EC2 에 codedeploy agent 를 설치합니다.
설치는
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html
Installing the AWS CLI version 2 on Linux - AWS Command Line Interface
Installing the AWS CLI version 2 on Linux This section describes how to install, update, and remove the AWS CLI version 2 on Linux. The AWS CLI version 2 has no dependencies on other Python packages. It has a self-contained, embedded copy of Python include
docs.aws.amazon.com
여기 잘 나왔습니다. ㅎㅎ;
설치 후에서는 EC2 에도 역할을 부여 합니다
IAM 역할이란 무엇입니까?
IAM 역할은 신뢰하는 개체에 권한을 부여하는 안전한 방법입니다.
여기서 신뢰하는 개체란 aws 안에 있는 서비스 같습니다. 사용자를 만들어서 각 개체에 들어가서 설정하는 것이 아니라
객체에 바로 설정하는 방법 같습니다. (추측입니다.. )
IAM 에서 역할 탭에 가서 역할을 만듭니다.
2개를 만들 예정인데, 하나는 EC2 에서 사용할 역할이고 나머지 하나는 Codedeploy 에서 사용할 역할입니다.
EC2는 S3 Full Access 권한을 넣어주고,
CodeDeploy는 AWSCodeDeployRole 를 넣어줍니다.
그리고 EC2 설정에 가서 IAM 역할을 바꿔줍니다.
그러면 설정이 끝납니다..
'devops(?)' 카테고리의 다른 글
terraform (0) | 2022.12.19 |
---|---|
Github action 으로 EC2 에 spring boot 배포하기(3) (1) | 2020.08.07 |
Github action 으로 EC2 에 spring boot 배포하기(1) (0) | 2020.07.23 |
Https 적용하기 (AWS ELB, Nginx) (1) | 2020.07.08 |