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 Infrastructure to Fargate
Search
yuki-yano
June 12, 2019
Technology
0
6.5k
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.3k
docker-machineで簡単にデモ環境を構築する、あるいはローカルのリソースを消費しない開発環境について / Easily build an environment with docker-machine
yuki_ycino
0
100
コンシューマーゲームを操作するプログラマブルコントローラーの作成
yuki_ycino
0
150
Other Decks in Technology
See All in Technology
地理情報とAPIのトレンド
nagix
0
160
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
150
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
960
VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Server-side Kotlin 2024
cho0o0
1
420
開発と事業を繋ぐ!SREのオブザーバビリティ戦略 ~ Developers Summit 2024 Summer ~
leveragestech
0
640
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
26
1.6k
Raft: Consensus for Rubyists
vanstee
134
6.5k
KATA
mclloyd
20
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Statistics for Hackers
jakevdp
792
220k
Designing the Hi-DPI Web
ddemaree
276
34k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
Thoughts on Productivity
jonyablonski
64
4.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
353
29k
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ͷαΠυΧʔҠߦ ͢Δ • ΞϓϦέʔγϣϯαʔόͷίϯςφԽ • ΑΓεέʔϦϯά͍͢͠ߏͷҠߦ