목차

 

실행 중이거나 중지된 모든 도커 컨테이너를 강제로 삭제

docker container rm -f $(docker container ls -aq)
  • docker container ls -aq :  모든 컨테이너의 ID를 나열
    • -a는 중지된 컨테이너를 포함하여 모든 컨테이너를 나열
    • -q는 컨테이너 ID만 출력
  • docker container rm -f  :  나열된 컨테이너 ID를 이용하여 해당 컨테이너들을 강제로 삭제
    • -f 옵션은 실행 중인 컨테이너도 강제로 삭제

특정 패턴이나 조건에 맞는 도커 이미지들을 삭제

docker image rm -f $(docker image ls -f reference='diamol/*' -q)
  • docker image ls -f reference='diamol/*' -q : 특정 패턴을 가진 이미지 ID 나열
    • docker image ls는 도커 이미지 목록을 나열
    • -f reference='diamol/*'   : 옵션은 이미지 이름이 'diamol/'로 시작하는 이미지만 필터링하여 나열하도록 지정
      • reference 필터를 사용하면 특정 패턴이나 조건에 맞는 이미지를 검색 가능
    • -q 옵션은 명령어의 출력을 이미지 ID만 나타내도록 제한, 다음 명령어에서 해당 이미지 ID를 사용하기 위한 설정

 

도커 이미지 빌드

cd dockerfile 이 있는 위치
docker image build -t <이미지 이름>

 

 

도커 네트워크 확인

# 네트워크 이름 리스트 확인
docker network ls

# nat 네트워크가 필요하다면 생성
docker network create nat

 

/^[a-zA-Z\uAC00-\uD7A3][a-zA-Z0-9\uAC00-\uD7A3\s]*[a-zA-Z0-9\uAC00-\uD7A3]$/
  • 문자열의 시작을 의미.
  • [a-zA-Z\uAC00-\uD7A3]  문자열이 반드시 영문자(대소문자) 또는 한글로 시작해야 함.
    • \uAC00-\uD7A3  한글
  • [a-zA-Z0-9\uAC00-\uD7A3\s]* 중간에는 영문자, 숫자, 한글, 또는 공백이 포함될 수 있음.
  • [a-zA-Z0-9\uAC00-\uD7A3]$: 문자열이 반드시 영문자, 숫자 또는 한글로 끝나야 함.
    • $: 문자열의 끝을 의미.

 

<인프런 강의 정리>  비전공자도 이해할 수 있는 AWS 입문/실전

EC2 >  로드 밸런서

     로드 밸랜서 생성

Load Balancer(LB) 유형 선택

- AWS 의 EC2  에서 Load Balancer 로 이동하여 로드밸랜서 생성

 

위의 종류에서 Application Load Balancer 를 선택하여 생성

 

Application Load Balancer 생성

기본 구성

  • 로드 밸런서 이름 : 원하는 이름 으로 설정
  • 체계
    • 인터넷 경계 선택
      • 내부 옵션은 Private IP 를 활용할 때 사용
  • IP 주소 유형
    • IPv6을 사용하는 EC2 인스턴스가 없다면IPv4를 선택
      • IPv4 형태 :121.13.0.5
      • Pv6의 형태 : 2dfc:0:0:0:0217:cbff:fe8c:0

네트워크 매핑

 - 가용 영역 : 어떤 가용 영역으로만 트래픽을 보낼 것인지 제한하는 기능,

       아직 가용 영역에 대한 제한을 할 필요가 없으므로 모두 선택

 

보안 그룹

- EC2 를 다른 탭에서 열어서 보안그룹으로 들어가서 생성

     인바운드 규칙에 HTTP 와 HTTPS 추가 -> 모든 IPv4 허용으로 설정

 

방금 생성한 보안 그룹만 선택

리스너 및 라우팅

ELB 로 들어온 요청을 어떤 대상으로 보낼지 생성

위 사진에서 대상 그룹 생성 클릭 하면 아래의 그림이 나온다.

 

- 대상 그룹 생성 - 

    → EC2 인스턴스로 요청을 보낼 것이므로 인스턴스 선택

 

- 프토토콜, IP 주소 유형, 프로토콜 버전 설정 단계

* ELB가 사용자로부터 트래픽을 받아 대상 그룹에게 어떤 방식으로 전달할 지 설정 

   

대상 그룹 이름은 어플리케이션을 구별하기 쉽게 작성

    나머지는 아래와 같이 설정

HTTP(HTTP1), 80번 포트, IPv4 주소로 통신을 한다 는 의미

 

- 상태검사 설정 단계 

상태 검사 : EC2 내 서버가 잘 작동하고 있는지 확인하기 위해 만드는 기능

 

상태 검사를 위와 같이 추가한 후에 서버에 /health API 를 만들어서

ELB에서 요청을 보낼 때 마다  200 번대 응답이 잘 날라오는지 확인이 가능하도록 추가 필요

ELB : 상태 검사 API 추가 예시

 

- 대상 등록 단계 

* 인스턴스를 선택한 후 "아래에 보류 중인 것으로 포함" 을 선택

* 대상 그룹 생성 클릭

(대상 그룹 생성 완료)

------------------------------------------------------

 

다시 리스너 및 라우팅으로 돌아와서  아래와 같이  생성된 대상 그룹을 선택

 

 

로드 밸랜서 생성 버튼을 눌러서 완료

EC2 보안 그룹(Security Group) 설정 확인

  • 접속하려는 서버의 포트에 접근권한이 있는지 확인

 

애플리케이션 권한 확인

  • 포트 3000 : 권한이 필요없는 포트
  • 포트 80 : 시스템 포트 → 루트 권한이 필요하다. 루트 권한 없이 포트 80을 사용하려고 하면 오류가 발생
$ sudo npm run start:prod

- sudo 이용하여 실행 하면 해결된다.

<인프런 강의 정리>  비전공자도 이해할 수 있는 AWS 입문/실전

1.  AWS Route53 에서 도메인을 등록

 

도메인을 구매하는 과정에서 

정상적으로 도메인을 등록하기 위해서 입력한 이메일로 메일이 날라오기때문에,

이메일을 정확히 입력을 해야한다.

 

2. Route53의 도메인을 EC2에 연결

레코드 생성 1

 

 

레코드 생성 2

 

위와 같이 생성 할 경우

              api.my-gymlogs.com 의 도메인으로 접속했을 때 15.164.52.97IP 주소로 연결시켜준다

 

여기서 

  주 도메인 : my-gymlogs.com

  서브 도메인 : ___.my-gymlogs.com

 

# 레코드 유형

DNS에 공통적으로 있는 설정 중 하나가 레코드 유형이다. 많은 레코드 유형 중 아래 두 가지는 알고 있어야한다.

  1. A 레코드 :  도메인특정 IPv4 주소에 연결시키고 싶을 때 사용
  2. CNAME 레코드 : 도메인특정 도메인 주소에 연결시키고 싶을 때 사용

+ Recent posts