Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.9k
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
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
180
Deep Data Security 機能解説
oracle4engineer
PRO
2
720
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
460
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
0
270
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
270
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
今こそ知りたいAmplifyGen2
mkdev10
2
160
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
150
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
0
120
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
100
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Rails Girls Zürich Keynote
gr2m
96
14k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Writing Fast Ruby
sferik
630
63k
Design in an AI World
tapps
1
350
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Producing Creativity
orderedlist
PRO
348
41k
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ͷαΠυΧʔҠߦ ͢Δ • ΞϓϦέʔγϣϯαʔόͷίϯςφԽ • ΑΓεέʔϦϯά͍͢͠ߏͷҠߦ