반응형
1. ECR 생성 후 컨테이너 이미지 Push
1) EC2에 docker 설치 및 build
vim Dockerfile
FROM nginx:1.21.1
COPY ./index.html /usr/share/nginx/html/index.html
EXPOSE 80
*COPY 부분 뒤쪽 /usr/share/nginx/html/index.html 경로에 설치, ./경로에 index.html 생성 후 복사
[root@ip-172-20-0-181 ec2-user]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx testnginx d74a43f1873c 26 seconds ago 133MB
2) ECR 레포지토리 생성
3) ECR 로그인
- 직접 정책 연결 - AmazonEC2ContainerRegistryFullAccess 연결
- aws cli 로그인 후 ecr 로그인을 위한 토큰 값 출력
* aws cli 로그인
[root@ip-172-20-0-181 ec2-user]# aws configure
AWS Access Key ID [None]: AKIA4QDS3XNGMBJNAAAA
AWS Secret Access Key [None]: RyiIA7ainkw6dvU1rwZttJ7aTFhdpAAAA/AAAA
Default region name [None]: ap-northeast-2
Default output format [None]: json
* aws cli 토큰 값 : aws ecr get-login-password --region [해당리전]
[root@ip-172-20-0-181 ec2-user]# aws ecr get-login-password --region ap-northeast-2
AAAAAAAAAAFkIjoiSytHSFBMWkduRlVjZFNoVWExU2NaalB5TU1WcERFaUwzbnJTUWcrdGVNUHo0dUc0azZhWTh6WG9yNmtreDlsM243cnRpc1R1ajNQZlFlaXhpNm10emVZbjVyR0prMWNNTVh6NGxCdVJ1azdsb0RsMlVWbDFGZlJlK0F0TVNPeEFCOGFBOXViRGF6eDZ4OHhzdExHQzJ3VUhzLzFWNlY5NkdkV3RQaW9RNlFaWE0rOGF3VGZBQkVHMTdsMTlIMUIybDB0K2J6SSsydVkvbmdLRUpEN0dzWXQ4TWZxSHBNcVlqOGpxNnZmeVRWTEY3UFFuRTZiZWs5c2djeGxoOEJHYjhJVjBzbmU2WlcvYlJBa3NpWHB4UnNqSFNTOHNiODNEaEJ0K09YbEZuek1uZ1FRNm1IQm9JZjN4YjFOQ2RqYU1UaFJ6UHdLM1l1QndMeWtSREUrUmFHQmc4d1gzUm9LdDNZenpmUzZ3VmlxSHp3UjJlcFhZL0hzUnV5dkRiWmNtTXUrZ0pQdWxXRk5iSWlMaVFIWnBaT0V4Y1JIeWxiWHBYRnlubEFiaWlPcytORkZ3dmN2bExWUldGNHplUEVZazc2RnhDTXJXYjB5WUVGd1JtSzhzTUZhcENjSXVJS3pxQVdoZDBPditTSDZGNjd5a1crdzZpVDZZTm02U1J1ekRIY2xyajZ6NU50cUh6SWtQYUphVDNMMVNISlVhZ2VlbFhadlk2QWxYcjIra0JqYks5dGl2Q0Q0c2pWc09mK1FhQUk3OFJQb1hvV3Rjb09DMC9XVEdXamJuTk1yY3FlRzQwVTNqaEQ1VURJY0NJVzNBQ2YzcTY1NkQyMTZ0SkJvUWo3clE5N1RzNTlFOStZZ1lnUUFKSXNxanNxWHFXb3laWXp5d0VLVnBhUUdSd0pGVmlwVWR5Y2dYRW8wdXpIL2l5Yk5FY2V4THdRQk42WE9qV0ZwVmNUSUJycUprUC9wM05TM3Vqci94VWJhaHpnanZBNlNSOWhsSFk3MVlRK1VGeURTWG5GNzNpbW1PUFVCbVI5YUdOeUZuOE82bHV5SVNsNlRMbFRCdTBmOVFvUEI5eXR3YzlsY05mWUtVdWlsT0xYb3JNZDVLUEZua1FTSkhtazVYVWtIaW83UHlYa3VpWCtCOGhMeDY3azJBVDlQc25tTjBzL0lEQklXVDFvcmI4UDJtMjNOTnRTY1YvaGQ0Zkt3Uno0aDVkOEpITDZnS2c1MUZYTjVqR2wxaVZUWVFhaWNQb3ZVVTVKU0RIcTM4NjdaMktkcy9WMmsyMzhaY2Vaem1zR1JsbWJzY2JMU3plTGFMbFFlUzlUWk9QSWcrWHc5Q0grVmhtVUdQSDBtRU1ZUFpJMjlGVjJETFBWbXNuRVlSN2lpMG1IY2VqRGhXNkt2WnkxST0iLCJkYXRha2V5IjoiQVFJQkFIaEFPc2FXMmdaTjA5V050TkdrWWM4cXAxMXhTaFovZHJFRW95MUhrOExYV2dFdUd2anJROVJ2S3RrRWtTZGExSG9QQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNWTh0K216YzlpY0VOdEMvbkFnRVFnRHNDRnFKbXMwWTRLeFhUdktITE9qK3czUk5MTDYyMGRQSTNhT2pkZFJMN2dEZ3lvSnFOUVZJeCtuYmdMNUxraG4xNGxIeGh1N3lDSlorblVRPT0iLCJ2ZXJzaW9uIjoiMiIsInR5cGUiOiJEQVRBX0tFWSIsImV4cGlyYXRpb24iOjE3MAAAAAAAAAA
* docker login -u AWS -p [토큰값] [ECR 레포지토리 URI]
[root@ip-172-20-0-181 ec2-user]# docker login -u AWS -p AAAAAAAAAAFkIjoiSytHSFBMWkduRlVjZFNoVWExU2NaalB5TU1WcERFaUwzbnJTUWcrdGVNUHo0dUc0azZhWTh6WG9yNmtreDlsM243cnRpc1R1ajNQZlFlaXhpNm10emVZbjVyR0prMWNNTVh6NGxCdVJ1azdsb0RsMlVWbDFGZlJlK0F0TVNPeEFCOGFBOXViRGF6eDZ4OHhzdExHQzJ3VUhzLzFWNlY5NkdkV3RQaW9RNlFaWE0rOGF3VGZBQkVHMTdsMTlIMUIybDB0K2J6SSsydVkvbmdLRUpEN0dzWXQ4TWZxSHBNcVlqOGpxNnZmeVRWTEY3UFFuRTZiZWs5c2djeGxoOEJHYjhJVjBzbmU2WlcvYlJBa3NpWHB4UnNqSFNTOHNiODNEaEJ0K09YbEZuek1uZ1FRNm1IQm9JZjN4YjFOQ2RqYU1UaFJ6UHdLM1l1QndMeWtSREUrUmFHQmc4d1gzUm9LdDNZenpmUzZ3VmlxSHp3UjJlcFhZL0hzUnV5dkRiWmNtTXUrZ0pQdWxXRk5iSWlMaVFIWnBaT0V4Y1JIeWxiWHBYRnlubEFiaWlPcytORkZ3dmN2bExWUldGNHplUEVZazc2RnhDTXJXYjB5WUVGd1JtSzhzTUZhcENjSXVJS3pxQVdoZDBPditTSDZGNjd5a1crdzZpVDZZTm02U1J1ekRIY2xyajZ6NU50cUh6SWtQYUphVDNMMVNISlVhZ2VlbFhadlk2QWxYcjIra0JqYks5dGl2Q0Q0c2pWc09mK1FhQUk3OFJQb1hvV3Rjb09DMC9XVEdXamJuTk1yY3FlRzQwVTNqaEQ1VURJY0NJVzNBQ2YzcTY1NkQyMTZ0SkJvUWo3clE5N1RzNTlFOStZZ1lnUUFKSXNxanNxWHFXb3laWXp5d0VLVnBhUUdSd0pGVmlwVWR5Y2dYRW8wdXpIL2l5Yk5FY2V4THdRQk42WE9qV0ZwVmNUSUJycUprUC9wM05TM3Vqci94VWJhaHpnanZBNlNSOWhsSFk3MVlRK1VGeURTWG5GNzNpbW1PUFVCbVI5YUdOeUZuOE82bHV5SVNsNlRMbFRCdTBmOVFvUEI5eXR3YzlsY05mWUtVdWlsT0xYb3JNZDVLUEZua1FTSkhtazVYVWtIaW83UHlYa3VpWCtCOGhMeDY3azJBVDlQc25tTjBzL0lEQklXVDFvcmI4UDJtMjNOTnRTY1YvaGQ0Zkt3Uno0aDVkOEpITDZnS2c1MUZYTjVqR2wxaVZUWVFhaWNQb3ZVVTVKU0RIcTM4NjdaMktkcy9WMmsyMzhaY2Vaem1zR1JsbWJzY2JMU3plTGFMbFFlUzlUWk9QSWcrWHc5Q0grVmhtVUdQSDBtRU1ZUFpJMjlGVjJETFBWbXNuRVlSN2lpMG1IY2VqRGhXNkt2WnkxST0iLCJkYXRha2V5IjoiQVFJQkFIaEFPc2FXMmdaTjA5V050TkdrWWM4cXAxMXhTaFovZHJFRW95MUhrOExYV2dFdUd2anJROVJ2S3RrRWtTZGExSG9QQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNWTh0K216YzlpY0VOdEMvbkFnRVFnRHNDRnFKbXMwWTRLeFhUdktITE9qK3czUk5MTDYyMGRQSTNhT2pkZFJMN2dEZ3lvSnFOUVZJeCtuYmdMNUxraG4xNGxIeGh1N3lDSlorblVRPT0iLCJ2ZXJzaW9uIjoiMiIsInR5cGUiOiJEQVRBX0tFWSIsImV4cGlyYXRpb24iOjE3MTAAAAAAAAAA 859234351948.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
4) ECR에 이미지 Push
[root@ip-172-20-0-181 ec2-user]# [root@ip-172-20-0-181 ec2-user]# docker tag nginx:testnginx 859234300000.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx:latest
[root@ip-172-20-0-181 ec2-user]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
859234351948.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx latest d74a43f1873c 49 minutes ago 133MB
nginx testnginx d74a43f1873c 49 minutes ago 133MB
* docker push [ECR URI]:[이미지태그]
[root@ip-172-20-0-181 ec2-user]# docker push 859234300000.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx:latest
The push refers to repository [859234351948.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx]
e2fc51bf1f8d: Pushed
d47e4d19ddec: Pushed
8e58314e4a4f: Pushed
ed94af62a494: Pushed
875b5b50454b: Pushed
63b5f2c0d071: Pushed
d000633a5681: Pushed
latest: digest: sha256:c614e600ed78ea605970d225b84387beff050bf3e2a5ec85d3e6b78b70e29c5d size: 1777
5) 레포지토리 확인
2. ECS 클러스터 생성 및 구성하기
1) ECS 클러스터 생성하기
2) ECS 작업 정의 구성하기
- ECS 태스크 실행 시 역할을 할 IAM Role 우선 생성
- AmazonECSTaskExecutionRolePolicy
- ECS 태스크 정의 및 구성
3. ALB 구성 및 생성
1) Target Group 생성
2) ALB 생성
4. ECS 서비스 배포
1) ECS 서비스 생성
2) 로드밸런서와 ECS 서비스 연결하기
3) ECS 서비스 및 태스크 실행 확인
반응형
'Cloud > AWS' 카테고리의 다른 글
TGW VS DX Gateway (0) | 2025.04.16 |
---|---|
[AWS] ECS Container 접속 (0) | 2025.01.24 |
[AWS] Amazon EventBridge로 EC2 인스턴스 기동, 정지 스케쥴 설정 (0) | 2025.01.17 |
[AWS] SSL 인증서 적용 (0) | 2025.01.13 |
[AWS] VPC Endpoint만 S3에 연결할 수 있도록 제한 (0) | 2024.09.26 |