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
FusicTechLive1.5 AWSを活かした基幹システムインフラ構成の紹介
Search
Junkins
July 08, 2021
Technology
0
65
FusicTechLive1.5 AWSを活かした基幹システムインフラ構成の紹介
Junkins
July 08, 2021
Tweet
Share
More Decks by Junkins
See All by Junkins
マルチ〇〇(リージョン、アカウント)の サービスをまとめてみた!
junkins
0
230
CakePHP3レポート
junkins
0
840
[Fukuoka.php Vol.16]LT CakePHP3を使ってみた:Migration Phinxの話
junkins
0
750
Other Decks in Technology
See All in Technology
Webセキュリティのあるきかた
akiym
34
12k
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
3
140
コード✕AIーソフトウェア開発者のための生成AI実践入門~
yuhattor
4
920
Unlearn Modularity
lemiorhan
6
220
KubeVirt Networking ONIC 2024
orimanabu
4
700
入門 バックアップ
ryuichi1208
18
7.4k
ファインディにおけるフロントエンド技術選定の歴史
puku0x
1
120
RAG: from dumb implementation to serious results
glaforge
0
470
Databricks Appのご紹介
databricksjapan
0
500
20241015 Toranomon Tech Hub#1 Service Catalog使ってみた
hiashisan
0
130
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
0
340
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
48k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
40
2.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
How to Think Like a Performance Engineer
csswizardry
17
1k
Creatively Recalculating Your Daily Design Routine
revolveconf
217
12k
GitHub's CSS Performance
jonrohan
1030
450k
Code Reviewing Like a Champion
maltzj
519
39k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Writing Fast Ruby
sferik
626
60k
No one is an island. Learnings from fostering a developers community.
thoeni
19
2.9k
How GitHub (no longer) Works
holman
311
140k
Transcript
AWSΛ׆͔ͨ͠جװγεςϜΠϯϑϥߏͷհ Fusic Tech Live Vol.1.5 2021.07.08 ҏ౻ ५थ 1
ࣗݾհ ҏ౻ ५थ Ito Junki ID - GithubɿJunkin s -
Twitterɿ@Junkins_110 Work at גࣜձࣾ Fusic ʢϑϡʔδοΫʣ ઌਐٕज़෦ IoTνʔϜ IoTΫϥυΤϯδχΞ Skill PHPʗLaravelʗCakePHPʗRubyʗRoRʗAWSʗAzure ܦྺ - PHPͷΞϓϦέʔγϣϯΤϯδχΞ - AWS SA(ιϦϡʔγϣϯΞʔΩςΫτ ) - ࠷ۙɺIoTγεςϜ։ൃ - ͖ͳAWSͷαʔϏεVPCΤϯυϙΠϯτ 2
ɹ࣍ 1. ൃදͷత 2. ؍ 3. αϯϓϧҊ݅ 4. ઃܭϙΠϯτ 5.
·ͱΊ 3
01 ൃදͷత
ൃදͷత 5 1. جװγεςϜͷઃܭͷ؍ɾΞΠσΟΞͷڞ༗ ࠓ·Ͱͷܦݧ ɹɾVDI ڥ ɹɾωοτόϯΩϯά࿈ܞͷجװۀγεςϜ ɹɾΤϯλʔϓϥΠζͷαʔϏε։ൃࢧԉ 2.
AWSͷαʔϏεΛ׆༻ͨ͠جװγεςϜͷιϦϡʔγϣϯઃܭ ɹɾΫϥυΛར༻͢Δͱগͳ͍࿑ྗͰ࣭ͷߴ͍Πϯϑϥڥͷߏங͕Մೳ ɹɾۙɺΤϯλʔϓϥΠζ(جװγεςϜ)͚αʔϏεɺػೳ͕ॆ࣮ 3. ιϦϡʔγϣϯઃܭɺαʔϏεબ͕είʔϓ ɹɾߏஙϑΣʔζͷʹ৮Ε·ͤΜɻ
جװγεςϜͱʁ 6 اۀͷجװͱͳΔۀγεςϜ தখاۀɺݚڀॴ ηΩϡϦςΟɺγεςϜؒ࿈ܞɺ৴པੑɺࠪ
02 ؍
AWS Well-Architected 8 AWS Well-Architected ɾΦϖϨʔγϣϯΤΫηϨϯτ ɾηΩϡϦςΟ ɾ৴པੑ ɾύϑΥʔϚϯεޮ ɾίετ࠷దԽ
AWS Cloud Adoption Framework τϨʔυΦϑʂ
03 αϯϓϧҊ݅
Ҋ݅֓ཁ 10 8લ 2લ কདྷత 1 2 3 4 ᶃɿෳͷۀγεςϜ(ΫϥΠΞϯτΞϓϦ)
ᶄɿ࠷େ͖͍γεςϜΛWebԽ + AWSͰӡ༻ ᶅɿ࣍ͷγεςϜΛWebԽ + γεςϜؒ࿈ܞ(ҏ౻͕୲ͨ͠ϑΣʔζ) ᶆɿશͯͷۀγεςϜΛWebԽ + ૬ޓ࿈ܞ(কདྷͷల)
AWSߏਤ 11 Before
AWSߏਤ 12 After
04 ઃܭͷϙΠϯτ
ɹઃܭͷϙΠϯτ 1. σʔλϕʔεαʔό 2. ΞϓϦέʔγϣϯαʔό 3. ηΩϡϦςΟ 4. ϩά 5.
BIπʔϧ 14
4-1 σʔλϕʔεαʔό
4-1.σʔλϕʔεαʔό 16 PostgreSQL on EC2 RDS PostgreSQL Instance ΦϖϨʔγϣϯΤΫηϨϯτ όοΫΞοϓɾϦετΞ
อकൣғ ˚(IaaS) ̋(PaaS) ˚(AMI) ̋(εφοϓγϣοτ) ৴པੑ Մ༻ੑ ̋(MultiAZ) × ෛՙࢄ ̋(ϦʔυϨϓϦΧ) × ίετ࠷దԽ ̋ ˚ ύϑΥʔϚϯεޮ ֦ுੑ ˚ ̋
4-1.σʔλϕʔεαʔό 17 PostgreSQL on EC2 RDS PostgreSQL Instance όοΫΞοϓɾϦετΞ อकൣғ
˚(IaaS) ̋(PaaS) ˚(AMI) ̋(εφοϓγϣοτ) ৴པੑ Մ༻ੑ ̋(MultiAZ) × ෛՙࢄ ̋(ϦʔυϨϓϦΧ) × ̋ ˚ ֦ுੑ ˚ ̋ Point!! ΦϖϨʔγϣϯΤΫηϨϯτ ύϑΥʔϚϯεޮ ίετ࠷దԽ
4-1.σʔλϕʔεαʔό 18 PostgreSQL on EC2 RDS PostgreSQL Instance όοΫΞοϓɾϦετΞ อकൣғ
˚(IaaS) ̋(PaaS) ˚(AMI) ̋(εφοϓγϣοτ) ৴པੑ Մ༻ੑ ̋(MultiAZ) × ෛՙࢄ ̋(ϦʔυϨϓϦΧ) × ̋ ˚ ֦ுੑ ˚ ̋ ύϑΥʔϚϯεޮ ΦϖϨʔγϣϯΤΫηϨϯτ ίετ࠷దԽ อकͷ༰қੑΛॏࢹͯ͠ɺRDSΛબ
4-1.σʔλϕʔεαʔό 19 PostgreSQL on EC2 RDS PostgreSQL Instance όοΫΞοϓɾϦετΞ อकൣғ
˚(IaaS) ̋(PaaS) ˚(AMI) ̋(εφοϓγϣοτ) ৴པੑ Մ༻ੑ ̋(MultiAZ) × ෛՙࢄ ̋(ϦʔυϨϓϦΧ) × ̋ ˚ ֦ுੑ ˚ ̋ ύϑΥʔϚϯεޮ ΦϖϨʔγϣϯΤΫηϨϯτ ίετ࠷దԽ AWSͷϖʔεͰPostgreSQLͷόʔδϣϯΞοϓ͕ඞཁʂʂ
4-2 ΞϓϦέʔγϣϯαʔό
4-2. ΞϓϦέʔγϣϯαʔό 21 EC2 ECS EKS ΦϖϨʔγϣϯΤΫηϨϯτ ֤छڥͷߏங CI/CD ίετ࠷దԽ
̋ ̋ × ˚ ̋ ̋ ̋ ˚ ˚ ˚ ˚ ̋ ϝϯςφϯεੑ
4-2. ΞϓϦέʔγϣϯαʔό 22 EC2 ECS EKS ֤छڥͷߏங ϝϯςφϯεੑ CI/CD ̋
̋ × ̋ ̋ ̋ ˚ Point!! ΦϖϨʔγϣϯΤΫηϨϯτ ˚ ˚ ˚ ˚ ̋ ίετ࠷దԽ
4-2. ΞϓϦέʔγϣϯαʔό 23 EC2 ECS EKS ֤छڥͷߏங ϝϯςφϯεੑ CI/CD ̋
̋ × ̋ ̋ ̋ ˚ ΦϖϨʔγϣϯΤΫηϨϯτ ίετ࠷దԽ ˚ ˚ ˚ ˚ ̋ ෳγεςϜͷڥߏஙͷ༰қ͞
4-2. ΞϓϦέʔγϣϯαʔό 24 EC2 ECS EKS ֤छڥͷߏங ϝϯςφϯεੑ CI/CD ̋
̋ × ̋ ̋ ̋ ˚ ΦϖϨʔγϣϯΤΫηϨϯτ ίετ࠷దԽ ˚ ˚ ˚ ˚ ̋ AWS Fargate (ίετ͕ڐ͢ͳΒ)
4-3 ηΩϡϦςΟ
4-3.ηΩϡϦςΟ 26 [ηΩϡϦςΟཁ݅] ɹސ٬ͷࣾωοτϫʔΫʹͭͳ͕͍ͬͯΔέʔε͕ଟ͍ [ҙ͍ࣝͯ͠ΔϙΠϯτ] ɾIPΞυϨεΛ࿐ग़͠ͳ͍ ( NAT GatewayΛܦ༝ )
ɾඞཁҎ্ʹΠϯλʔωοτʹ௨৴Λग़͞ͳ͍ ( VPCΤϯυϙΠϯτ ) ɹ→ API Gateway ɹ→ S3 ɾIPΞυϨεΛ࿐ग़ͤͣʹSSH௨৴ ( AWS System Manager ) ɹ→ Session Manager
4-3.ηΩϡϦςΟ 27 Cognito ೝূ ɾར༻ՄෆՄ ɾݖݶ ೝՄ ɾར༻ՄෆՄ ɾݖݶ ɾࣾһཧɾೝূCognitoͰҰׅରԠ
ɹ→ ݸผγεςϜͰೝূΛߦ͏ͱରԠͷ࿙ΕͷϦεΫ͕͋Δ ɹ→ ࠷ѱɺCognitoͰୀ৬ॲཧΛߦ͑ΞΫηε͞ΕΔ͜ͱͳ͍ ɹ→ ਓҝతͳΦϖϨʔγϣϯϛεηΩϡϦςΟϦεΫ ɾγεςϜར༻ՄෆՄ/ݖݶใγεςϜͰݸผཧ (ೝՄ)
4-4 ϩά
4-4.ϩά( ετϨʔδ + ੳج൫ ) 29 S3 DynamoDB RDS ίετ࠷దԽ
̋ ˚ × ̋ ̋ ˚ ύϑΥʔϚϯεޮ × ৴པੑ ˕ ̋ ˕ ̋ ̋ Athena ΦϖϨʔγϣϯΤΫηϨϯτ ετϨʔδ + ੳج൫ݕ౼
4-4.ϩά( ετϨʔδ + ੳج൫ ) 30 S3 DynamoDB RDS ̋
˚ × ̋ ̋ ˚ × ৴པੑ ˕ ̋ ˕ ̋ ̋ Athena ΦϖϨʔγϣϯΤΫηϨϯτ ύϑΥʔϚϯεޮ ετϨʔδ + ੳج൫ݕ౼ ίετ࠷దԽ
4-4.ϩά( ετϨʔδ + ੳج൫ ) 31 ετϨʔδ + ੳج൫ݕ౼ DynamoDB
RDS ̋ ˚ × ̋ ̋ ˚ × ৴པੑ ˕ ̋ ˕ ̋ ̋ S3 Athena ΦϖϨʔγϣϯΤΫηϨϯτ ύϑΥʔϚϯεޮ ίετ࠷దԽ ΞΫηεසΛߟྀͯ͠ίετΛॏࢹ
4-5 BIπʔϧ
4-5. BIπʔϧ 33 σʔλιʔεɿෳͷσʔλϕʔεɺAthena σʔλιʔεͷෛՙɿϦʔυϨϓϦΧ͕ͳͯ͘ (SPICE) ੳɿࢼߦࡨޡ͕ඞཁɿγεςϜͰ࡞ΓࠐΉ͖Ͱͳ͍ ։ൃɿૣ͍ QuickSite
05 ·ͱΊ
4. ·ͱΊ 35 [શମͱͯ͠] ɾ࣭ͷτϨʔυΦϑΛҙࣝ͢Δ(Ͳͷ࣭Λॏࢹ͢Δ͔Λ໌֬ʹ) [ϊϋ] ɾϓϥΠϕʔτωοτϫʔΫͱܨ͕͍ͬͯΔγεςϜͷηΩϡϦςΟҙ ɹɾύϒϦοΫαʔϏεΛར༻͢Δ߹ಛʹҙΛʂ ɾڞ௨ج൫ʹͳΓͦ͏ͳػೳ֎ͩ͠ΞϦ͔ [AWSαʔϏεͷϥΠϯφοϓͷ๛͞]
ɾϥΠϯφοϓ͕๛ͳͨΊɺ༷ʑͳબࢶ͕ଘࡏ͢Δ ɾ࠷దͳαʔϏεɺιϦϡʔγϣϯΛબ͠Α͏
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠ Thank You We are Hiring ! https://recruit.fusic.co.jp/
ເதͳϠπʂ͍͍ϠπʂϠό͍Ϡπʂ ืू͍ͯ͠·͢ʂ Thank You We are Hiring ! https://recruit.fusic.co.jp/
Fusic Tech Blog We are Hiring ! https://recruit.fusic.co.jp/ AWSɺػցֶशɺAzur e
PHPɺRuby