Pim-community-dev: ํ˜„์žฌ ๋งˆ์Šคํ„ฐ์—์„œ ์†์ƒ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ, ElasticSearch ์˜ค๋ฅ˜

์— ๋งŒ๋“  2017๋…„ 09์›” 22์ผ  ยท  15์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: akeneo/pim-community-dev

ํ˜„์žฌ ๋งˆ์Šคํ„ฐ(์ฒดํฌ์•„์›ƒ d5e1d01adafff7e42d985537b953f7d5ba506f47)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ElasticSearch์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ(php bin/console pim:installer:db --env=prod) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ์„ ๊ณ„์†ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

foo@akeneo-dev :~/pim-community-dev$ php bin/console pim:installer :db --env=prod
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ค€๋น„
akeneo_pim ๋ผ๋Š” ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด ์‚ญ์ œ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
default๋ผ๋Š” ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด akeneo_pim ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ฃผ์˜: ์ด ์ž‘์—…์€ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ƒ์„ฑ ์ค‘...
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!
์—…๋ฐ์ดํŠธํ•  ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด๋ฏธ ํ˜„์žฌ ์—”ํ„ฐํ‹ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๋™๊ธฐํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Elasticsearch ์ธ๋ฑ์Šค ์žฌ์„ค์ •

[ElasticsearchCommon\Exceptions\NoNodesAvailableException]
ํด๋Ÿฌ์Šคํ„ฐ์— ํ™œ์„ฑ ๋…ธ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Ubuntu ์„œ๋ฒ„ 17.04์˜ ๋งˆ์Šคํ„ฐ ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ˜„์žฌ ์ •๋ณด ์กฐํ•ฉ์„ โ€‹โ€‹์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜

tech-improvement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ•„์ž์˜ ๊ฒฝ์šฐ app/config/parameters.yml์˜ index_host ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

localhost :9200

๊ทธ๋ž˜์„œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ–ˆ๊ณ  ์ด์ œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

localhost:9200

๋ชจ๋“  15 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @TheOnlyJoey ,

์ด ์˜ค๋ฅ˜๋Š” PIM์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Elasticsearch์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ™œ์„ฑ ๋…ธ๋“œ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜์™€ ๊ด€๋ จํ•˜์—ฌ Elasticsearch ํฌ๋Ÿผ์—์„œ ์ด๋ฏธ ์ œ๊ธฐ๋œ ๊ธฐ์กด ์งˆ๋ฌธ์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

https://github.com/elastic/elasticsearch-php/issues/519
https://github.com/elastic/elasticsearch-php/issues/300

Elasticsearch ๋ฌธ์„œ:
https://www.elastic.co/start
https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html

์ด ์ •๋ณด๊ฐ€ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๋ฌธ์•ˆ ์ธ์‚ฌ,
์—ฌ์ž ์ด๋ฆ„

ํ—ค์ด ์นด๋ Œ,

๊ทธ๋ž˜์„œ ์‹ค์ œ๋กœ ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ElasticSearch๋ฅผ ์‹œ๋„ํ–ˆ๊ณ  ์ด๊ฒƒ์ด ๋‚ด ๋กœ์ปฌ ๋ฒ„์ „์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹˜์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋˜ํ•œ ElasticSearch ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ์—ฐ๋ฝ์„ ์ทจํ–ˆ๊ณ  ๊ทธ๋“ค์€ ์•„๋งˆ๋„ ์ด๊ฒƒ์„ ์•ผ๊ธฐํ•˜๋Š” Akeneo์—์„œ์˜ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž‘๊ณก๊ฐ€๋Š” ์ž˜ ๋นŒ๋“œ๋˜๋ฏ€๋กœ ElasticSearch๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋นŒ๋“œ ๋ฐ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

2๊ฐœ์˜ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ(Ubuntu 16.04 ๋ฐ Debian Sid)์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์„ค์ •์— ๊ด€๊ณ„์—†์ด ๋‘˜ ๋‹ค ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๋Š” Akeneo๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์˜ค๋ฅ˜๋Š” ์ถœ์‹œ ๋ฉฐ์น  ์ „์— ๋งค์šฐ ์น˜๋ช…์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@TheOnlyJoey ,

์‹œ์Šคํ…œ ํŒŒ์ผ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”,
์—ฌ์ž ์ด๋ฆ„

ํ…Œ์ŠคํŠธ๋œ ์‹œ์Šคํ…œ์€ Akeneo ๋ฌธ์„œ(๋งˆ์Šคํ„ฐ์—์„œ)์™€ ์ตœ์‹  ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋œ Debian Sid์—์„œ ์ข…์†์„ฑ์ด ์„ค์น˜๋œ Ubuntu 16.04์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฒ˜์Œ์—๋Š” Ubuntu 17.04์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ์Šคํ…œ์€ ๊ถŒ์žฅ๋˜๋Š” ๋Œ€๋กœ PHP7.1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@TheOnlyJoey ,

์ด ์˜ค๋ฅ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 'index_hosts' ๋งค๊ฐœ๋ณ€์ˆ˜('localhost:9200')์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•  ๋•Œ ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž‘๋™ํ•˜๋Š” ๊ตฌ์„ฑ ๊ฐ’์€ ':@:', ๊ธฐ๋ณธ์ ์œผ๋กœ ' elastic:changeme@localhost :9200 '(์ˆ˜์ •๋จ)

app/config/parameters.yml์—์„œ 'index_hosts' ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ,
์—ฌ์ž ์ด๋ฆ„

๊ฐ’์„ ':@:'๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

[ElasticsearchCommon\Exceptions\InvalidArgumentException]
URI๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ https://github.com/akeneo/pim-community-dev/blob/master/app/config/parameters.yml.dist#L13 ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด index_hosts์˜ ๊ธฐ๋ณธ๊ฐ’์€ ' localhost:9200 '์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @TheOnlyJoey

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋Œ“๊ธ€์˜ ๊ฐ’ ํ‘œ์‹œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘๋™ํ•˜๋Š” ๊ตฌ์„ฑ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
'<user>:<password>@<server>:<port>'

๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ' elastic:changeme@localhost :9200'์ž…๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ,
์—ฌ์ž ์ด๋ฆ„

ElasticSearch๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ๊ฒฝ๊ณ ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Composer๋Š” ์›๋ž˜ ElasticSearch ์„œ๋น„์Šค๋ฅผ ์ข…๋ฃŒ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ผ๋ฐ˜ localhost:9200์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†” pim:installer :db ์Šคํฌ๋ฆฝํŠธ์—์„œ ElasticSearch๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

aws ํƒ„๋ ฅ์  ๊ฒ€์ƒ‰ ํด๋Ÿฌ์Šคํ„ฐ๋กœ akeneo๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค... ์ ์ 
StaticNoPingConnectionPool.php ๋ผ์ธ 51:

ํด๋Ÿฌ์Šคํ„ฐ์— ํ™œ์„ฑ ๋…ธ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

app/config/parameters.yml์—์„œ index_host๋ฅผ aws vpc ๋์ ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•„์ž์˜ ๊ฒฝ์šฐ app/config/parameters.yml์˜ index_host ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

localhost :9200

๊ทธ๋ž˜์„œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ–ˆ๊ณ  ์ด์ œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

localhost:9200

์†”๋ฃจ์…˜์€ port:80... aws๋Š” ํฌํŠธ 80์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค...

์•ˆ๋…•,

๋‚˜๋Š” ์ด๊ฒƒ์„ ์–ป๊ธฐ ์œ„ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ–ˆ๋‹ค.

localhost:9200 ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
๋กœ์ปฌ ํ˜ธ์ŠคํŠธ: 9200์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

akeneo๊ฐ€ ์ƒ์ž์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐ์†ก๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณด๋‹ค
https://docs.akeneo.com/3.0/install_pim/docker/installation_docker.html

๋‹น์‹ ์˜ parameters.yml.dist์—์„œ ๋‹น์‹ ์€ ์„ค์ •ํ•ด์•ผ
Elastic:changeme@elasticsearch :9200

๊ธˆํ›„:
์šฉ๊ธฐ๋ฅผ ์ฒญ์†Œํ•˜๋‹ค
docker-compose down -v

์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
docker-compose up -d

bin/docker/pim-dependencies.sh
bin/docker/pim-initialize.sh

Elasticsearch๊ฐ€ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ElasticSearch Head google chrome ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
(์—ฌ๊ธฐ์—์„œ Elasticsearch ๋จธ์‹ ์ด ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค)
http://localhost :9210/

Elastic : Elasticsearch์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ด๋ฆ„, ์•„๋ฌด๋ฐ๋„ ์„ค์ •๋˜์ง€ ์•Š์Œ
changeme : Elasticsearch์˜ ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ, ์•„๋ฌด๋ฐ๋„ ์„ค์ •๋˜์ง€ ์•Š์Œ
elasticsearch : docker-compose.yml์—์„œ "elasticsearch"๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

9200: ์‚ฌ์šฉ๋œ ํฌํŠธ๊ฐ€
docker-compose.override.yml
- '9210:9200'
9200 ๋„์ปค ๋จธ์‹  ํฌํŠธ
ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ 9210 ์™ธ๋ถ€ ํฌํŠธ

aws ํƒ„๋ ฅ์  ๊ฒ€์ƒ‰ ํด๋Ÿฌ์Šคํ„ฐ๋กœ akeneo๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค... ์ ์ 
StaticNoPingConnectionPool.php ๋ผ์ธ 51:

ํด๋Ÿฌ์Šคํ„ฐ์— ํ™œ์„ฑ ๋…ธ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

app/config/parameters.yml์—์„œ index_host๋ฅผ aws vpc ๋์ ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฑฐ ๋ฒŒ์จ ํ’€์—ˆ์–ด?

@Rud5G ์˜ˆ... aws๋Š” ํฌํŠธ 80์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค...

์ œ๋ฐœ, ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ฐ™์€ ๋„์ „์— ์ง๋ฉดํ•ด ์žˆ๊ณ  ์•„๋ฌด๋Ÿฐ ์ง„์ „๋„ ์—†์ด ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๊ทธ ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

`StaticNoPingConnectionPool.php ๋ผ์ธ 53:

ํด๋Ÿฌ์Šคํ„ฐ์— ํ™œ์„ฑ ๋…ธ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์ด ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋จ: 1.
PIM ์„ค์น˜ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ด ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋จ: 1.
`
์œ„์— ๋‚˜์—ด๋œ ๋ชจ๋“  ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์„ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” Akeneo ๋ฒ„์ „ 3.2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰