<인프런 강의 정리>  비전공자도 이해할 수 있는 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 레코드 : 도메인특정 도메인 주소에 연결시키고 싶을 때 사용
<인프런 강의 정리>  비전공자도 이해할 수 있는 AWS 입문/실전

S3 에서만 사용하는 용어 정리

버킷(Bucket)

  • S3에 여러개의 저장소를 만들수 있다. 여기서 하나의 저장소를 버킷이라고 한다.

객체(Object)

  • S3 에 업로드한 파일을 보고 S3에서는 객체라고 칭한다. S3 버킷에 업로드된 파일

 

S3 버킷 생성

원하는 S3 버킷이름을 설정

 

이 버킷의 퍼블릭 액세스 차단 설정

  •  그림에 있는 체크를 해제 후

  • 아래와 같이 설정

이유는 용도에 따라 다르지만, 여기서는 다른 사람들이 이미지를 다운 받을 수 있게 설정하기 위해서 이와 같이 설정

 

생성된 S3 버킷 권한 / 정책 설정

  • 정책?  :  권한을 정의하는 json 문서를 의미

해당 메뉴로 이동해서 <편집> 클릭

 

+ 새 문 추가 선택

  • S3 검색 후 선택하여 GetObject 선택

  • 리소스 추가
    • 리소스 유형 : object
    • 리소스 ARN
      • arn:aws:s3:::{내가 생성한 S3 버킷이름}/* : 내가 생성한 S3 버킷 에 있는 모든 object(파일)
      • ARN이란? ⇒ Amazon Resource Number의 약자이다. AWS에 존재하는 리소스를 표현하는 문법

  • 생성된 정책에서 수정
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Statement1",
			"Principal": "*", // {} -> "*"
			"Effect": "Allow",
			"Action": [
				"s3:GetObject"
			],
			"Resource": [
				"arn:aws:s3:::gymlog-static-files/*"
			]
		}
	]
}

   - "Principal" : 모든 사람에게 권한 허용

 

 

<참고 자료>

비전공자도 이해할 수 있는 AWS 입문/실전

* Route 53에서 EC2에 연결되어 있던 레코드가 있으면 삭제

새롭게 레코드 생성

레코드 이름은 원하는대로 설정

 

HTTPS 적용을 위한 인증서 발급

certificate Manager 로 이동 ->  인증서요청 -> 퍼블릭 인증서 요첨

 

도메인 이름 :  자신이 설정한 도메인이름 입력 (ex) api.mygymlogs.com

 

검증 방법 : DNS 검증 선택

 

키알고리즘 : RSA 2048  선택

 

 

인증서 검증

Route 53에서 레코드 생성 을 클릭  ->  우리가 생성한 도메인을 선택하여 레코드 생성을 클릭

 

ELB에 HTTPS 설정하기

EC2 > 로드밸랜서 >  (생성한 로드밸런서) 로 이동

 

리스너 추가 클릭

HTTPS 추가

 

생성한 대상 그룹 선택

 

보안 리스너 설정 - 발급 받은 인증서 선택

 

 

HTTP로 접속할 경우 HTTPS로 전환되도록 설정

 

기존 HTTP:80 리스너를 삭제 후  리스너 추가

아래의 그림과 같이 설정

+ Recent posts