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
インターンから入社してRailsのメール送信をSengGridに移行してみて
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tatsuya
September 08, 2021
Programming
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インターンから入社してRailsのメール送信をSengGridに移行してみて
https://lancersrecruit.connpass.com/event/221994/
tatsuya
September 08, 2021
Other Decks in Programming
See All in Programming
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
770
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.5k
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
A2UI という光を覗いてみる
satohjohn
1
110
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.3k
New "Type" system on PicoRuby
pocke
1
680
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
330
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
Webフレームワークの ベンチマークについて
yusukebe
0
150
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
310
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
Bash Introduction
62gerente
615
210k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Statistics for Hackers
jakevdp
799
230k
How STYLIGHT went responsive
nonsquared
100
6.2k
The browser strikes back
jonoalderson
0
1.2k
Thoughts on Productivity
jonyablonski
76
5.2k
First, design no harm
axbom
PRO
2
1.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
240
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Transcript
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ Πϯλʔϯ͔Βೖࣾͯ͠ Railsͷϝʔϧૹ৴ΛSendGrid ʹҠߦͯ͠Έͯ ϥϯαʔζגࣜձࣾ ։ൃ෦/ฏୡ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ΞδΣϯμ • ࣗݾհ
• ϑϥϯεྉཧਓ͔ΒRailsΛษڧ͠ɺۦ͚ग़͠ΤϯδχΞ • MENTAͱͷग़ձ͍ • ϙʔτϑΥϦΦ࡞ͷϙΠϯτ • ϥϯαʔζΠϯλʔϯೖࣾ • Lancers Assistant/Creativeͷհ • ϝʔϧૹ৴ΛSendGridҠߦ • ·ͱΊ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ࣗݾհ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ࣗݾհ ฏ ୡ(ͻΒͷ
ͨͭ ) • Lancers৽ଔΤϯδχΞ • ϑϥϯεྉཧਓˠ2020/11ʹΠϯλʔϯ ͱͯ͠δϣΠϯɻ4݄͔Βਖ਼ࣾһʹ • RailsͷLCC(LancersCreativeCloud)Λ։ൃ • झຯ: ஈ͍͚҆Ͳྉཧ͕ඒຯ͍͠ ډञΛ୳͢͜ͱ(࠷ۙࣗॗؾຯɻɻ ) tatuya4451 @44511336tatuya
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ͳͥϑϥϯεྉཧਓ͔Β શҟۀछͷΤϯδχΞΛࢦͨ͠ͷ͔
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ ಇ͍ͯͨళฮ •
ϑϥϯεͷҰͭϨετϥϯʮChartronʯ • େࡕҰͭʮAgneldorʯ • ϋΠΞοτϦʔδΣʔϯγʔେࡕ ߴߍੜͷ࣌ɺͱϑϨϯνΛ৯ʹ͍͖িܸΛड͚Δɻ →⁋ௐཧࢣઐֶߍೖֶ • แஸͷ͍ํ͔Βϑϥϯεޠɺௐཧ࣮शΛ௨ͯ͠ϑϨϯνͷجຊΛֶͿ • ଔۀޙɺϑϥϯεҰཹֶ • ؒϑϥϯεୈೋͷࢢϦϤϯͷ͓Ͱ(ߍࣷ)ͰޠֶɺྉཧΛษڧ • ΓͷݱݚमΛߦ͏ • ؼࠃޙେࡕͷொϗςϧͰݚᮎΛੵΉ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ • ౦ژͰग़ళ͢ΔλΠϛϯάͰίϩφ͕ྲྀߦ
• ͲΜͳڥͰࣗͰίϯτϩʔϧͯ͠ࣄ͕Ͱ͖Δ ৬छʹઓ͍ͨ͠ • ࣌ؒͱॴʹͱΒΘΕͳ͍ಇ͖ํΛ͍ͨ͠ • ҰͭͷεΩϧʹґଘͨ͘͠ͳ͍ స৬Λܾҙ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ • ϓϩάϥϛϯάεΫʔϧͰ2ϲ݄ษڧ
• HTM L • CS S • Rub y • Rail s • Javascrip t • ϝϧΧϦͷΫϩʔϯΞϓϦʮFURIMAʯ ΛνʔϜͰ੍࡞
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ •
ΦϯϥΠϯͰษڧ͕ؒͰ͖ΔʮLIve-StudyʯΛ੍࡞ • ௨ػೳ • DMػೳ • ϑΥϩʔػೳ • ݕࡧػೳ • ܝࣔ൘ػೳ • Slack௨ • Πϕϯτͷ։࠵ɺฤूɺআɺࢀՃɺऴྃ(CRUD ) • ϩʔΧϧͰ։ൃ • ຊ൪ڥECSΛ༧ఆ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ͔͠͠
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ AWSͰϙʔτϑΥϦΦެ։͢Δ ํ๏͕Θ͔ΒΜ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup MENTAͰSREͷ҆ୡ(@adachin0817)͞Μͱग़ձ͍ ΠϯϑϥͷجૅΛڭ͑ͯ͘͜ͱʹ •
LinuxͰͷίϚϯυͷૢ࡞ • DockerͰͷ։ൃڥͷߏங • AWSͰͷαʔόʔߏங • AnsibleΛར༻ͨ͠ΠϯϑϥίʔυԽ • CircleCIͰͷϦϦʔεࣗಈԽ ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ ։ൃڥߏਤ •
։ൃڥDockerΛ࠾༻ • nginxͱunicornΛϦόʔεϓϩΩγ • supervisorͰىಈ͢ΔϓϩηεΛཧ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϑϥϯεྉཧਓ͔Βۦ͚ग़͠ΤϯδχΞ ຊ൪ڥߏਤ •
ຊ൪αʔόʔAWS/EC 2 • ߏཧAnsibleΛ࠾༻ • CircleCIͰࣗಈσϓϩΠ • SSLԽLet`sEncrypt ALBRDSΛ༻͔͕ͨͬͨ͠ ίετݮͷͨΊ࠷খݶͷߏͰӡ༻
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ϙʔτϑΥϦΦ࡞ͷϙΠϯτ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϙʔτϑΥϦΦ࡞ͷϙΠϯτ • όάͷͳ͍ΞϓϦέʔγϣϯΛ࡞Δ
• > ͍͠ػೳɺڽͬͨσβΠϯ • ༻ٕज़ͷબఆཧ༝Λઆ໌Ͱ͖Δ • ࠷৽ͷٕज़ΛऔΓೖΕͯཧ༝͕આ໌Ͱ͖ͳ͍ͱ୯७ʹٕज़͕͍͍ͨਓͳͷ͔ͳͱ ࢥΘΕͯ͠·͏ • ݱͰ՝ʹଇٕͨ͠ज़બఆΛ͢Δඞཁ͕͋Δ • ࢤઌͷٕज़ελοΫʹ߹ΘͤΔ • Πϯϑϥ໘ͰͳΔ͘ίετΛ͑ͨΠϯϑϥઃܭΛ͢Δ͖(݄/2000~3000ԁ ) • ࣌ࣗECS/FargateͰӡ༻ֶ͔͕ͨͬͨ͠शίετ(ӡ༻ίετ)͕ߴ࣮͗ͯ͢Ͱ͖ͳ͔ͬͨ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ϥϯαʔζΠϯλʔϯͱͯ͠ೖࣾ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϥϯαʔζΠϯλʔϯͱͯ͠ೖࣾ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup LancersCreativeCloud→AWS ECS/Fargate •
Ruby 2.7. 1 • Rails 6.0. 3 • Jque y • AW S • ECS/Fargat e • Docke r • CircleC I • DATADO G • SendGrid ϥϯαʔζΠϯλʔϯͱͯ͠ೖࣾ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup • ෳࡶͳόονॲཧͷ࣮͔Βద༻·Ͱ •
TerraformΛॻ͖͑ͯυϝΠϯΛมߋ • ΫϥΠΞϯτͷϚΠϖʔδ • Docker։ൃڥͷվળ • DBཧ • CircleCiͷϦϑΝΫλϦϯά • ใुཧػೳ • ϝʔϧαʔόʔΛSendGridʹҠߦ • etc. • SREͷ҆ୡ͞Μ͕͍ۙҐஔʹ͍ΔͷͰΞϓϦέʔγϣϯͷ ࣮͚ͩͰͳ͘ΠϯϑϥΒͤͯ͘ػձ͕͋ΔͷͰ ෯͍࣮ܦݧ͕Ͱ͖Δ • ΠϯλʔϯͰࡋྔͷ͋ΔλεΫΛͯ͑͠Δ ϥϯαʔζΠϯλʔϯͱͯ͠ೖࣾ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ϝʔϧαʔόʔΛSendGridҠߦ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϝʔϧαʔόʔΛSendGridʹҠߦ ՝ (NBJMΞΧϯτݻ༗ͷ
w ଘࡏ͠ͳ͍ϝʔϧΞυϨεʹϝʔϧૹ৴Λ͢ΔͱεύϜೝఆ͞Εϝʔϧૹ৴͕Ұ࣌తʹ ετοϓ͢Δ w Ұͷϝʔϧૹ৴্ݶ͕ݶΒΕ͍ͯΔ LCCΞϓϦͰͷ௨ػೳ͕ແ͍ͷͰ ϝʔϧ͕ૹ৴͞Εͳ͍ͱΫϥΠΞϯτ͔Βͷ ཁΛݟಀͯ͠͠·͏͜ͱɺɺ ݱ͔ΒͷΞϥʔτ্͕͕͍ͬͯͨͷͰ ૣٸʹରԠ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϝʔϧαʔόʔΛSendGridʹҠߦ SMTP API
ϝϦοτ ϝϦοτ σϝϦοτ σϝϦοτ • ػೳʢਖ਼͘͠ૹ৴͞Ε͔ͨ֬ೝͰ͖Δʣ • ੳػೳʢϚʔέςΟϯάʹ׆༻ʣ • ૹ৴ͷվળʢSPFɺDKIMͷᘳͳઃఆʣ • HTTPͰૹ৴͢Δ͜ͱʹΑͬͯrailsΞϓϦଆͷॲཧϦΫΤετΛ ͛Δ͚ͩʹͳΔ • ActionMailer͕defalutͰ༻ҙ͍ͯ͠Δ৴ํ๏ Λ͏͜ͱrails wayʹΔ͜ͱͰ͋ΔͷͰ(rails ͷֶͱͯ͜͠Εॏཁ)ɺ࣮ͷखؒল͚Δ • طଘͷActionMailerͱͷڞଘ • RailsαʔόʔଆͰඇಉظॲཧΛ͠ͳ͍ͱ͍͚ͳ͍ • GmailͰૹ৴͍ͯ͠ΔͷͰ্ड़͕ͨ͠ൃੜ͍ͯ͠Δ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup w 4.51͔Β4FOE(SJE"1*Ҡߦ w
"DUJPO.BJMFSͷ֤ϝʔϥʔͷॲཧͦͷ··ྲྀ༻ w "DUJPO.BJMFSͷ৴ํ๏Λ4FOE(SJE"1*༻ʹ৽ͨʹՃ w طଘͷ֤ϝʔϥʔͰ࡞͞ΕͨϝʔϧΦϒδΣΫτ͕࣮ߦ͞ΕͨλΠϛϯάͰ .BJM4FOE(SJEΫϥεΛݺͼग़͠4FOE(SJE༻ͷΦϒδΣΫτʹஔ͖͑ w ϝʔϧૹ৴ςετϞοΫίϯςφΛ༻͍ͯςετ ࣮ํ SMTP SendGrid API
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ࣮ํ ࣮ͷৄࡉϥϯαʔζͷΤϯδχΞϒϩάʹॻ͍ͯ·͢ͷͰࢀߟʹʂ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ ϝʔϧૹ৴ςετʹ͍ͭͯ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ϝʔϧૹ৴ςετʹ͍ͭͯ • SREۚᖒ͞Μ͕࡞ͬͯ͘ΕͨϞοΫίϯςφͰ
ϝʔϧૹ৴Λςετ • ϞοΫίϯςφͰ༻ҙͨ͠ϞοΫAPIʹϦΫΤετ Λૹ৴(ӈਤͷHTTP3030 ) • sendgrid-devܦ༝ͰmaildevSMTPͰϝʔϧ৴ • http://xxx.xxx.xxx.xxx:1080/ɹʹΞΫηε͢Δ͜ͱͰ maildevϝʔϧ͕ૹ৴͞Ε͍ͯΔ͜ͱ͕ϒϥβ্Ͱ ֬ೝͰ͖Δ • ΞϓϦଆͷ࣮Mail:SendGridΫϥεͰڥຖʹ APIଓઌͷϗετΛऔಘ
2021/9/8 Πϯλʔϯ͔Βೖࣾͯ͠Railsͷϝʔϧૹ৴ΛSengGridʹҠߦͯ͠Έͯ Ҡߦͯ͠Ͳ͏ͳ͔ͬͨ
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup Ҡߦͯ͠Ͳ͏ͳ͔ͬͨ • ϝʔϧͷૹ৴্ݶ͕ͳ͘ͳͬͨͷͰΞϓϦέʔγϣϯͷ֦ுʹ͚ͯҰาલਐ
• ϥϯαʔζຊՈͰSendGridAPIͰૹ৴͍ͯ͠ΔͷͰݟΛ׆༻Ͱ͖Δ • ػೳ(ϝʔϧͷ৴ঢ়گΛݟ͑ΔԽ ) • ϝʔϧͷΧςΰϦʔઃఆ͕Ͱ͖ΔͷͰϚʔέςΟϯάʹ׆༻ • ૹ৴ͷվળ(SPFɺDIKMͷᘳͳઃఆ ) • APIʹΑΔૹ৴(SMTPͰͳ͘HTTPͰૹ৴Ͱ͖Δ)
2021/9/8 ʲLancers x SUPER STUDIOʳEngineer Meetup ࠷ޙʹ ϥϯαʔζͰҰॹʹಇ͍ͯ͘ΕΔΤϯδχΞɺ ςοΫϦʔυ(RubyɺPHP)ืू͍ͯ͠·͢ʂ