Information Security Study
240321 메일 서버 구축, 캐시 서버 생성 본문
메일 서버 구축 - 메일 수신하기
서울 리전은 송신만 가능하기에 버지니아 북부 리전에서 실습을 진행했다.
메일 수신을 하기 위해 규칙을 생성한다.
amazon SES 대시보드
이메일 수신 -> 규칙 세트 생성
규칙 세트 생성 후 규칙을 생성한다.
수신자 조건에 inquiry@구매한도메인
형식을 넣는다.
다음 작업 추가에서 s3버킷으로 전송을 체크한다.
sample-mailbox-이름
으로 버킷을 생성했다.
그리고나서 규칙 세트의 상태를 활성화시킨다.
이렇게 한 후
rout 53 대시보드에서
호스팅영역 -> 구매한 도메인
으로 들어가 레코드를 생성해야 한다.
레코드 유형을
MX - 메일 서버 지정
으로 하고
값에는 버지니아 북부 정보가 들어가야 한다. (노션 참고)
이렇게 하고 내 메일로 inquiry@구매한도메인에 메일을 보내면
s3 스토리지에 도착한다.
현재 샌드박스 모드에서는
일 200개의 이메일 / 초당 1개의 이메일만 발송할 수 있다.
기업 등에서 대규모로 발송하기 위해서는 샌드박스모드를 탈출시켜야 하는데
이것은 우리가 마음대로 탈출시킬수있는게 아니라 아마존 고객센터에 문의해야 한다.
메일에 들어가야 하는 내용
- 어떤 서비스인지
- 트래픽이 대충 어느정도 발생할 것으로 예상되는지
- 서비스내에서 메일의 용도는 무엇인지(회원가입 인증, 안내공지메일 등…)
메일을 최대 48시간 내에 승인해주면 그때부터 상용 메일로 활용할 수 있다.
캐시 서버 생성하기
어플리케이션의 성능을 향상시키기 위해 미리 자주 쓰는 데이터를 메모리에 올려놓고 그대로 활용하는 편이 좋다.
따라서 AWS에서 제공하는 캐시 서비스를 활용해서 처리에 시간이 걸리면서 자주 쓸법한 데이터들을 좀 더 빠르게 수행하도록 처리할 것이다.
캐시가 유효한 경우
- 처리 비용이 높은 데이터
- 자주 변경이 생기지 않는 데이터
- 실시간 갱신이 다소 보장되지 않아도 괜찮은 데이터
캐시가 유효하지 않은 경우
- 자주 변동이 생기는 데이터
- 실시간으로 변동이 일어나는 데이터
- 처리 비용이 저렴한 데이터
캐시의 경우 메모리를 보통 활용하기 때문에 단위용량당 가격이 비싸다.
따라서 캐시를 너무 큰 단위로 광범위하게 지정하면 안 된다.
AWS에서 제공하는 캐싱 도구로는 레디스와 멤캐시드가 있다.
실습에는 좀 더 국내에서 광범위하게 쓰이는 레디스 기반의 AWS 서비스를 활용했다.
레디스와 멤캐시드는 전부 미들웨어로 제공되기 때문에 일래스틱 캐시라는 서비스를 이용하면 바로 캐시서버를 쉽게 구축할 수 있다.
캐시서버의 유형
- 기본 유형은 {key:value} 형식으로 캐시서버에 키값을 입력하면 벨류값이 리턴되는 형태이다.
- 그러나 내부적으로 다루는 데이터 양이나 유형에 따라 성능을 높이는 구성을 추가로 제공한다.
일래스틱 캐시의 구성 요소
- 노드(Node):
- 노드는 Elasticsearch 클러스터 내에서 단일의 서버를 나타낸다.
- 각 노드는 클러스터의 일부로 동작하며, 데이터를 저장하고 검색 요청을 처리한다.
- 노드는 클러스터에 가입하여 다른 노드와 상호작용하며, 클러스터의 상태를 공유한다.
- 하나의 노드는 여러 개의 샤드를 가질 수 있다.
- 샤드(Shard):
- 샤드는 Elasticsearch에서 데이터를 분산하여 저장하는 단위이다.
- Elasticsearch는 대량의 데이터를 처리하기 위해 데이터를 여러 개의 샤드로 분할한다.
- 샤드의 유형
- 데이터 샤드(Data Shard): 실제 데이터가 저장되는 단위로, 색인된 문서들을 포함한다.
- 복제 샤드(Replica Shard): 데이터 샤드의 복사본으로, 가용성과 성능을 향상시키기 위해 사용된다.
- 각 인덱스(Index)는 하나 이상의 데이터 샤드와 이에 대한 복제 샤드를 가질 수 있다.
- 샤드의 개수와 복제본의 수는 클러스터의 확장성과 가용성을 제어하는 데 중요한 역할을 한다.
- 클러스터(Cluster):
- 클러스터는 하나 이상의 노드로 구성된 Elasticsearch 인스턴스 그룹이다.
- 각 노드는 같은 클러스터 이름을 가지고 있어야 하며, 이를 통해 노드가 클러스터에 가입할 수 있다.
- 클러스터는 고가용성, 확장성 및 장애 허용 기능을 제공한다.
- 노드가 추가되거나 제거될 때, 클러스터는 자동으로 재구성되어 샤드의 분산을 유지하고 가용성을 보장한다.
일래스틱캐시 활용 실습
가용영역마다 프라이빗 서브넷 내부에 샤드 2개를 구성하고 각 샤드는 프라이머리 노드 1개와 복제노드 2개를 가지도록 한다.
먼저 일래스티캐시 대시보드로 이동한다.
래디스 캐시 -> 캐시 생성
클러스터 설정에서 자체 캐시 설계를 선택하고 생성 방법은 클러스터 캐시로 한다.
다중 AZ를 사용해 이중화가 가능하게 한다.
서브넷은 프라이빗 서브넷으로 2개만 잡아준다.
; 캐시서버가 프라이빗 서브넷에 위치해야 하기 때문이다.
작동 확인하기
web01로 접속하여
sudo yum -y install nc로 nc 명령어를 설치한다.
생성한 일래스틱캐시 상세정보에서 엔드포인트 정보를 복사해
nc 구성 엔드포인트
로 입력하면 된다.
ping 입력 시 pong이 돌아온다.
'네트워크 캠퍼스 > AWS' 카테고리의 다른 글
240322 어플리케이션 서비스 및 스트레스 테스트 (0) | 2024.03.28 |
---|---|
240315 s3 오브젝트 스토리지, 커스텀 도메인 및 DNS 활용, 메일 서버 생성하기 (0) | 2024.03.15 |
240314 DB 서버, s3 오브젝트 스토리지 (0) | 2024.03.14 |
240308 VPC, bastion 서버, 웹 서버, 로드밸런서 (0) | 2024.03.14 |
240307 AWS와 클라우드 개념, AWS 회원가입, AWS IAM 계정 설정하기 (0) | 2024.03.08 |