CICD

백엔드 CI/CD에 필요한 AWS 지식

shinminkyoung 2024. 10. 8. 09:23

배포(Deployment)란?

배포: 다른 사용자들이 ‘인터넷을 통해서’ 사용할 수 있게 만드는 것

개발할 때는 localhost라는 주소로 하는데, 이는 다른 컴퓨터에서 접근 불가함

→ 다른 IP나 도메인과 같이 고유의 주소를 부여해야 함

→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)배포: 다른 사용자들이 ‘인터넷을 통해서’ 사용할 수 있게 만드는 것

개발할 때는 localhost라는 주소로 하는데, 이는 다른 컴퓨터에서 접근 불가함

→ 다른 IP나 도메인과 같이 고유의 주소를 부여해야 함

→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)개발할 때는 localhost라는 주소로 하는데, 이는 다른 컴퓨터에서 접근 불가함

→ 다른 IP나 도메인과 같이 고유의 주소를 부여해야 함

→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)→ 다른 IP나 도메인과 같이 고유의 주소를 부여해야 함

→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)

배포(Deployment)란?

배포: 다른 사용자들이 ‘인터넷을 통해서’ 사용할 수 있게 만드는 것

개발할 때는 localhost라는 주소로 하는데, 이는 다른 컴퓨터에서 접근 불가함

→ 다른 IP나 도메인과 같이 고유의 주소를 부여해야 함

→ 다른 컴퓨터에서도 그 주소로 접속할 수 있게 됨

⇒ 이게 ‘배포’

EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?

EC2란?

컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스

(쉽게 얘기하면 ‘하나의 컴퓨터’를 의미)

EC2를 왜 배울까?

서버를 배포하기 위해서는 하나의 컴퓨터가 필요한데, 여기서 서버를 배포해 다른 사용자들이 접근할 수 있게 할 수 있는데, 24시간 동안 켜놔야 함 & 보안 이슈 (불편함)

→ 내 컴퓨터가 아닌 EC2 컴퓨터를 이용하는 것

1. EC2 세팅하기 - 리전(Region) 선택

로그인

  1. EC2 서비스에 들어감
  2. 가장 먼저 선택해야 하는 것은 region

Region은 무엇인가?

인프라를 지리적으로 나누어 배포한 각각의 데이터 센터

ec2는 각각의 컴퓨터를 빌려 쓰는 것이라 했는데, 지역적으로 빌릴 컴퓨터를 선택할 수 있는 것

Region의 특징

  1. aws는 다양한 region은 가지고 있음
  2. 각 region은 고유의 이름을 가지고 있음

Region의 선택 기준

애플리케이션은 네트워크를 통해 통신하는데, 사용자의 위치와 애플리케이션을 실행하는 컴퓨터의 위치가 멀면 멀수록 속도가 느려짐

애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리

(예) 한국 유저들이 많이 사용한다 → 아시아 태평양(서울) 선택

많이 하는 실수

리전을 선택하고 EC2를 생성해놓고, 다른 리전에 들어가서 생성한 EC2가 없다고 당황할 수 있음

리전마다 EC2가 따로 관리됨

2. EC2 세팅하기 - 기본 설정

인스턴스 시작

  • ubuntu를 선택하는 이유
    • 맥과 윈도우는 너무 친절해서 용량과 성능을 많이 차지해서 필요한 기능만 있는 os를 선택하는 게 유리하기 때문

인스턴스란?

  • ec2에서 빌리는 컴퓨터 한 대를 의미하는 단위

인스턴스 유형이란?

  • 컴퓨터 사양을 의미함
    • 프리티어를 사용해도 성능에 큰 문제 x

키페어란?

  • ec2 컴퓨터에 접근할 때 사용하는 비밀번호(열쇠) 역할
  • 직관적으로 설정하는 게 포인트

3. EC2 셋팅하기 - 보안그룹 설정

  • ‘편집’을 누르고
  • vpc의 개념은 크게 중요하지 않음

보안그룹이란?

  • AWS 클라우드 내에서의 네트워크 보안
  • (기능) 접근해도 되는 요청인지 보안요원이 먼저 검사함 → 이후에, 인스턴스에 들어갈 수 있음
  • 방화벽 역할을 할 보안 그룹을 만들고, 보안 그룹의 규칙을 지정함

<aside>

  • 보안 그룹 규칙 종류
    1. 인바운드 트래픽: 외부에서 ec2 인스턴스로 보내는 트래픽
    2. 아웃바운드 트래픽: ec2 인스턴스에서 외부로 나가는 트래픽 </aside>
  • 보안 그룹에서는 IP 번호와 Port 번호를 지정할 수 있음
    • ssh란?
      • ec2에 원격 접속하기 위한 경로
    • 이 포트 번호에 허용이 되어야만 접속할 수 있음

IP와 Port의 개념

IP의 개념

네트워크 상에서 특정 컴퓨터를 가리키는 주소

Port의 개념

한 컴퓨터 내에서 실행되고 있는 프로그램의 주소

  • 한 컴퓨터에서는 여러 프로그램이 동시에 실행되고 있음
  • 외부에서 특정 컴퓨터 내에 있는 특정 프로그램에서 접속하고 싶을 때, 이때 IP 주소 뿐만 아니라 port 번호까지 알아야 접근이 가능함

브라우저 창에서 포트번호를 나타내지 않는 이유는?

브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어있음

80번 포트 번호를 원하지 않으면 명시적으로 나타내면 됨

잘 알려진 포트 (well-known port)

포트번호: 0번 ~ 65,535번까지 존재

0~1023은 규약을 통해 나름 역할이 정해져 있음 → well-known port

  • 22번: SSH → 원격 접속을 위함
  • 80: HTTP 통신
  • 443: HTTPS 통신

4. EC2 셋팅하기 - 스토리지 구성

ec2도 하나의 컴퓨터이기에 여러 파일들을 저장할 저장 공간이 필요함

→ 이를 ‘EBS (elastic block storge)라 부름

이는 EC2 안에 부착되어 있는 일종의 하드디스크

이와 같은 저장 공간을 좀 더 포괄적으로, ‘스토리지 또는 볼륨’ 이라 부름

  • 스토리지 구성 → 하드디스크를 설정하는 곳

5. EC2 접속하기

(인스턴스 대시보드)

퍼블릭 IPv4 주소

  • 새로 만든 ec2의 IP 주소
  • 외부에서 접속할 수 있는 주소이기도 함

인스턴스 상태 중

  • 인스턴스 중지: 컴퓨터 끄는 것
  • 인스턴스 시작
  • 인스턴스 재부팅
  • 인스턴스 최대 절전 모드
  • 인스턴스 종료: 컴퓨터 ‘삭제’ → 다시 인스턴스를 만들어야 함

접속하기 위해서는 [연결] 버튼을 누름

6. 탄력적 IP 연결하기

왜 필요한가?

  • 할당받은 IP는 임시적인 IP
  • 인스턴스 중지했다가 다시 실행하면 바껴있음
  • 고정적 IP 가 필요 → 이게 ‘탄력적 IP’

SpringBoot 서버를 EC2에 배포하기

비용나가지 않게 EC2 깔끔하게 종료하기

인스턴스 종료할 때 탄력적 IP도 같이 종료해야 함

순서

  1. 인스턴스 종료
  2. 탄력적 IP 삭제 [탄력적 IP 주소 릴리즈]

이후에는 도메인을 연결해야 함 (다음 섹션에서 계속)