외로운 Nova의 작업실
aws - CloudSearch 본문
- CloudSearch
CloudSearch는 대용량 데이터를 빠르게 검색할 수 있도록 검색 엔진을 제공해주는 서비스입니다. 대용량의 데이터를 처리 시간 없이 빠르게 검색하는 시스템을 구축하려면 데이터베이스 및 검색 전문가가 필요하고 많은 시간과 비용이 소모됩니다. CloudSearch는 많은 서버와 검색 시스템을 구축하지 않아도 클릭 몇번 만으로 고성능 검색 엔진을 사용할 수 있습니다. 벤처기업 및 스타트업과 같은 작은 조직에서 유용합니다. 그리고 규모가 큰 대기업에서도 비용을 절감할 수 있습니다.
CloudSearch에는 DynamoDB, RDS, S3를 이용하여 데이터를 올릴 수 있고, 데이터 형식은 PDF, MS 오피스, HTML, JSON, XML, CSV를 지원합니다.
CloudSearch는 구글처럼 봇이 웹사이트를 크롤링하는 것이 아니라 사용자가 직접 검색 도메인에 데이터를 넣어줘야합니다.
CloudSearch 검색 도메인에 데이터를 올리면 알아서 검색 인스턴스에 저장하고, 데이터 용량이 늘어나거나 검색 트래픽이 늘어나면 자동으로 검색 인스턴스 개수를 늘려줍니다. 그리거 Multi-AZ 기능을 사용하면 검색 도메인의 전체 검색 인스턴스가 다른 가용 영역에 복제되어 장애발생시에도 정상적인 서비스를 제공받을 수 있습니다.
- 검색 인스턴스 유형
검색 인스턴스 유형에따라 검색가능한 문서 개수가 달라집니다.
search.m1.small : 문서 200만개
search.m1.large : 문서 800만개
search.m1.large : 문서 1600만개
search.m2.2xlarge : 문서 3200만개
각 문서량에따라 인스턴스 유형을 적절히 사용해야합니다.
- 검색 도메인 생성
검색 도메인이란 검색 가능한 영역을 말합니다. 이 영역에 파일을 올릴 수 있습니다. 한번 생성해보겠습니다. 파일은 AWS에서 제공하는 영화정보 예제데이터로 생성해보겠습니다.
Cloud Search 카테고리에서 create 버튼을 눌러줍니다.
도메인 이름을 작성해주고 넘어갑니다.
미리준비된 설정으로 IMDB 영화를 선택해주고 넘어갑니다.
검색에 쓸 인덱스입니다. 넘어가줍니다.
첫번째 것을 눌러서 정책을 활성화해주고 넘어갑니다. 그리고 생성해줍니다.
조금 기다리면 document를 추가하는 작업을 시작합니다.
이후 활성화되었다고합니다. 이제 도메인에 데이터를 올려보겠습니다.
업로드 버튼을 누르고 위와 같이 설정해줍니다.
finish를 눌러줍니다.
그러면 5000개 document가 있다고 뜨고 검색창이 활성화됩니다.
디카프리오를 쳤더니 관련 자료가 나옵니다. 오른쪽에는 장르, 순위, 평점이 쓰여있습니다.
- 실제 데이터 생성
이제 데모가 아닌 실제 데이터를 생성해주겠습니다. 그럴려면 간단한 인덱스 구조를 설계합니다. 인사정보를 예를 들겠습니다. 아래와 같은 data.json파일을 생성해줍니다.
[
{
"type": "add",
"id": "1",
"version": 1,
"lang": "ko",
"fields": {
"name": "홍길동",
"address": "서울시 종로구",
"phone": "010-1234-5678",
"rank": "대리",
"age": 27
}
},
{
"type": "add",
"id": "2",
"version": 1,
"lang": "ko",
"fields": {
"name": "이율곡",
"address": "서울시 성북구",
"phone": "010-4567-8901",
"rank": "과장",
"age": 35
}
}
]
이와 같은 형식을 SDF(Search Data Format)이라고합니다. 이제 이것을 기반으로 검색 도메인을 생성해줍니다.
이름 설정후 다음을 눌러줍니다.
파일을 선택하고 다음을 눌러줍니다.
위와 같이 인덱스가 분석되며 Scheme부분 언어를 korean으로 변경해줍니다. 그다음은 이전과 같습니다.
이제 업로드를 해줍니다.
이제 검색을 해보겠습니다.
이런식으로 데이터가 나오는 것을 볼 수 있습니다.
'Cloud > aws' 카테고리의 다른 글
aws - SQS (0) | 2023.10.21 |
---|---|
aws - SNS (0) | 2023.10.20 |
aws - OpsWorks (0) | 2023.10.20 |
aws - Elastic Beanstalk (0) | 2023.10.20 |
aws - CloudFormation (0) | 2023.10.18 |