본문 바로가기

⭐ AWS/ECR

ECR 로그인 및 예제 서비스 실행 하기

728x90
반응형

# 프롤로그

얼마나 프로토콜 거렸는지 프롤로그를 프로토콜로 생각이 남

일단 하나의 pod에서 2개의 서비스 포트를 사용해야 하는 작업을 해야해서 테스트 진행

하나는 TCP/IP 프로토콜, 하나는 HTTP 프로토콜을 사용 해야함

# ECR 로그인하기

갑자기 안되서 찾아보고 정리

1. IAM에 일단 관련권한 다 때려 넣는다. 시간 없으니까, 체크는 나중에 하고

2. 명령어 바뀌었어 왜

오 ㅐ자꾸 바뀌냐

원래는 이 명령어 됐었는데 왜 갑자기 안된다고 나오냥

3. 그래서 폭풍 검색

- git bash에서 진행한다. 아래 명령어 실행하면 패스워드 같은거 뜨는데 뭐 자동으로 로긴 되더라. 참고.

aws ecr get-login-password --region ap-northeast-2

- login 성공

$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 2222222222.dkr.ecr.ap-northeast-2.amazonaws.com
Login Succeeded

- push 해보자

빌드 완료된 jar 파일이 있는 폴더에서 dockerfile을 생성하고 아래의 명령어를 입력하여 push 진행

아래의 작업 하기전에 docker desktop 실행 시켜놔야 한다.

docker build -t test .

docker tag test:latest 2222222222.dkr.ecr.ap-northeast-2.amazonaws.com/test:latest

docker push 2222222222.dkr.ecr.ap-northeast-2.amazonaws.com/test:latest

- 아래의 url을 참고하여 작업한다. (docker push 부분)

https://may9noy.tistory.com/1562

 

Springboot "helloword" 띄우기 with docker, pod

# spring boot 간단하게 hello word 띄우기 1. start.spring.io/ 접속 2. 디펜던시 에서 Spring Web 추가 3. Generate 클릭 후 프로젝트 생성 후 압축해제 4. 인텔리j로 프로젝트 오픈 5. 아레 코드 입력 후 실행 package

may9noy.tistory.com

4. 결과 확인

- deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloworld
  namespace: helloworld
  labels:
    app: helloworld
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helloworld
  template:
    metadata:
      labels:
        app: helloworld
    spec:
      hostNetwork: true
      containers:
      - name: helloworld
        image: 1234567891011.dkr.ecr.ap-northeast-2.amazonaws.com/test-011:v_01
        ports:
        - containerPort: 8899

- service.yaml

apiVersion: v1
kind: Service
metadata:
  name: helloworld
  namespace: helloworld
  annotations:
    alb.ingress.kubernetes.io/healthcheck-path: "/healthy"
spec:
  selector:
     app: helloworld
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8899

- ingress.yaml 

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: helloword-ingress
  namespace: helloworld
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
spec:
  #ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: "helloworld"
                port:
                  number: 80

생성 후 서비스를 확인한다.

5. 서비스를 확인해보장

 

- 끝 -

728x90
반응형