[AWS] Opensearch
AWS Opensearch๋ AWS์์ ์ ๊ณตํ๋ ์์ฒด์ ์ธ Elasticsearch ์ง์ ์๋น์ค๋ค.
Opensearch์๋ ํ์ฌ 2๊ฐ์ง ์คํ ์ต์ ์ด ์๋ค.
- AWS์ elasticsearch ํฌํฌ์ธ opensearch.
- ์๋ณธ ์คํ์์ค์ธ elasticsearch ์์ง.
Elasticsearch์์ ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๊พธ๋ฉด์ ์คํ์์ค ์ ์์ ์์ํ์, 7.11(2021๋
2์)์ ์ด์ ๋ฒ์ ์ ๊ธฐ์ค์ผ๋ก ํฌํฌํด์ ์ ์ง๋ณด์ํ๊ณ ์๋๊ฒ opensearch ์์ง์ด๋ค.
Elasticsearch๊ฐ ๊ทผ๋์ ๋ค์ ์คํ์์คํ๋๊ธด ํ๋๋ฐ, ์ด๋ฏธ ๊ฐ์ ๋จผ ๊ธธ์ ๋ ๋์์ธ์ง ๋ค์ ๋ณํฉํ ์๊ฐ์ ์์ ๊ฒ ๊ฐ๋ค. ๋ง์ ๋ถ๋ถ์ ๊ณต์ ํ๊ธด ํ์ง๋ง ๋
์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์๋ค.
elasticsearch ์๋ณธ ์์ง์ ๊ตฌ ๋ฒ์ ์ธ 7.10๊น์ง๋ง ์ง์๋๋ค. ํ ์์ ์์ elasticsearch ๋ฒ์ ์ด 8.*๋์ด๋, ์ข ๋ค์ณ์ง ์ ์ด๋ค. ๋ผ์ด์ผ์ค๋ ๋์์์ผ๋ ์ ๋ฐ์ดํธ๊ฐ ๋ ์๋ ์์ง ์์๊น?
๋น์ฉ
https://aws.amazon.com/ko/opensearch-service/pricing/
์ด๊ฒ๋ ์จ๋๋งจ๋(ํ๋ก๋น์ ๋ ๋ชจ๋)์ ์๋ฒ๋ฆฌ์ค ๋ชจ๋๊ฐ ๋ฐ๋ก ์๋ค.
๊ทผ๋ฐ ์๋ฒ๋ฆฌ์ค๊ฐ ๋ฑํ ์ผ๊ฑด ์๋๊ณ , ์๋์ผ๋ก ์ค์ผ์ผ๋ง๋๋ค๋๊ฒ ๋ค๋ฅธ๊ฑฐ๋ค.
๊ฒ๋ค๊ฐ ๋ง์ด ์๋ฒ๋ฆฌ์ค์ง, ์ฌ์ฉ๋์ ๋ฐ๋ผ์ OCU ๋จธ์ ์ ์๋์ผ๋ก ํ๋ก๋น์ ๋ํด์ฃผ๋ ์ ๋๊ฐ ๋ค๋ค.
ํ๋์ OCU ๋จธ์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ 6gb ์ ๋๊ณ , ๋น์ฉ๋ ๋น์ธ๋ค.
์จ๋๋งจ๋๋ ์ํ๋ ์คํ์ผ๋ก ๊ณ ์ ์ผ๋ก ํ ๋นํด์ ์ธ ์ ์๋ ํํ๋ค. ec2์ ๊ฑฐ์ ๋น์ทํ๋ค.
์ปดํจํ
๋ ๋ฒจ๋ณ๋ก ์๊ฐ๋น ์๊ธ์ด ๋์ค๊ณ
์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ ์ ์ก ๋ฑ์ ์ก๋น์ฉ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๊ณผ๋๋ค.
EC2์ ๋น๊ตํ๋ฉด ๋ ๋น์ธ๊ธด ๋น์ธ๋ค.
์๋ฅผ ๋ค์ด, t3.small ๋ ๋ฒจ์ EC2์์ 0.026 ๋ฌ๋ฌ ์ ๋์ธ ๋ฐ๋ฉด, t3.small.search๋ 0.056 ๋ฌ๋ฌ๋ค.
EBS ๋ฒ์ฉ SSD gp3 ์คํ ๋ฆฌ์ง๊ฐ 0.0912๋ฌ๋ฌ์ธ๋ฐ, Opensearch ๋ณผ๋ฅจ์ 0.1391๋ฌ๋ฌ๋ค.
์ธ์คํด์ค ํ์
๋น์ฉ์ ์ข ๋น์ธ๊ธด ํ๋ฐ, ๋ค๋ฅธ DB ์๋น์ค ๋๋นํด์ ํน๋ณํ ๋น์ผ๊ฑด ์๋๋ค.
RDS PostgreSQL์ ๋์ผ ํ์
์ธ db.t3.small์ ๋น๊ตํ๋ฉด, ๋๊ฐ์ด 0.056๋ฌ๋ฌ๋ค. ๋๋ฑํ๊ฒ ๋น์ธ๋ค.
ํ๋ช ํ๊ฒ ์ ์ ํํ๊ธธ ๋ฐ๋๋ค.
ํด๋ฌ์คํฐ ์์ฑํด๋ณด๊ธฐ (Elasticsearch)
๋จผ์ elasticsearch ์์ง์ ํตํด์ ๋ง๋ค์ด๋ณด๊ฒ ๋ค.
์ด๋ฆ ๊ณ ๋ฅด๊ณ , ์ปค์คํ
๋ชจ๋๋ก ์ค์ ํ๋๋ก ํ์.
์์ฌ์ด ์์ฑ์ผ๋ก ํ๋ฉด ๊ฒ๋ ๋น์ผ ์คํ์ผ๋ก ๋ง์ถฐ์ค๋ค.
๊ณ ๊ฐ์ฉ์ฑ์ด ํ์ํ๋ค๋ฉด ์ผ์ค๋ค. ์ผ๋ฉด ๋น์ฐํ ๋น์ฉ์ด ๋ ๋์ด๋๋ค.
์ด๊ฒ ์์ง์ด๋ค.
๊ตฌ๋ฒ์ ์ผ์ง๋ผ๋ Elasticsearch์์ ์๋ฒฝํ ํธํ์ด ํ์ํ๋ค๋ฉด Elasticsearch๋ฅผ, ๋ ๋ฐ์ด๋ ์ฑ๋ฅ์ด ํ์ํ๋ค๋ฉด opensearch๋ฅผ ์ ํํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ธ๋ ๊ฐฏ์๋ฅผ ์ ํ๋ค.
๋ ๊ทธ๋ฅ 2๊ฐ๋ก ํ๋ค.
์ด๊ฑด ์ผ ์ํ๊ณ ๊ด๋ฆฌ๋ง ํ๋ ๋ง์คํฐ ๋
ธ๋๋ฅผ ์ค์ ํ๋ ๋ถ๋ถ์ด๋ค.
๊ฐ์ฉ์ฑ์ด ์ค์ํ๋ค๋ฉด ์ด๊ฑธ ํ์๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ถ์ฅ์ฌํญ์ด๋ค. ๋ ๋ฌด์ํ๊ฒ ๋ค.
๋คํธ์ํฌ๋ ๊ทธ๋ฅ ํผ๋ธ๋ฆญ์ผ๋ก ์ด์๋ค.
๋ ๊ท์ฐฎ์์ ๊ทธ๋ฅ ํ๊ฑฐ๊ณ , ํ๋ก๋์
๋ ๋ฒจ์์๋ VPC ๊ฑธ๊ณ ๋ด๋ถํต์ ๋ง ํ๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ์ต์
์ด ๋์๋ค.
์ด๊ฒ๋ ์นดํ์นด์ฒ๋ผ ํ๋ก๋น์ ๋์ ํ์ธ์ ๊ฑธ๋ฆฐ๋ค.
30๋ถ ์ ๋๋ ๊ฑธ๋ฆฐ๊ฑฐ๊ฐ๋ค.

ํค๋ฐ๋ ์ ์ํ๊ธฐ
๋ณดํต Elasticsearch ์์ฒด์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ฑฐ๋, ์ด์์ ํ ๋๋ ํค๋ฐ๋ ๋์๋ณด๋๋ฅผ ํตํด ์ ์ดํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค. ๊ทธ๋์ ํค๋ฐ๋๋ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ค.
ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋์๋ค๋ฉด ์ด๋ ๊ฒ URL์ด ์๊ธธํ ๋ฐ

์๋ฌด ์ค์ ์์ด ๊ทธ๋ฅ ๋ค์ด๊ฐ๋ฉด ๊ถํ๋๋ฌธ์ ์๋ฌด๊ฒ๋ ์๋ ๊ฒ์ด๋ค.

๋ณด์ ๊ตฌ์ฑ์ ํธ์งํด์ ์ธ๋ฐ์ด๋๋ฅผ ์ด๋ป๊ฒ๋ ํ์ฉํด์ค์ผ ํ๋ค.
์ด๊ฑด ๋คํฌ์ํฌ ๊ตฌ์ฑ์ ๋ฐ๋ผ์ ์กฐ๊ธ ๋ค๋ฅด์ง๋ง, ์ง๊ธ ๋์ฒ๋ผ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ด๊ณ ๋์ถฉ ์ฐ๋ ๊ฒฝ์ฐ์๋ IP ๊ธฐ๋ฐ์ผ๋ก ํ์ฉ์ ์ฌ๋๊ฒ ํธํ๋ค.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-northeast-2:๊ณ์ ID:domain/ํด๋ฌ์คํฐ๋ช
/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"์์ดํผ"
]
}
}
}
]
}
์ด๋ ๊ฒ ์์ ํ๊ณ ํด๋ฌ์คํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
๋์๋ณด๋ ์ ๊ทผ์ ์ฌ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ค.
https://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/dashboards.html#dashboards-access
๋ณด์ ์ค์ ์ ์์ ํด์ ์ธ๋ฐ์ด๋๋ฅผ ์ด์ด์ฃผ๊ณ , ๋ค์ด๊ฐ๋ฉด ์ ์์ด ๋ ๊ฒ์ด๋ค.

๊ธฐ๋ณธ ๋์๋ณด๋ ๊ตฌ์ฑ์ ๋ฐ๋ก ์๋ค.
์ ์ด์ ํค๋ฐ๋์์ ๋ณด์ฌ์ค์ผ ํ ๋ฉํธ๋ฆญ๋ค์ AWS ์ฝ์ ์์ฒด์์ ์ด๋ฏธ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ๋ง๋ค์ด์ ์ธ ๋น์์ฑ์ ๋ฑํ ์๋๊ฑฐ๊ฐ๋ค.
๊ทธ ์ธ์๋ dev tool ๊ฐ์๊ฑธ ์ธ ์๋ ์๋ค.

์ ๋์ํ๋ค.
Elasticsearch API ์ฌ์ฉํ๊ธฐ
์๊น ์์์ ๋ณด์์ค์ ์ ํตํด ์ธ๋ฐ์ด๋๋ฅผ ์ ์ ํ ์ด์ด์คฌ๋ค๋ฉด, ๋๋ฉ์ธ ์๋ํฌ์ธํธ๋ฅผ ํตํด์ ๋ฐ๋ก Elasticsearch API๋ค์ ํ์ฉํ ์ ์๋ค.

๋ฐ๋ก ํน๋ณํ๊ฒ ์์ง ์๋ค.
๊ทธ๋ฅ Elasticsearch HTTP API๋ฅผ ์ฐ๋ฅด๋ฉด

์ผ๋ฐ Elasticsearch์ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
ํด๋ฌ์คํฐ ์์ฑ (Opensearch)
opensearch๋ก ์์ฑํ๋ ๊ฒ๋ elasticsearch์ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค.
์์ง๋ง ๋ค๋ฅด๊ณ ํฐ ํ์์์ ์์ฑ ์ต์
์ ๊ฑฐ์ ๋๋ฑํ๋ค.

๋ง๋ค์ด์ง๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉํธ๋ฆญ์ด๋ ์ด๊ฒ์ ๊ฒ ๋จ๊ณ

๋์๋ณด๋๋ ๋จ๊ณ

์๋ํฌ์ธํธ๋ ๋ฌ๋ค.

์ด๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ํฌ์ธํธ์ HTTP API๋ก ์ฐ๋ฅด๊ธฐ๋ง ํ๋ฉด ์ฌ์ฉํ ์ ์๋ค.
API๋ ์๋น์๊ฐ elasticsearch์ ํธํ๋๋ค๋ง, ์ญ์ ๋ค๋ฅธ ๋ถ๋ถ๋ ์ข ์๋ค.
์์ธํ API ๋ช
์ธ๋ ๋ณ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ฉด ๋๋ค.
https://opensearch.org/docs/latest/api-reference/
์ฐธ์กฐ
https://docs.aws.amazon.com/opensearch-service/latest/developerguide/release-notes.html
https://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/what-is.html
https://www.elastic.co/elasticsearch/opensearch
https://aws.amazon.com/ko/blogs/opensource/introducing-opensearch/
https://bigdataboutique.com/blog/elasticsearch-vs-opensearch-2025-update-5b5c81
https://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/ac.html#ac-types-ip