25. ๊ฒ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ CloudSearch
25. ๊ฒ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ CloudSearch ๊ด๋ จ
CloudSearch๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋๋ก ๊ฒ์ ์์ง์ ์ ๊ณตํด์ฃผ๋ ์๋น์ค์ ๋๋ค.
30์ผ ๋ฌด๋ฃ ํ๊ฐ ํ๋ก๊ทธ๋จ
CloudSearch๋ ๊ฒ์ ๋๋ฉ์ธ ์์ฑ ํ 30์ผ ๋์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฌธ์ ์ ๋ก๋ 10,000๊ฑด, IndexDocuments ์์ฒญ 10๊ฑด, ๊ฒ์ ์ธ์คํด์ค 750์๊ฐ์ ๋ฌด๋ฃ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฌด๋ฃ ์ฌ์ฉ ์๊ฐ์ ๋ชจ๋ ์ฌ์ฉํ๊ฑฐ๋ 30์ผ์ด ๋จผ์ ์ง๋๋ฉด ์๊ธ์ ์ง๋ถํด์ผ ํฉ๋๋ค.
๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ ์๊ฐ ์์ด ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ์์คํ ์ ๊ตฌ์ถํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๊ฒ์ ์ ๋ฌธ๊ฐ๊ฐ ํ์ํ๊ณ , ๋ง์ ์๊ฐ๊ณผ ๋น์ฉ์ด ์๋ชจ๋ฉ๋๋ค. CloudSearch๋ ๋ง์ ์๋ฒ์ ๊ฒ์ ์์คํ ์ ๊ตฌ์ถํ์ง ์์๋ ํด๋ฆญ ๋ช ๋ฒ๋ง์ผ๋ก ๊ณ ์ฑ๋ฅ ๊ฒ์ ์์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฒค์ฒ๊ธฐ์ ๋ฐ ์คํํธ์ ๊ณผ ๊ฐ์ ์์ ์กฐ์ง์์ ์ ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ท๋ชจ๊ฐ ํฐ ๋๊ธฐ์ ์์๋ ๊ธฐ์กด์ ์๋ฒ์ ์ด์์ธ๋ ฅ์ ๋ค๋ฅธ ๊ณณ์ ํ์ฉํ ์ ์๊ณ , ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
CloudSearch์๋ DynamoDB, RDS, S3๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆด ์ ์๊ณ , ๋ฐ์ดํฐ ํ์์ PDF, MS ์คํผ์ค(์๋, ์์ , ํ์ํฌ์ธํธ), HTML, JSON, XML(RSS, ATOM), CSV๋ฅผ ์ง์ํฉ๋๋ค. ํน๋ณํ ๊ตฌ์กฐ๊ฐ ์๋ ์ผ๋ฐ ํ ์คํธ ํ์ผ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
CloudSearch๋ ๊ตฌ๊ธ์ฒ๋ผ ๋ด์ด ์น์ฌ์ดํธ ๋ฐ์ดํฐ๋ฅผ ํฌ๋กค๋งCrawlingํ๋ ๋ฐฉ์์ด ์๋๋ผ, ์ฌ์ฉ์๊ฐ ์ง์ ๊ฒ์ ๋๋ฉ์ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํฉ๋๋ค.
Apache Lucene์ ์คํ์์ค ๊ฒ์ ์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, Apache Solr๋ Apache Lucene์ ์ฌ์ฉํ ์ํฐํ๋ผ์ด์ฆ์ฉ ๊ฒ์ ์๋ฒ์ ๋๋ค. CloudSearch๋ Apache Solr๋ฅผ ํ ์คํธ ๊ฒ์ ์์ง์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋์ CloudSearch์ ๊ฒ์ ๊ธฐ์ ๊ณผ ์ฉ์ด๋ค์ Apache Lucene๊ณผ Apache Solr์์ ์ฌ์ฉํ๋ ๊ฒ๋ค ์ ๋๋ค. RDS์์ MySQL, Oracle, SQL Server๋ฑ์ ์ฌ์ฉํ๊ณ , ElastiCache์์ Memcached์ Redis๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
๋ค์์ CloudSearch ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋๋ค.
- ๊ฒ์ ๋๋ฉ์ธ(Domain): ๊ฒ์ ์ธ์คํด์ค์ ์งํฉ์ด๋ฉฐ ๋ฆฌ์ (Region)๋ณ๋ก ์์ฑํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ์ ๋ก๋์ฉ ์๋ํฌ์ธํธ URL๊ณผ ๊ฒ์์ฉ ์๋ํฌ์ธํธ URL์ด ์ ๊ณต๋ฉ๋๋ค.
- ๊ฒ์ ์ธ์คํด์ค: ๊ฒ์ ์ธ์คํด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ธ๋ฑ์ฑํ๊ณ , ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ ๋๋ค. ๊ฒ์ ๋๋ฉ์ธ์ด ์ํ ๊ฒ์ ์ธ์คํด์ค๋ ํ ๊ฐ์ฉ ์์ญ(AZ)์๋ง ์์ฑ๋ฉ๋๋ค. Multi-AZ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ๊ฐ์ฉ ์์ญ์ ๊ฒ์ ์ธ์คํด์ค๋ค์ด ๋์ผํ ๊ฐ์๋๋ก ๋ณต์ ๋ฉ๋๋ค.
- ๊ฒ์ ํํฐ์ (Partition): ๊ฒ์ ์ธ์คํด์ค๋น ๊ฒ์ ํํฐ์ ์ด ํ๋์ฉ ์์ฑ๋ฉ๋๋ค. ์ต๋ 10๊ฐ๊น์ง ์์ฑ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์๋ก ์ถ๊ฐํ๋ ์ญ์ ํ ์ ์์ต๋๋ค.
- ํ๋(Field): ๊ฒ์ ์์ง์ ๊ตฌ์กฐ๋ DB์ ๋น์ทํฉ๋๋ค. ์ ํํ๋ ๋ฐ์ดํฐ์์ ๊ฐ๋ณ ํญ๋ชฉ์ ๋ปํฉ๋๋ค. ์) ์ํ ์ด๋ฆ, ์ฅ๋ฅด, ์ถ์ฐ ๋ฐฐ์ฐ, ๊ฐ๋
, ์ ์์ฌ, ํ์ ๋ฑ
- ํ๋ ์๋ฃํ: int, int-array, double, double-array, literal, literal-array, text, text-array, date, date-array, latlon(์๋ ๊ฒฝ๋ ์์น ์ ๋ณด)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. text๋ ๊ฐ ์ธ์ด์ ๋ง๊ฒ ๋ถ์(ํํ์ ๋ถ์ ๋ฑ)๋๋ ์๋ฃํ์ด๊ณ , literal์ ๋ถ์๋์ง ์๊ณ ์๋ ๊ทธ๋๋ก ๊ฒ์๋ฉ๋๋ค. ๋ฐ๋ผ์ literal์ ๋์๋ฌธ์์ ๋จ์ด ๋ฑ์ด ์ ํํ๊ฒ ์ผ์นํด์ผ ํฉ๋๋ค.
- ํจ์ฏ(Facet): ํจ์ฏ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ฒ์ ๊ฒฐ๊ณผ์์ ํญ๋ชฉ ๋ด์ฉ์ด ๋์ผํ ๊ฒ๋ค์ ๊ฐ์๋ฅผ ํ์ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค. SQL์ Group By์ ๋น์ทํฉ๋๋ค. ์) ์์ ๊ฑฐ ๊ฒ์์ ํ์ ๋ 10~20๋ง์์ง๋ฆฌ 10๊ฐ, 20~30๋ง์์ง๋ฆฌ 5๊ฐ
- Return: ๊ฒ์ ๊ฒฐ๊ณผ์ ํญ๋ชฉ์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
- Sort: ํญ๋ชฉ์ ์ ๋ ฌ์ ์ฌ์ฉํฉ๋๋ค.
- Highlight: ๊ฒ์ ๊ฒฐ๊ณผ์์ ์ผ์นํ๋ ๋ฌธ๊ตฌ์ ๊ฐ์กฐ ํ์๋ฅผ ํฉ๋๋ค.
- ๋ฌธ์(Document): ํญ๋ชฉ๋ค์ด ๋ชจ์ฌ ์์ ํ ์ ๋ณด๊ฐ ๋ ๋จ์๋ฅผ ๋ปํฉ๋๋ค. ์) ์ธ์ ์ , ํ์ดํ๋ ๋ฑ์ ์ํ ์ ๋ณด
- ๋ฐฐ์น(Batch): ๊ฒ์ ๋๋ฉ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆฌ๋ ๋จ์์ ๋๋ค. ํ ๋ฐฐ์น์๋ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ ์ต๋ ํฌ๊ธฐ๋ 5MB ์ ๋๋ค.
- ์ธ๋ฑ์ค(Index): ๊ฐ ๋ฌธ์์ ํญ๋ชฉ์ ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ๊ฒ์ ์ ์ฉ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๊ฒ์ด ์ธ๋ฑ์ค ์ ๋๋ค(์์ธ์ด๋ผ๊ณ ๋ ํ๋ฉฐ ์์ธ์ ์์ฑํ๋ ์์ ์ ์ธ๋ฑ์ฑ์ด๋ผ๊ณ ํฉ๋๋ค).
- IndexDocuments ์์ฒญ: ๋ฌธ์์ ํ๋๊ฐ ์ถ๊ฐ๋์ด ๋ฌธ์ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ ๊ฒฝ์ฐ, ์ธ๋ฑ์ค๋ฅผ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ์ธ๋ฑ์ค๋ฅผ ๋ค์ ์์ฑํ๋ผ๋ ์์ฒญ์ IndexDocuments ์์ฒญ์ด๋ผ๊ณ ํฉ๋๋ค.
- Analysis Scheme: ํ๋ ๋ถ์ ๋ฐฉ์์ ์ค์ ํฉ๋๋ค. ๊ฒ์ ์์ง์์๋ ์ธ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๊ฐ์ฅ ํต์ฌ์ ๋๋ค. ๊ฒ์ ์ง์ ๋์ผ ์ ์๋๋ก Analysis Scheme์ ๋ถ์ฉ์ด(Stopwords), ํํ์ ๋ถ์(Stemming), ๋์์ด(Synonyms)๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์๊ธ: ๊ฒ์ ์ธ์คํด์ค ์ฌ์ฉ ์๊ฐ, ๋ฐฐ์น ์ ๋ก๋ ์์ฒญ ๊ฐ์, IndexDocuments ์์ฒญ(๋ฐ์ดํฐ ์ฉ๋), ๋ฐ์ดํฐ ์ ์ก ์ฉ๋์ ๋ฐ๋ผ ์ฑ ์ ๋ฉ๋๋ค. ์์ธํ ์๊ธ์ AWS ์ฌ์ดํธ์ ์๊ธํ๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
๋๋ฉ์ธ(Domain)
CloudSearch์์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ฉ์ธ์ ์ธํฐ๋ท์์ ์ฌ์ฉํ๋ ๋๋ฉ์ธ ๋ค์(์: example.com)๊ณผ๋ ๋ค๋ฅธ ๊ฒ์ ๋๋ค.
CloudSearch ๊ฒ์ ๋๋ฉ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆฌ๋ฉด ์์์ ๊ฒ์ ์ธ์คํด์ค์ ์ ์ฅํ๊ณ , ๋ฐ์ดํฐ ์ฉ๋์ด ๋์ด๋๊ฑฐ๋ ๊ฒ์ ํธ๋ํฝ์ด ๋์ด๋๋ฉด ์๋์ผ๋ก ๊ฒ์ ์ธ์คํด์ค ๊ฐ์๋ฅผ ๋๋ ค์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ Multi-AZ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๊ฒ์ ๋๋ฉ์ธ์ ์ ์ฒด ๊ฒ์ ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ ๊ฐ์ฉ ์์ญ์ ๋ณต์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์๋์ ์ผ๋ก ์๋น ๊ฒ์ ๋๋ฉ์ธ์ ์ฌ์ฉํ๊ฒ ๋๋ฏ๋ก ์ ์์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
Multi-AZ ๊ธฐ๋ฅ๊ณผ ๋น์ฉ
Multi-AZ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๊ฒ์ ์ธ์คํด์ค์ ๊ฐ์๊ฐ 2๋ฐฐ๊ฐ ๋๋ฏ๋ก ๊ฒ์ ์ธ์คํด์ค์ ๋ํ ์๊ธ์ ๋ ์ง๋ถํด์ผ ํฉ๋๋ค.