Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RPA実行環境のFargateへの移行 / Migrating RPA Infrastruct...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yuki-yano
June 12, 2019
Technology
6.7k
0
Share
RPA実行環境のFargateへの移行 / Migrating RPA Infrastructure to Fargate
yuki-yano
June 12, 2019
More Decks by yuki-yano
See All by yuki-yano
Neovimのリモートプラグインとはなんなのか、あるいはTypeScriptでのNeovimプラグイン実装について / Developing Remote Plugin in TypeScript
yuki_ycino
1
1.8k
docker-machineで簡単にデモ環境を構築する、あるいはローカルのリソースを消費しない開発環境について / Easily build an environment with docker-machine
yuki_ycino
0
150
コンシューマーゲームを操作するプログラマブルコントローラーの作成
yuki_ycino
0
210
Other Decks in Technology
See All in Technology
プラットフォームエンジニアリングの実践 - AWS コンテナサービスで構築する社内プラットフォーム / AWS Containers Platform Meetup #1
literalice
1
210
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
150
AI時代のガードレールとしてのAPIガバナンス
nagix
0
310
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
120
AgentCore×VPCでの設計パターンn選と勘所
har1101
4
330
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
250
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
150
AI バイブコーティングでキーボード不要?!
samakada
0
640
Cortex Codeのコスト見積ヒントご紹介
yokatsuki
0
120
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
120
AI: Making Admin and Users, Lives Better
kbmsg
0
120
M5Stack CoreS3とZephyr(RTOS)で Edge AIっぽいことしてみた
iotengineer22
0
320
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Color Theory Basics | Prateek | Gurzu
gurzu
0
300
The Art of Programming - Codeland 2020
erikaheidi
57
14k
RailsConf 2023
tenderlove
30
1.4k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
30 Presentation Tips
portentint
PRO
1
280
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
100
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Transcript
RPA࣮ߦڥͷ FargateͷҠߦ BizteXגࣜձࣾ ༟थ
ΞδΣϯμ • BizteX cobit αʔϏεͷհ • طଘͷΠϯϑϥߏʹ͍ͭͯ • FargateҠߦʹࢸͬͨܦҢ •
ݕূ/Γସ͑ • FargateԽ͕ͨΒͨ͠ޮՌ • FargateҠߦͰൃੜͨ͠ • ࠓޙͷల
αʔϏεհ ࠃॳΫϥυ31"
ਓ͕ۀΛ࣮ߦ ैདྷͷ࡞ۀ 31" σδλϧϩϘο τ͕ۀΛߦ ೖྗ ݕࡧ ूܭ ొ ૹ৴
܁Γฦ͠ߦ͏ ೖྗ ݕࡧ ूܭ ొ ૹ৴ "VUPNBUJPO ਓʹΘΓσδλϧϩϘοτ͕ 1$ ্ͷಈ࡞Λߦ 3PCPUJD1SPDFTT"VUPNBUJPO
ैདྷͷ31"ΑΓ؆୯ɾεϐʔσΟʔɾίετ ΦϯϓϨϛεܕ ߏஙظ͕͍ؒ ઐత ίετ͕ߴ͍ εϐʔσΟʔͳಋೖ ୭ͰΧϯλϯ ίετ Ϋϥ υܕ
طଘͷΠϯϑϥߏ "84 ΫϥΠΞϯτ 8&# αʔό 4JEFLJR ΞϓϦέʔγϣϯαʔό &$ Πϯελϯε &$4
3%4 3FEJT 4FMFOJVN 4FMFOJVN ϩϘ࣮ߦ ϩϘ࣮ߦ
Πϯϑϥͷ՝ • Sidekiq͕ϝϞϦෆͰམͪͨࡍʹෳͷϩ ϘοτΛר͖ࠐΉʢސ٬ͷӨڹʣ • ΞϓϦέʔγϣϯαʔόͱϩϘ࣮ߦαʔό͕ ಉҰΠϯελϯεͰಈ࡞͍ͯ͠Δ͜ͱʹΑΔ ͷΓ͚ͷࠔ͞ • ࣌ؒʹΑͬͯඞཁͳϦιʔεྔ͕ҧ͏͜ͱʹ
ର͢Δ࠷దԽͷෆ
Πϯϑϥͷ՝ • Sidekiq͕ϝϞϦෆͰམͪͨࡍʹෳͷϩ ϘοτΛר͖ࠐΉʢސ٬ͷӨڹʣ • ΞϓϦέʔγϣϯαʔόͱϩϘ࣮ߦαʔό͕ ಉҰΠϯελϯεͰಈ࡞͍ͯ͠Δ͜ͱʹΑΔ ͷΓ͚ͷࠔ͞ • ࣌ؒʹΑͬͯඞཁͳϦιʔεྔ͕ҧ͏͜ͱʹ
ର͢Δ࠷దԽͷෆ
FargateԽʹࢸͬͨܦҢ Πϯϑϥίετ ىಈ࣌ͷ Φʔόʔϔου ҆ఆ͢Δ͔ &$ ˓ ΞϓϦέʔγϣϯαʔό ͱಉډ ˓
ͳ͠ º 4JEFLJR͕མͪͨͱ͖ʹ ෳϓϩηεΛ ר͖ࠐΉ &$4 &$ º ίϯςφΠϯελϯε &$Πϯελϯε ʹ ՝ۚ ˓ ඵͰىಈ͢Δ ˚ &$Πϯελϯεʹґଘ ͢Δ &$4 'BSHBUF ˓ ίϯςφͷ εϖοΫʹରͯ͠ ࣌ؒ՝ۚ ˚ લޙ͔͔Δ ˓ ಠཱ࣮ͨ͠ߦڥ
Πϯϑϥίετ • ECS(EC2) *εέʔϧΠϯ͠ͳ͍߹ • t3.2xlarge 8CPU/32GB 0.4352USD/࣌ؒ 25 0.4352USD
* 24࣌ؒ * 30 * 25 = 7800USD/݄ • Fargate • 1CPU/8GB 0.05USD/1CPU࣌ؒ 0.0055USD/1GB࣌ؒ (0.05USD * 1CPU + 0.0055USD * 8GB) * 24࣌ؒ * 51 = 115USD/݄
ݕূ/Γସ͑ • ݕূΛ҆શʹߦ͏ͨΊͷݕূ༻ڥͷߏங • Fargate༻ͷDockerΠϝʔδΛ༻ҙ • ෛՙࢼݧ • ࣮ࡍͷΠϯϑϥҠߦ
ݕূ༻ڥߏங • ຊ൪ڥ͔͠ଘࡏ͠ͳ͔ͬͨͨΊɺࢼݧΛߦ ͏ͨΊͷΓͨ͠ڥΛ৽ͨʹ࡞ͨ͠ • AnsibleͱPackerͰطଘϦιʔεΛཧ͍ͯ͠ ͨͨΊൺֱతίετͰߏஙͰ͖ͨ • ͱ͍͑ࠓޙCloudFormation͔Terraform ͷҠߦߦ͍͍ͨ
Fargate༻ͷDockerΠϝʔδΛ༻ҙ • AnsibleͷplaybookΛࢀߟʹಉͷڥΛߏங • Rails + JVM • ίετ •
FargateͰRails͕ىಈͰ͖Δ͜ͱΛ֬ೝ • CircleCI͔ΒECRʹDockerΠϝʔδΛpush
ෛՙࢼݧ • ಉ࣮࣌ߦ • FargateͷίϯςφΛ1CPU/8GBͷઃఆͰ200ಉ࣮࣌ߦ • ղܾ͍ͯ͠ͳ͍ • ͍͔ͭ͘ͷίϯςφͷ࣮ߦ։࢝ͷԆ(࠷େ6) •
ຊ൪ڥͰಉ࣌ىಈ࠷େ20−30݅ఔ
࣮ࡍͷΠϯϑϥҠߦ • RedashͰ࠷ϩϘ࣮ߦͷεέδϡʔϧొ͕গͳ͍࣌ؒΛௐࠪ • ே6࣌ • Γ͠ͷݕ౼ • ڥมͷมߋͰϞʔυΛΓସ͑Մೳʹͨ͠ •
ʹ͍͖ͳΓCircleCI͕௨Βͳ͘ͳΔ͕ൃੜ • ؔͳ͍෦(npmύοέʔδ)Ͱى͖͍ͯͨ • warning͕ग़ͯΔͱ͜Ζ͜·Ίʹमਖ਼͠·͠ΐ͏ɾɾɾ
طଘͷΠϯϑϥߏ "84 ΫϥΠΞϯτ 8&# αʔό 4JEFLJR ΞϓϦέʔγϣϯαʔό &$ Πϯελϯε &$4
3%4 3FEJT 4FMFOJVN 4FMFOJVN ϩϘ࣮ߦ ϩϘ࣮ߦ
FargateҠߦޙͷΠϯϑϥߏ "84 ΫϥΠΞϯτ 8&# αʔό 4JEFLJR ΞϓϦέʔγϣϯαʔό &$ Πϯελϯε &$4
ϩϘ࣮ߦ ϩϘ࣮ߦ 'BSHFUF 3%4 3FEJT 4FMFOJVN 4FMFOJVN ϩϘ࣮ߦ
FargateҠߦ͕ͨΒͨ͠ޮՌ • ϩϘͷ҆ఆՔಇ • ΞϓϦέʔγϣϯαʔόͷϦιʔεݮ • ϝϞϦ 64GB => 32GB
• δϣϒʢϩϘ࣮ߦʣ͕Ҏ্ଓ͍ͯམͱͤͳ͍ঢ়ଶ ͷΠϯελϯεΛݮ • ϝτϦΫεଌఆͷվળ
FargateҠߦͰൃੜͨ͠ • ίϯςφىಈ࣌ؒʹ͔͔ΔΦʔόʔϔου • ैདྷͷ࣮ͱFargateҠߦޙͷ࣮͕ࠞࡏ͍ͯ͠Δ • ΞϓϦέʔγϣϯαʔό͕ίϯςφԽͰ͖͍ͯͳ͍͜ͱ ʹىҼ͢Δ࣮ߦڥͷҧ͍ • ίϯςφىಈͷࣦഊ
• APIίʔϧ࣌ʹΤϥʔ • ίϯςφʹର͢ΔENIΞλονͷࣦഊ
ίϯςφىಈ࣌ؒ • ECS(EC2) => 5ඵલޙ • Fargate => 1લޙ •
ϩϘͷεέδϡʔϧ࣮ߦʹؔͯ͠Sidekiq͕ λεΫΛલʹىಈͯ͠ػ͓ͯ͘͜͠ͱ Ͱճආ
࣮ߦڥͷҧ͍ • ߏஙํ๏͕ҟͳΔ߹্ɺΞϓϦέʔγϣϯαʔό(AnsibleͰ AMI) ͱ৽͍࣮͠ߦڥ(DockerfileͰDocker image)ʹҧ͍͕͋Δ • apt-getͰೖΔύοέʔδͷόʔδϣϯ͕ඍົʹҧ͏ • ImageMagickͷσϑΥϧτઃఆͷࠩ
• ڥมΛΞϓϦέʔγϣϯαʔόͱಉʹ͢Δඞཁ͕͋Δ • ඞཁͳڥมΛΞϓϦέʔγϣϯαʔό͔Β͢͜ͱͰղܾ • ڥมͷͣΕʹΑΔো͕1݅ى͖ͯ͠·ͬͨ(λΠϜκʔϯ)
ىಈͷࣦഊ • APIίʔϧ੍ݶʹҾ͔͔ͬͬͯΤϥʔ͕ൃੜ͢Δ • αϙʔτʹ͍߹Θ͕ͤͨ۩ମతͳࣈෆ໌ɺϦτϥ ΠͰճආ • ίϯςφىಈ࣌ʹENI(Elastic Network Interface)
ͷΞλονʹࣦഊ͢Δ • ͜Εʹ͍ͭͯݱঢ়ճආࡦͳ͍ɺൃੜ1ϲ݄݅ఔ ͳͷͰϦτϥΠͰΧόʔ
ࠓޙͷల • ࠷େ2500ίϯςφಉ࣮࣌ߦͷઓ • Seleniumͷ࣮ߦΛFargateͷαΠυΧʔҠߦ ͢Δ • ΞϓϦέʔγϣϯαʔόͷίϯςφԽ • ΑΓεέʔϦϯά͍͢͠ߏͷҠߦ