

위에서 생성한 리포지토리에 도커 이미지를 업로드할 예정.
다음 단계를 사용하여 이미지를 인증하고 리포지토리에 푸시한다. (푸시 명령 보기 참고)
aws ecr get-login-password --region ap-northeast-3 | docker login --username AWS --password-stdin {생략}.dkr.ecr.ap-northeast-3.amazonaws.com
docker build -t myrecipe .
또는
docker build --platform=linux/amd64 -t myrecipe .
(플랫폼 지정할 경우)
# 1. OpenJDK 기반 베이스 이미지 선택
FROM amazoncorretto:17-alpine
# 2. Spring 전용 사용자 생성
RUN addgroup -S spring && adduser -S spring -G spring
# 3. 일반 사용자로 실행
USER spring:spring
# 4. JAR 파일 복사
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} app.jar
# 5. 엔트리포인트 설정
ENTRYPOINT ["java","-jar","/app.jar"]
docker tag myrecipe:{tag} {생략}.dkr.ecr.ap-northeast-3.amazonaws.com/myrecipe:{tag}
docker push {생략}.dkr.ecr.ap-northeast-3.amazonaws.com/myrecipe:latest
그 결과.


[참고] 인프라에서 서버리스와 EC2 인스턴스 선택 옵션이 있는데 아래는 그 상세 설명
인프라 워크플로에서 컨테이너가 실행되는 인프라를 구성할 수 있습니다.
유효한 옵션은 다음과 같습니다.
AWS Fargate
Fargate는 사용한 만큼 지불하는 서버리스 컴퓨팅 엔진입니다. Fargate를 사용하면 보안을 위해 서버를 관리하거나, 용량 계획을 처리하거나, 컨테이너 워크로드를 격리할 필요가 없습니다.
Amazon EC2 인스턴스
인스턴스 유형과 인스턴스 수를 선택하고 용량을 관리합니다.
ECS 애니웨어를 사용하는 외부 인스턴스
Amazon ECS Anywhere는 온프레미스 서버 또는 가상 머신 (VM) 과 같은 외부 인스턴스를 Amazon ECS 클러스터에 등록할 수 있도록 지원합니다.
기본적으로 클러스터를 생성할 때 클러스터는 AWS Fargate용으로 구성됩니다.
EC2 인스턴스를 사용하려면 AWS Fargate를 지우고 Amazon EC2 인스턴스를 선택합니다. EC2 인스턴스를 추가할 때 기존 그룹을 사용하거나 용량 공급자의 기능을 수행할 새 Auto Scaling 그룹을 생성할 수 있습니다.
온프레미스 서버를 사용하려면 AWS Fargate를 지우고 ECS Anywhere를 사용하는 외부 인스턴스를 선택합니다. 클러스터 생성이 완료되면 클러스터 세부 정보(Cluster details) 페이지로 이동하여 외부 인스턴스에 대한 등록 명령을 생성한 다음 모든 외부 인스턴스에서 명령을 실행합니다.

default값

(3)에서 생성한 ECS task 를 패밀리로 선택.

default 네트워킹

로드밸런서 추가설정


배포 성공

[참고]https://velog.io/@ekxk1234/ECS-%EC%B2%B4%ED%97%98%EA%B8%B0#%EC%86%8C%EA%B0%9C