Slide 1

Slide 1 text

AWS্ʹߏங͢Δ ϝϯς༰қͳElasticsearch System Kyoto.ͳΜ͔ #5 @moznion

Slide 2

Slide 2 text

@moznion Software engineer

Slide 3

Slide 3 text

એ఻

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Ṗࣗ࡞ΨδΣοτలࣔ͠·͢

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

ESӡ༻ࡶײ - αʔόͷ໘౗Λݟͨ͘ͳ͍……

Slide 8

Slide 8 text

ESӡ༻ࡶײ - ໘౗ʂʂʂʂʂʂʂʂʂ - όʔδϣϯΞοϓ (͍ͩͿྑ͘ͳΓ·͕ͨ͠……) - ҆શͳϊʔυ਺ͷ૿ݮ - ҆શͳεέʔϧΞοϓ - ࣗಈతͳόοΫΞοϓͷߏங - ͳͲͳͲ……

Slide 9

Slide 9 text

Full Managed Elasticsearch

Slide 10

Slide 10 text

Full Managed ES - Elastic Cloud (ΊͬͪΌ͍͍) - Amazon Elasticsearch Service - Alibaba Cloud Elasticsearch

Slide 11

Slide 11 text

Full Managed ES - Elastic Cloud (ΊͬͪΌ͍͍) - Amazon Elasticsearch Service - Alibaba Cloud Elasticsearch

Slide 12

Slide 12 text

Amazon Elasticsearch Service

Slide 13

Slide 13 text

Amazon ES service - ߏங؆୯ - εέʔϧΞοϓɾεέʔϧΞ΢τ͠์୊ - ఆظతͳindexόοΫΞοϓ΋औͬͯ͘ΕΔ - όʔδϣϯΞοϓ͕νϣʔ؆୯ʂʂ - ESࣗମͷϝτϦΫεʹԠͯ͡AlartΛ্͛Δͱ͔΋Ͱ͖Δ - Error Log΍Slow Query Log·Ͱ͋Δ (͜Ε͸CloudWatch Logsʹग़Δ)

Slide 14

Slide 14 text

Amazon ES service - Kibana΋࢖͑Δ - CognitoͱͷΞΧ΢ϯτ࿈ܞ - ࠷ۙElasticsearchΛ࢖ͬͨAlart͕αϙʔτ͞Εͨ

Slide 15

Slide 15 text

Amazon ES service - AWSαʔϏεͱͷγφδʔ - CloudWatch Logs - Kinesis - SQS - Lambda - etc...

Slide 16

Slide 16 text

ΞʔΩςΫνϟྫ

Slide 17

Slide 17 text

Kinesis FirehoseΛར༻ Client Firehose Elasticsearch S3 index backup + failed record

Slide 18

Slide 18 text

Kinesis Firehoseͱͷ૊Έ߹Θͤ - ΫϥΠΞϯτ͸Firehoseʹ౤͛ࠐΉ͚ͩ - ༷ʑͳΫϥΠΞϯτιϑτ΢ΣΞ͕͋Δ - kinesis-agent - td-agent + plugin - ֤ݴޠͷϥΠϒϥϦ

Slide 19

Slide 19 text

Kinesis Firehoseͱͷ૊Έ߹Θͤ - ESʹindexͭͭ͠S3ʹΦϦδφϧΛtee͢Δ͜ͱ͕Մೳ - S3ʹ͸߃ٱతʹ࢒͢ - ES͔Β͸ݹ͍σʔλΛফ͢ - Έ͍ͨͳӡ༻͕Ͱ͖Δ - ES΁ͷindex͕ࣦഊͨ͠ΤϯτϦ΋S3ʹόοΫΞοϓͯ͠
 ͘ΕΔ

Slide 20

Slide 20 text

Kinesis Firehoseͱͷ૊Έ߹Θͤ - ࣌ؒ୯Ґ (e.g. σΠϦʔ) ͰͷESͷΠϯσΫε ෼ׂΛࣗಈͰ΍ͬͯ͘ΕΔʂʂ - S3΋AthenaͰΫΤϦՄೳͳܗࣜͰ
 σΟϨΫτϦ (?) Λ෼ׂͯ͘͠ΕΔ - ໌Β͔ʹϩά޲͖

Slide 21

Slide 21 text

Kinesis Firehoseͱͷ૊Έ߹Θͤ - Kinesis FirehoseΛσϑΥϧτͷঢ়ଶͰ࢖͏ͱྲྀྔ੍ݶ͕͋Δ - > For EU (Paris), Asia Pacific (Mumbai), US East (Ohio), EU (Frankfurt), South America (São Paulo), Asia Pacific (Seoul), EU (London), Asia Pacific (Tokyo), US West (N. California), Asia Pacific (Singapore), Asia Pacific (Sydney), and Canada (Central): 1,000 records/second, 1,000 transactions/second, and 1 MiB/second. - Ҿ͔͔ͬͬͨ৔߹͸Kinesis StreamΛผ్༻ҙ͠·͠ΐ͏

Slide 22

Slide 22 text

Kinesis Firehoseͱͷ૊Έ߹Θͤ - ͦΕ͸ͦ͏ͱ - S3ͷόοΫΞοϓͷܗ͕ࣜҧ͏໰୊ - Τϥʔܥ (վߦ۠੾Γෳ਺JSON (Θ͔Δ)) - ਖ਼ৗܥ (۠੾Γจࣈແ͠ෳ਺JSON (Θ͔ΒΜ))

Slide 23

Slide 23 text

Τϥʔܥ (վߦ۠੾Γෳ਺JSON)

Slide 24

Slide 24 text

ਖ਼ৗܥ (۠੾Γจࣈແ͠ෳ਺JSON) ʂʁ

Slide 25

Slide 25 text

DynamoDB StreamsΛར༻ Client DynamoDB Elasticsearch Lambda S3 DynamoDB Streams backup re-index index

Slide 26

Slide 26 text

DynamoDB Streamsͱͷ૊Έ߹Θͤ - ϓϥΠϚϦετϨʔδ (DynamoDB) ͱElasticsearchͷ
 ಉظΛͱΔͷ͕νϣʔָ - DynamoDBͷόοΫΞοϓ͔ΒͷESͷ෮ݩ΋νϣʔָ - ͳΜΒ͔೚ҙͷσʔλݕࡧΛఏڙ͢Δ༻్޲͖ - ͜͜Ͱ࿩ͨ͠
 https://www.slideshare.net/SORACOM/soracom-ug-tokyo-9-2018iot-lt- 87355107

Slide 27

Slide 27 text

ӡ༻ͷͨΊͷLambda

Slide 28

Slide 28 text

Index template updater Elasticsearch Lambda S3 put index template json forward apply

Slide 29

Slide 29 text

Index template updater - Χλ͘ESΛ࢖͓͏ͱ͢Δͱindex template͕΄΅ඞਢ - αʔϏε͝ͱͷindex templateͷద༻Λ͍͍ͪͪ୭͔ʹ
 ґཔ͍ͯͯ͠͸໘౗ - ʮ͓ئ͍͠·͢೴ͷڪා™ʯ - S3ʹtemplate jsonஔ͚͹ࣗಈͰద༻͞ΕΔͱศར͡ΌΜʁ - ࣮ࡍศར

Slide 30

Slide 30 text

ͦͷଞͷӡ༻ͷͨΊͷLambda - Re-index from S3 - Outdated index sweeper - ES stats reporter - ͳͲͳͲ - ੜ׆͕๛͔ʹ

Slide 31

Slide 31 text

࠷ߴʂɹศརʂʂ

Slide 32

Slide 32 text

ࠔΓ͝ͱ

Slide 33

Slide 33 text

ࠔΓ͝ͱ - ࣗಈͰϦγϟʔσΟϯάͯ͘͠Εͳ͍ - 1 nodeͰ΋Disk FullʹͳΔͱॻ͖ࠐΈ͕ϒϩοΫ͢Δ - ʮଞͷnode͸disk͕५୔ʹ͋Δͷʹ……ʯ - ϦγϟʔσΟϯά͸ҎԼʹΑͬͯىͤ͜Δ - εέʔϧΞοϓɾεέʔϧΞ΢τ - ESͷόʔδϣϯΞοϓ - Diskෆ଍ݕग़࣍ୈࣗಈͰεέʔϧΞ΢τͯ͠εέʔϧΠϯ͢Δ
 Lambdaͳ͍͠͸Step FunctionsͰղܾ (๫ྗ)

Slide 34

Slide 34 text

ࠔΓ͝ͱ - ϨϓϦέʔγϣϯͷ࢓૊Έ͕ͳ͍ - ͜Ε͸ͦ΋ͦ΋ES͕ͦ͏ - ͔͠͠internal༻్ͷࢀর͚ͩΛ޲͚ΔESΫϥελ͕
 ཉ͍͠Έ͍ͨͳͷ͸͋Γ͕ͪ……

Slide 35

Slide 35 text

ࠔΓ͝ͱ - ϨϓϦέʔγϣϯͷ࢓૊Έ͕ͳ͍ - ϦΞϧλΠϜੑ͕ඞཁͳ͚Ε͹ - S3ʹεφοϓγϣοτΛஔ͍ͯఆظతʹsync͢Δʁ - ϦΞϧλΠϜੑ͕ඞཁͰ͋Ε͹ - μϒϧϥΠτ - nginxͷshadow proxyΛ࢖͏ͱ͍͏ͷ͸Ͳ͏͔ʁʢຊؾ͔ʣ

Slide 36

Slide 36 text

ඇ·ͱΊ

Slide 37

Slide 37 text

ඇ·ͱΊ - ࠓ·Ͱ͸ESͷΦϖϨʔγϣϯʹ͸ઐ໳తͳ஌͕ࣝཁٻ͞Ε͍ͯͨ - => ؆୯ʹESͷߏஙɾӡ༻͕Ͱ͖ΔΑ͏ʹͳͬͨ
 ɹϑϧϚωδϝϯτ࠷ߴʂʂʂ - AWSͷΤίγεςϜΛ࢖ͬͯӡ༻ίετΛԼ͛Δ - ఆظతʹ΍Βͳ͚Ε͹ͳΒͳ͍͜ͱ͸΋ͪΖΜग़ͯ͘ΔͷͰ: - ୭Ͱ΋Ͱ͖ΔΑ͏ʹ͢Δ - ؆୯ʹͰ͖ΔΑ͏ʹ͢Δ - (ࠓճ͸ओʹLambdaͰ)

Slide 38

Slide 38 text

ඇ·ͱΊ - ྑ͔ͬͨͰ͢Ͷ - ͔͠͠ESͷઐ໳తͳ஌ؙ͕ࣝͬͱෆཁʹͳͬͨΘ͚
 Ͱ͸ͳ͍ͷͰҾ͖ଓ͖ؤுΓ·͠ΐ͏

Slide 39

Slide 39 text

Q?