2023년도 클라우드컴퓨팅 직종 지방기능경기대회 준비를 위해 2022년도 클라우드컴퓨팅 지방기능경기대회 공개과제를 풀이해보자.
2022년도 클라우드컴퓨팅 지방기능경기대회 1과제는 아래와 같다.
처음 봤을때 굉장히 어려워 보였다.
먼저 모르는 서비스를 공부해보자
(출처 : https://kim-dragon.tistory.com/14)
나머지 서비스들은 전부 알고있고, 사용경험 또한 있다.
바로 풀어보자.
대부분 글로 설명해서 지루할수 있지만 들어온 김에 끝까지 읽어보자.
먼저 아키텍처를 보면 VPC A 라는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개를 가지고 있는 VPC와 VPC B라는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개를 가지고 있는 VPC를 생성해보자.
VPC와 서브넷을 생성할 때에는 IPv4주소, CIDR 을 잘 확인하자.
VPC와 서브넷을 잘 생성했다면 라우팅 테이블 메뉴에서 A VPC의 퍼블릭 라우팅 테이블, 프라이빗 라우팅 테이블을 각각 한개씩 만들고 VPC B도 퍼블릭 라우팅 테이블, 프라이빗 라우팅 테이블을 각각 한개씩 만든다.
모든 라우팅 테이블의 명시적 서브넷 연결 은 퍼블릭 라우팅 테이블 이면 해당 VPC의 퍼블릭 서브넷, 프라이빗 라우팅 테이블이면 해당 VPC의 프라이빗 서브넷을 추가해주면 된다.
다음, 인터넷 게이트웨이(이하 IGW) 를 2개 생성해서 VPC마다 하나씩 연결하고 해당 VPC의 퍼블릭 라우팅 테이블에 라우팅 메뉴에 해당 VPC의 IGW를 라우팅 해주자.
다했다면 NAT 게이트웨이를 각 VPC의 퍼블릭 서브넷에 하나씩 생성해주고, 해당 VPC의 프라이빗 라우팅 테이블에 라우팅 메뉴에 해당 VPC의 NAT 게이트웨이 를 라우팅 해주자.
다음, VPC Peering 을 생성해야 한다. VPC 메뉴 에서 피어링 연결 이라는 메뉴를 들어간다.
피어링 연결 생성 이라는 메뉴를 누르게 되면 아래와 같은 화면이 뜰것이다.
이름에서 알수 있듯이 요청자 VPC 와 수락자 VPC 가 존재한다. 쉽게 생각하면 그냥 서로 연결해주는 것 같다.
요청자에 A VPC 를 넣고 수락자에 B VPC 를 넣어보자.
계정은 자신의 계정만 사용하기 때문에 내 계정 리전 또한 현재 리전만 사용하기 때문에 현재 리전 을 선택해준다.
설정을 마치고 피어링 연결 생성 을 누르면 Peering 상태에 수락 대기중 이라는 글이 뜨는데 해당 VPC Peering을 선택하고 작업 버튼을 눌러 요청 수락을 눌러주자.
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는 2개 이상의 가용영역을 필수로 한다.
그러므로 ALB의 타겟이 있는 B VPC에 서브넷을 하나 더 만들어 주어야 한다.
처음에 만들었던 규칙대로 B VPC 에 새로운 프라이빗 서브넷을 다른 가용영역을 사용하여 만들자.
서브넷 생성을 완료했다면, ALB를 생성해보자.
ALB의 생성 방식은 internet-facing 과 internal 로 나뉜다.
우린 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 구조를 처음봐서 그런지 상당히 이해하기 어려웠다.
하지만 취업자 선배 찬스로 구조를 깨달았으니 열심히 공부해야겠다.
오늘도 🥇을 향해 한걸음 더 가까워진 기분이 든다.
글 내용에서 수정해야할 내용, 추가하고 싶은 내용 있으시면 댓글로 알려주시면 감사하겠습니다 🤗
기능경기대회 문제 출제자분들 Apache 왜케 좋아하는지...ㅎㅎ httpd 설정하다가 Apache Tomcat으로 띄우란거 보고 WAS 말하는건가 싶어서 대충 파이썬으로 돌렸네요 ㅋㅋㅋ