[클라우드컴퓨팅] 지방기능경기대회 문제풀이

박준호·2022년 12월 5일
5

기능경기대회

목록 보기
1/3
post-thumbnail

2023년도 클라우드컴퓨팅 직종 지방기능경기대회 준비를 위해 2022년도 클라우드컴퓨팅 지방기능경기대회 공개과제를 풀이해보자.

2022년도 클라우드컴퓨팅 지방기능경기대회 1과제는 아래와 같다.

처음 봤을때 굉장히 어려워 보였다.

먼저 모르는 서비스를 공부해보자

🧐 VPC Peering

  • VPC Peering이란 무엇일까?
    - VPC Peering이란 서로 다른 VPC간 통신이 가능하도록 연결하는 것을 말함.
  • 어떤 경우에 VPC Peering을 맺을까?
    - 서비스 구분이나 관리 목적에 따라 구분된 VPC간 통신이 필요할 때, 구성해놓은 VPC에 더 이상 사용할 수 있는 IP가 없을 때 사용됨.
  • VPC Peering을 맺을때 제약사항?
    - 서로다른 VPC간의 VPC Peering을 맺을때 제약사항은 각 VPC의 대역이 겹치면 안됨.
    • 대역이 겹치면 VPC 간에 Peering자체가 불가능해짐
  • VPC Peering의 특징
    - 다른 계정의 VPC랑 Peering생성이 가능하고 다른 리전의 VPC랑도 Peering생성이 가능함

(출처 : https://kim-dragon.tistory.com/14)

나머지 서비스들은 전부 알고있고, 사용경험 또한 있다.
바로 풀어보자.

🎬 문제풀이 과정

대부분 로 설명해서 지루할수 있지만 들어온 김에 끝까지 읽어보자.

🍭 VPC, Subnet

먼저 아키텍처를 보면 VPC A 라는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개를 가지고 있는 VPC와 VPC B라는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개를 가지고 있는 VPC를 생성해보자.
VPC와 서브넷을 생성할 때에는 IPv4주소, CIDR 을 잘 확인하자.

🍭 Routing Table

VPC와 서브넷을 잘 생성했다면 라우팅 테이블 메뉴에서 A VPC의 퍼블릭 라우팅 테이블, 프라이빗 라우팅 테이블을 각각 한개씩 만들고 VPC B도 퍼블릭 라우팅 테이블, 프라이빗 라우팅 테이블을 각각 한개씩 만든다.

모든 라우팅 테이블의 명시적 서브넷 연결 은 퍼블릭 라우팅 테이블 이면 해당 VPC의 퍼블릭 서브넷, 프라이빗 라우팅 테이블이면 해당 VPC의 프라이빗 서브넷을 추가해주면 된다.

🍭 IGW

다음, 인터넷 게이트웨이(이하 IGW) 를 2개 생성해서 VPC마다 하나씩 연결하고 해당 VPC의 퍼블릭 라우팅 테이블에 라우팅 메뉴에 해당 VPC의 IGW를 라우팅 해주자.

🍭 NAT

다했다면 NAT 게이트웨이를 각 VPC의 퍼블릭 서브넷에 하나씩 생성해주고, 해당 VPC의 프라이빗 라우팅 테이블에 라우팅 메뉴에 해당 VPC의 NAT 게이트웨이 를 라우팅 해주자.

🍭 VPC Peering

다음, VPC Peering 을 생성해야 한다. VPC 메뉴 에서 피어링 연결 이라는 메뉴를 들어간다.
피어링 연결 생성 이라는 메뉴를 누르게 되면 아래와 같은 화면이 뜰것이다.

이름에서 알수 있듯이 요청자 VPC수락자 VPC 가 존재한다. 쉽게 생각하면 그냥 서로 연결해주는 것 같다.
요청자에 A VPC 를 넣고 수락자에 B VPC 를 넣어보자.
계정은 자신의 계정만 사용하기 때문에 내 계정 리전 또한 현재 리전만 사용하기 때문에 현재 리전 을 선택해준다.
설정을 마치고 피어링 연결 생성 을 누르면 Peering 상태에 수락 대기중 이라는 글이 뜨는데 해당 VPC Peering을 선택하고 작업 버튼을 눌러 요청 수락을 눌러주자.

🍭 EC2

Peering 연결을 완성했다면, 다음은 Bastion 만들어 주기 이다.
1과제 아키텍처를 보면 각 VPC의 퍼블릭 서브넷에 Bastion 이 있는 것을 알수 있다.
Bastion 생성시 주의할점은 Bastion의 위치는 public인것을 확인하고 퍼블릭 ip 자동 할당 활성화 해주면 된다.

생성했다면 한번 테스트 해보면 좋다.

잘 접속 된다면, 다음은 Service 호스트 생성이다.
아키텍처를 보면 각 VPC의 Private 서브넷에 EC2가 하나씩 있는데 바로 그걸 만들어 주는것이다.
여기서 주의점은 각 Service 호스트 들은 그들이 속한 VPC의 Bastion에서만 접속이 가능하도록 만들어야 한다는 것이다.
이를 위한 방법은 Service 호스트에 연결된 보안그룹의 SSH 22번 포트Bastion의 보안그룹으로 설정해주면 된다.

Service 호스트를 두개 다 만들었다면 각 Service 들을 Bastion을 통해 접속해 두 Service 호스트에 httpd(아파치)를 깔아주자.

sudo yum install httpd	<--아차피 설치하기
sudo systemctl start httpd	<--아파치 시작하기
sudo systemctl status httpd	<--아파치 상태 확인

🍭 ALB

거의 다 왔다, 이제 ALB를 만들어주자.
여기서 ALB를 만들기 전에 알아야 할 것이 있다. ALB는 2개 이상의 가용영역을 필수로 한다.
그러므로 ALB의 타겟이 있는 B VPC에 서브넷을 하나 더 만들어 주어야 한다.

처음에 만들었던 규칙대로 B VPC 에 새로운 프라이빗 서브넷을 다른 가용영역을 사용하여 만들자.

서브넷 생성을 완료했다면, ALB를 생성해보자.
ALB의 생성 방식은 internet-facinginternal 로 나뉜다.
우린 VPC 내부 ALB를 생성할거기 때문에 꼭 Internal을 선택하자.
VPC는 B를 선택하고 가용영역을 두 개 선택해주자. Mapping에는 각 가용영역의 프라이빗 서브넷을 선택해주자.
타겟그룹에는 당연히 Service B 호스트 를 추가 해줘야 한다.
타겟그룹의 헬스체크 경로는 /healthz 이다.

생성!

여기서 ALB를 Service 호스트 A에서만 HTTP 80번 포트로 접근할수 있도록 Service A 호스트로 보안그룹을 설정해야 하는데 어떻게 설정하는지 잘 모르곘다.

그리고 ALB의 데이터를 수신할 Service 호스트 B는 ALB의 데이터만 수신할수 있도록 보안그룹은 HTTP 80번 포트의 대상을 alb 보안그룹으로 설정한다.

🔔 끝!

이렇게 전부 따라왔다면 2022년도 클라우드컴퓨팅 지방기능경기대회 1과제를 끝냈다.

지금 이글을 작성하고 있긴하지만 제대로 이 과제를 끝내진 못한것 같다.
여러번 실습해보면서 부족한 부분들을 채워나가야 겠다.
특히 이런 내부 ALB 구조를 처음봐서 그런지 상당히 이해하기 어려웠다.
하지만 취업자 선배 찬스로 구조를 깨달았으니 열심히 공부해야겠다.

오늘도 🥇을 향해 한걸음 더 가까워진 기분이 든다.

글 내용에서 수정해야할 내용, 추가하고 싶은 내용 있으시면 댓글로 알려주시면 감사하겠습니다 🤗

profile
클라우드 컴퓨팅 공부중입니다.

1개의 댓글

comment-user-thumbnail
2023년 1월 26일

기능경기대회 문제 출제자분들 Apache 왜케 좋아하는지...ㅎㅎ httpd 설정하다가 Apache Tomcat으로 띄우란거 보고 WAS 말하는건가 싶어서 대충 파이썬으로 돌렸네요 ㅋㅋㅋ

답글 달기