CQRS 도입기 - 3 인프라 구축

정훈·2023년 4월 29일
0

CQRS

목록 보기
3/8

인프라 구축

CQRS 도입기 부분 -1 에 나온 아키텍쳐대로 구축 하고 사이드프로젝트를 진행할 예정이다.

앞으로의 목표

  • AWS Setting

  • EC2 환경에서 Apache Kafka 패키지를 다운받은 후 토픽을 보내 데이터를 확인해 볼예정이다.

  • AWS MSK Setting

  • CUD Spring Boot어플리케이션을 Dockerfile로 말아올린이후 데이터를 MSK클러스터로 topic을보낸후 어플리케이션에서 consumer 컨트롤러를 임의로 지정한후 log 로 확인해볼예정이다.

  • ELK Setting

  • READ 어플리케이션을 생성후 AWS OpenSearch(ElasticSearch) 연동 후 CUD에서 topic을 MSK클러스터로 보내게되는데 이때 MSK클러스터는 ELK와 연동하여 Kibana에서 메세지를 확인후
    Spring Boot Application에서 데이터를 읽어 볼 예정이다.

이번 챕터에서는 AWS Setting을 할예정이다 기본적으로 EC2는 다 프리티어를 사용하였다. 돈이..없기때문이다.....근데 굳이 사이드프젝하고 실습을 하는 데 높은 성능에 사양을 맞출 필요는 없을것같다...

AWS Setting

VPC 설정

VPC는 AWS내 전용 가상 네트워크이다.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/how-it-works.html

VPC는 소프트웨어가 라우터 역할을 하며 라우팅을 수행합니다.
VPC는 라우팅 테이블 한개 그리고 서브넷을 여러개 설정할 수있으며, 인터넷게이트웨이는 한 개 만 설정할수있습니다.

  • IPv4 CIDR을 선택후 IP CIDR을 설정해주자 CIDR은 IP 주소를 할당하는 부분이다. 서브넷을 잘모르게된다면 굉장한 삽질을 할 경우가 있..다!...VPC의 IP 주소 범위 즉 CIDR로 지정해준 범위를 통해 서브넷을 설정할수있는데 필자는 설정을할때 서브넷 개념을 잘몰르고있어서 상당히 헤매었다.
  • https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-ip-addressing.html
  • vpc설정은 위 사진과 같이 설정해주었다. 태그는 기본값이고 , IPv6블록은 필요없을거같아서, 설정을안해주었다.

Subnet 설정

subnet설정은 우리가 이전 VPC에서 설정한 IPv4 에서 설정해준 값에 범위에서 대역대를 설정해주는것이다.

VPC를 설정을 해주었다면 아래와같이 서브넷 화면으로 들어가 이와 같은 셋팅을 해주었다. 서브넷설정을 두개를 만든이유는 맨처음에 필자도 서브넷을 하나만 만들고시작하였으나 , 이후 프로젝트를 설정시 msk에서도 가용영역 을 설정해주는
부분이있는데 msk에서 설정할때 최소 서브넷이 2개가 있어야 하는 설정 부분이있어서 하나를 더 추가적으로 달아주었다. 아래 서브넷은 가용영역은 필자가 셋팅할땐 ap-northeast-2a,ap-northeast-2c를 설정해서 사용을 하였다. 이후 이름과 각 서브넷에 IPv4 CIDR 설정을 해주어야한다.

필자는 서브넷 1 IPv4 영역을 10.10.0.1/24,서브넷 2 IPv4 영역을 10.10.0.2/24로 설정을 해주었다.

인터넷 게이트웨이

인터넷 게이트웨이를 설정하는 이유는 VPC와 인터넷 간 통신을 할 수 있게 지정하하는것입니다. 인터넷게이트웨이는 대게 IPv4 및 IPv6트래픽을 지원한다고 AWS에서 정의가 되어있습니다.

이후 이전 설정을 완료하고 인터넷 게이트웨이를 설정해주었습니다. 인터넷 게이트웨이를 생성합니다.

생성을 완료하게되면 내가 생성한 VPC에 연결을합니다.

누르게되면 아래와 같은 화면이 나올것인데 연결할 VPC를 선택하여 연결해줍니다.

이렇게 되면 이제 내가만든 AWS VPC내에서 외부와 통신을 할 수 있게된다 .!

라우팅 테이블

라우팅 테이블은 IP 네트워크에서 패킷의 경로를 결정합니다. 라우팅 테이블은 목적지 즉 IP 주소, 서브넷 등 인터페이스의 정보를 포함하고있다.

라우팅 테이블을 연결해주는이유는 VPC를 구성할때 구성된 VPC내부의 서브넷과 인터넷 게이트웨이 등등 리소스 간의 트래픽을 라우팅을 해주기위해서이다. VPC내부의 라우팅테이블을 수정하면 서브넷에서 목적지로 전송되는 트래픽의 경로를 변경 할 수 있다고합니다.

그러면 우리의 VPC가 서브넷 및 인터넷 게이트웨이의 트래픽을 받기위해서는 라우팅 테이블을 먼저 설정해주자.

VPC를 연결해줘요 !

이후 라우팅 편집을눌러서

위와같이 인터넷게이트웨이

0.0.0.0/0모든 IP주소를 뜻합니다. 이렇게함으로써 VPC의 모든 서브넷에서 인터넷으로의 트래픽이 인터넷 게이트웨이를 통해 전송이 될 것이다.

하지만 현업에서는 보안상 이렇게 모든 트래픽을 허용하는 것은 정말정말 절대적으로하면안되겠지만... 사이드니까 ..? 아니지? 애초에 .. 사이드부터 하지말아야하나..?

이후 EC2 설정을 해보자 !

EC2 및 보안그룹 설정

EC2는 AWS에서 제공해주는 컴퓨팅 서비스이며, AWS 자체에서 EC2를 관리하고 또 운영 및 네트워크 운영까지 담당하지만 우리가 필요로하는 os설치 및 사용자의 입맛에 맞게 설정하여 클릭 몇번으로 서버를 구축할 수 있다.

VPC를 다 연결하게되었다면, EC2 설정을 시작해보자 !

사용될 이름을 적어준 후 , os를 선택해주자. os는 ubuntu20.04를 셋팅하였고, 유형은 t2.micro 프리티어 를 사용하였다.

이후 키 페어를 만들어주자!

pem키를 활용하여 EC2를 생성하고 난 후 서버에 접속할수 있는 키! 와 마찬가지이므로 꼭 저장해주자!

꼭 pem키는 어딘가에 잘 저장해주자.. 아직까지 pem키를 잃어버린적은 없었는데..
잃어버리면 상당히 골치 아플것같다..

잃어버려볼까..

이후 대망의네트워크 설정..

보안그룹설정

여기서도 한번 잘못 설정해두었다가 삭제했다 만들었다 .. 반복하였다 .. 하 ..

지난 VPC설정한 부분을 위에서 설정해주고나면 서브넷 부분에서 VPC와 연결되어있는 부분이 뜨게되는데 여기서 위와 같이 설정할경우 subnet이 두개가나오는데 원래 서브넷을 public/private 서브넷을 나눠서 만들고 하는게맞지만 사이드 프젝이다보니 중점을 ElasticSearch,Kafka의 두다보니, 신경을 쓰지않았다. 다음부턴 신경써보자아...

무튼 2a 영역을 선택하여 하였고

보안그룹생성을 클릭하여 나의 보안그룹이름을 지어주자..!

이것또한 추후 사이드프로젝트할때 신경써야할부분이라.. 이름을 잘 명시해주는 편이 좋다.. 그게아니면 ...

이게 뭔지 저건가 ..? 이게 아닌가 ..? 아 .. ㅅ....

설정을 완료하였으면

보안 그룹 규칙을 설정해주자 !

이것 또한 중요하다

우리는 일단 ssh 로 접속을하기에 22 가 기본적으로 설정이 되어있을거고,
그리고 위치무관 모든트래픽허용 을 눌러 모든 트래픽을 허용해주었다.

이후 정상적으로 ssh에 접속이 잘되는지 들어가보았다.

작동이 완벽하게 되었다.

이후 챕터에서는 MSK setting을 해보자 .

Reference

0개의 댓글