Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RPA実行環境のFargateへの移行 / Migrating RPA Infrastruct...
Search
yuki-yano
June 12, 2019
Technology
0
6.6k
RPA実行環境のFargateへの移行 / Migrating RPA Infrastructure to Fargate
yuki-yano
June 12, 2019
Tweet
Share
More Decks by yuki-yano
See All by yuki-yano
Neovimのリモートプラグインとはなんなのか、あるいはTypeScriptでのNeovimプラグイン実装について / Developing Remote Plugin in TypeScript
yuki_ycino
1
1.7k
docker-machineで簡単にデモ環境を構築する、あるいはローカルのリソースを消費しない開発環境について / Easily build an environment with docker-machine
yuki_ycino
0
140
コンシューマーゲームを操作するプログラマブルコントローラーの作成
yuki_ycino
0
200
Other Decks in Technology
See All in Technology
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
1
630
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
140
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
380
AI時代の新規LLMプロダクト開発: Findy Insightsを3ヶ月で立ち上げた舞台裏と振り返り
dakuon
0
250
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
170
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
430
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
190
AI駆動開発の実践とその未来
eltociear
1
330
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
240
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
120
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
1.1k
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
0
730
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
94
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Marketing to machines
jonoalderson
1
4.3k
ラッコキーワード サービス紹介資料
rakko
0
1.7M
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
1.9k
The Spectacular Lies of Maps
axbom
PRO
1
390
Balancing Empowerment & Direction
lara
5
810
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
47
33k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
47k
sira's awesome portfolio website redesign presentation
elsirapls
0
87
Six Lessons from altMBA
skipperchong
29
4.1k
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ͷαΠυΧʔҠߦ ͢Δ • ΞϓϦέʔγϣϯαʔόͷίϯςφԽ • ΑΓεέʔϦϯά͍͢͠ߏͷҠߦ