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
AWSの研修環境構築のためにAWS CDKとAmplify Console使った話 / jaw...
Search
kasacchiful
PRO
September 12, 2020
Programming
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSの研修環境構築のためにAWS CDKとAmplify Console使った話 / jaws sonic 2020
JAWS SONIC 2020 & MIDNIGHT JAWS 2020 で、発表した資料です。
kasacchiful
PRO
September 12, 2020
More Decks by kasacchiful
See All by kasacchiful
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
480
Step Functions Express ワークフローの使い所 / 20260725jawsug-niigata-sado
kasacchiful
PRO
1
95
Step FunctionsでAIエージェント × 人の承認を試す / 20260705jawsug-hokurikushinkansen-agentcore-hitl-workflow
kasacchiful
PRO
0
120
上越のサメ食文化を訪ねて - 新潟市民の初体験レポ / ssmjp-shark
kasacchiful
PRO
1
89
Rust on AWS でデータ分析 / 20260523iotlt-niigata-rust-on-aws
kasacchiful
PRO
0
67
Step Functionsで始めるサーバーレス入門 〜 つないで動かすAWSサーバーレス
kasacchiful
PRO
0
79
Amazon Q Developer CLI (現Kiro CLI) で作った 新潟ランチマップWebアプリのこれまでとこれから / 20260207jawsug-tochigi
kasacchiful
PRO
0
140
Amazon SageMaker Catalogの、AIエージェントによる自動データ分類機能を試してみようとしたが、できなかったので、代わりに最近構築したデータ連携基盤を紹介します / 20260117jawsug-fukui
kasacchiful
PRO
0
170
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
PRO
2
300
Other Decks in Programming
See All in Programming
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
420
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
アクセシビリティから考える情報設計
high_g_engineer
0
380
App Intentsのビルドプロセスを支える技術
kntkymt
0
380
Jetpack Compose メカニズム
skydoves
0
430
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
320
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
180
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
290
速習iPhone Duo対応
yuukiw00w
1
520
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Being A Developer After 40
akosma
91
590k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Odyssey Design
rkendrick25
PRO
2
810
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Side Projects
sachag
456
43k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Making the Leap to Tech Lead
cromwellryan
135
10k
Leo the Paperboy
mayatellez
10
2.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Transcript
AWSͷݚमڥߏஙͷͨΊʹ AWS CDKͱAmplify Console ͬͨ Hiroshi Kasahara (JAWS-UG Niigata) JAWS
SONIC 2020 & MIDNIGHT JAWS 2020 2020/09/12 Sat. 21:00
• ৽ׁࢢࡏॅ • ݩSIerۈͷΤϯδχΞ • ͖ͳݴޠ: • ίϛϡχςΟ: • JAWS-UG
৽ׁ • JaSST Niigata ࣮ߦҕһձ • ASTER ਖ਼ձһ • etc. Hiroshi Kasahara @kasacchiful @kasacchiful 2
JAWS-UG Niigata • 201811݄ʹ্ཱͪ͛ • ৽ׁݝʹ3ͭ͋Δࢧ෦ͷ1ͭ • ৽ׁͱ͍͑ɺञ • ࠙ձ͕ʮʹ͍͕ͨञͷਞʯͷ࣌
• ΦϑϥΠϯ։࠵ͷࡍʹɺ͓͍͍͓͠ञ ͱ͓৯ࣄΛᅂΈʹɺͥͻ৽ׁ͓ӽ͘͠ ͍ͩ͞ 3
͢͜ͱ • ࣾͷݚमڥΛߏங͢ΔͨΊʹɺAWS CDKͱAWS Amplify ConsoleΛ͍·ͨ͠ • AWS CDKͱAWS Amplify
Consoleͷબఆཧ༝ • AWS CDKͱAWS Amplify Consoleͷݸਓత༻ײ 4
͞ͳ͍͜ͱ • AWS CDKͷৄࡉ • AWS Amplify Consoleͷৄࡉ • ࣮ࡍॻ͍ͨίʔυͷઆ໌
5
ͬͨ͜ͱ • ݚमͰ༻͢ΔIAMϢʔβVPCͳͲͷॳظઃఆ • AWS CDKͰఆٛ • ݚमͰ༻͢ΔϋϯζΦϯࢿྉ • docsifyΛ༻ͯ͠هड़͠ɺAmplify
ConsoleͰՔಇ 6
എܠ • ࠓɺࣾͷAWSݚमΛ͞Ε·ͨ͠ • ΄ͱΜͲͷࣾһAWS৮ͬͨ͜ͱ͕ͳ͍ • ʮAWSͱԿ͔ʯΛͬͨޙʹʮϋϯζΦϯʯ͕ඞཁͩͳ • ʮϋϯζΦϯʯͲ͏ͬͯΖ͏͔ͳʁ 7
ϋϯζΦϯͷ༰ • 2019ʹʮJAWS-UG৽ׁʯͱ ʮJAWS-UG৽ׁݝʯͰ࣮ࢪͨ͠ɺ EC2ͱS3ͷϋϯζΦϯΛݩʹߏɻ • ಄30આ໌ͷޙɺ2࣌ؒͰ WordPressαΠτߏங·ͰҰ௨ΓͰ͖ ΔΑ͏ʹɻ •
ૣ͘ऴΘͬͨਓ͚ʹΦϓγϣϯϋϯ ζΦϯΛ༻ҙɻ 1. Amazon EC2 • ΠϯελϯεىಈɺΠϯελϯελΠϓมߋɺ Πϯελϯεআ 2. Amazon S3 • όέοτ࡞ɺΦϒδΣΫτอଘɺόέοτ আɺެ։ઃఆɺ੩తWebαΠτϗεςΟϯά 3. WordPressαΠτߏங • Marketplace AMIΛ༻ͯ͠Πϯελϯεىಈɺ ը૾ϑΝΠϧΛS3ʹอଘͯ͠৴ 4. Φϓγϣϯ • WordPressͷMySQLσʔλΛRDSʹҠߦ • ALBͰෛՙࢄ • ΦʔτεέʔϦϯάઃఆ 8
ϋϯζΦϯڥ • ࢀՃऀຖͷAWSΞΧϯτແ͍ɻ • ϋϯζΦϯ༻ͷAWSΞΧϯτ1ͭʹ ରͯ͠ɺࢀՃऀͷIAMϢʔβVPC ͳͲΛ༻ҙɻ • AWSϚωδϝϯτίϯιʔϧͰૢ࡞ •
EC2ͷϩάΠϯSystems Manager ͷηογϣϯϚωδϟʔͰ࣮ࢪ 9
ϋϯζΦϯڥ 10 WordPressͷEC2ΠϯελϯεΛىಈͤ͞ ͯɺը૾ϑΝΠϧΛS3ʹอଘɾ৴Ͱ͖Δ ·ͰΛඪʹϋϯζΦϯ࣮ࢪ ΦϓγϣϯϋϯζΦϯ·Ͱ࣮ࢪ͢Δͱɺ͜͜ ·ͰͰ͖Δ
ϋϯζΦϯ࣮ࢪ͢Δʹ͋ͨͬͯͷ՝ (1) 1. ࣾͷωοτϫʔΫڥͰɺEC2ʹϩάΠϯͰ͖ͳ͍ • ձࣾϦϞʔτϫʔΫͰͳ͘ɺΈͳ͞ΜΦϑΟεϫʔΫ • Ϛωδϝϯτίϯιʔϧ৮ΕΔ͕ɺSSH/RDP͚ͩͰͳ͘SSMηογϣ ϯϚωδϟʔϒϩοΫ͞ΕΔ 2.
͍ձٞࣨͰɺͨ͘͞ΜͷਓΛೖΕͨ͘ͳ͍ • ࣮ࡍͷϋϯζΦϯࢀՃऀߜΓ͍ͨ • Ͱɺͨ͘͞ΜͷਓʹࢀՃͯ͠΄͍͠δϨϯϚ 11
ϋϯζΦϯ࣮ࢪ͢Δʹ͋ͨͬͯͷ՝ (2) 3. ϋϯζΦϯͷॳظઃఆɺࢀՃਓʹԠͯ͡ਝʹ࡞Γ͍ͨ • 3࣌ؒͷஸͳͷͰɺ࣌ؒΛ֬อ͔ͯ͠ΒࢀՃਃࠐʹͳΔͣ • ͭ·Γɺ։࠵લʹ૿͑ΔՄೳੑେ 4. ։࠵ޙʹ෮श͢ΔͨΊͷڥΛ༩͍͑ͯ͋͛ͨ
• श͏ΑΓ׳ΕΖ • ܁Γฦ͠AWSΛ৮ͬͨํ͕ʹ͘ • ͰࣾωοτϫʔΫ͔ΒAWS৮Δͷ͍͠ 12
՝ͷରԠ (1) 1. ࣾͷωοτϫʔΫڥͰɺEC2ʹϩάΠϯͰ͖ͳ͍ • ձʹϋϯζΦϯઐ༻ΞΫηεϙΠϯτ͕͋ΔͷͰɺҰ࣌తʹ༗ޮԽ͢ Δ 2. ͍ձٞࣨͰɺͨ͘͞ΜͷਓΛೖΕͨ͘ͳ͍ •
ΦϯϥΠϯͰࢹௌͰ͖ΔΑ͏ʹ͢Δ (ฐࣾͰɺMicrosoft Teams) • ϋϯζΦϯ࣌ؒଳͰɺࢲͷϋϯζΦϯ༰ͷϥΠϒߏஙΛ৴ • ձࢀՃऀ͚ͷϋϯζΦϯαϙʔτɺผͷਓʹ͓ͤͨ͠ 13
՝ͷରԠ (2) 3. ϋϯζΦϯͷॳظઃఆɺࢀՃਓʹԠͯ͡ਝʹ࡞Γ͍ͨ • AWS CDKͰઃఆͰ͖ΔΑ͏ʹͨ͠ (ࣾNW͔ΒCDKίϚϯυͰΞΫηεͰ͖ͨ) 4. ։࠵ޙʹ෮श͢ΔͨΊͷڥΛ༩͍͑ͯ͋͛ͨ
• ϋϯζΦϯࢿྉΛAWS Amplify ConsoleͰެ։͠ɺࣗͰ෮शͰ͖ΔΑ͏ʹͨ͠ • ॳظઃఆCDKͰग़ྗͨ͠CloudFormationςϯϓϨʔτͰઃఆͰ͖ΔΑ͏ʹͨ͠ • ࢲͷϋϯζΦϯϥΠϒߏங৴ಈըɺը͢ΔͱࣗಈతʹMicrosoft Streamsʹ อଘ͞ΕΔͷͰɺࣗͰϥΠϒߏஙಈըΛݟͳ͕ΒߏஙͰ͖ΔΑ͏ʹͨ͠ 14
AWS CDK 15
AWS CDK • AWSͷϦιʔεΛϓϩάϥϛϯάݴޠͰఆٛͯ͠ϓϩϏδϣχϯά • CloudFormationͷϥούʔ 16
ͳͥAWS CDKΛͬͨͷ͔ʁ ಉ͡ઃఆΛ܁Γฦ͠࡞Γ͍ͨ • CloudFormationΛॻ͘ͷ(ݸਓతʹ)πϥΠ • CDKͰϧʔϓͤ͞ΕOKͩ͠ɺ(ݸਓతʹ)ײతʹ͔͚Δ ීஈ͍׳Ε͍ͯΔϓϩάϥϛϯάݴޠͷίʔυͰॻ͚Δ/ಡΊΔ҆৺ײ • CloudFormationͷYAML/JSONϑΝΠϧΑΓɺCDKͷPythonίʔυͷํ͕ɺ(ݸਓతʹ)ಡΈ
͍͢ CloudFormationςϯϓϨʔτग़ྗͰ͖Δ • ࣗݾֶश࣌ʹɺݸਓͷAWSΞΧϯτͰॳظઃఆΛ࠶ݱͰ͖Δ 17 ͜ΕͰࢀՃਓɺ ҰؾʹVPCͳͲͷॳظઃఆ͕Ͱ͖Δʂ
αʔϏεͷ੍ݶʹؾΛ͚ͭΔ AWSͷ֤छαʔϏεͷ੍ݶΛ֬ೝ͓ͯ͘͜͠ͱɻ ࠓճ্ݶ؇ͷਃΛͨ͠ͷ • 1Ϧʔδϣϯ͋ͨΓͷVPCͷ • 1Ϧʔδϣϯ͋ͨΓͷΠϯλʔωοτήʔτΣΠͷ 18
αʔϏεΫΥʔλ ʮࢲͷαʔϏεΫΥʔλʯ͔Βɺ্ݶ؇ͷਃͰ͖·͢ɻ • ʮطଘͰಈ͍͍ͯΔͷͷʯΛؚΊΔ͜ͱΛΕ͕ͪͳͷͰɺؾΛ͚͓ͭͯ͜͏ • ྫ: σϑΥϧτVPC • VPCͷΛʮ10ʯ࡞Γ͍͔ͨΒʮ10ʯͰਃ͢ΔͱɺσϑΥϧτVPCΛؚΊ ͯͳ͍ͷͰɺVPC1ͭ࡞Εͳ͍
ਃͨ͠ཌ͘Β͍ʹɺ্ݶ؇͕ө͞Ε·ͨ͠ɻ 19
CDKͰઃఆͨ͠ͷ ࢀՃऀ͋ͨΓ • VPC: 1ͭ • ΠϯλʔωοτήʔτΣΠ: 1ͭ (VPCʹΞλον) •
αϒωοτ: 4ͭ • publicαϒωοτɺIGWͷϧʔςΟϯά Ճ • ηΩϡϦςΟάϧʔϓ: 2ͭ (web ͱ db) • IAMϢʔβ • ڞ௨ͷIAMάϧʔϓʹՃ 20 ࢀՃऀڞ௨ • IAMάϧʔϓ • ֤छϙϦγʔΛΞλον • IAMϩʔϧ • EC2ʹʮAmazonEC2RoleforSSMʯͱ ʮAmazonS3FullAccessʯΛڐՄ͢ΔͨΊ • ΠϯελϯεϓϩϑΝΠϧͷ࡞ΛΕͣʹ ࠓճPythonͰॻ͖·ͨ͠
ߏஙྫ (IAMϢʔβͱIAMάϧʔϓ) # IAM Group iam_group = iam.Group(self, "HandsonGroup", group_name
= "HandsonGroup", managed_policies = [ iam.ManagedPolicy.from_aws_managed_policy_name("AmazonS3FullAccess"), ] ) # IAM Users cnt = 10 for i in range(1, cnt + 1): iam_user = iam.User(self, f"handson-seminar-iamuser-{i}", user_name = f"handson-seminar-iamuser-{i}", groups = [iam_group], ) 21
ࣗݾֶश༻ͷॳظڥઃఆCFNςϯϓϨʔτ cdk synth ͷίϚϯυͰɺCloudFormationςϯϓϨʔτΛग़ྗͰ͖Δɻ 22 $ cdk synth handson-stack >
cfn-template-handson.yml
AWS CDKͷ༻ײ • ͍ͭͷϓϩάϥϛϯάݴޠͰॻ͚Δ҆৺ײ (ݸਓతʹ) • ݁ߏলུͯ͠هड़Ͱ͖Δ • ϋϯζΦϯͰࢿྉʹهड़͢Δඞཁ͕͋ͬͨͷͰVPC໊ࢦఆ͕ͨ͠ɺ CloudFormationςϯϓϨʔτΑΓهड़ྔ͕ݮͬͨ
• ݟ͕͠ϥΫ • ࠔͬͨͱ͖ɺAPIϦϑΝϨϯεઌۦऀͷTypeScriptίʔυΛࢀর • ݴޠҟͳͬͯɺΫϥεϝιου͕ڞ௨Խ͞Ε͍ͯΔ 23
AWS Amplify Console 24
AWS Amplify Console • ੩తWebϗεςΟϯάαʔϏε • Ϗϧυ&σϓϩΠ͢ΔͨΊͷɺγϯϓϧͳCI/CDػೳ͋Γ • AmplifyΛߏ͢Δཁૉͷ1ͭ •
ࠓճAmplify ConsoleͷΈ͍ͬͯ·͢ 25
Amplify Consoleͷಋೖ 1. Deployͷ”GET STARTED”Λબ 2. GitϦϙδτϦαʔϏεΛબ 3. ϦϙδτϦͱϒϥϯνΛબ 4.
ϏϧυઃఆΛՃ 5. อଘͯ͠σϓϩΠ!!!
ͳͥAmplify ConsoleΛͬͨͷ͔ʁ (1) ͔ࣗΒͰࣗݾֶशͰ෮श͍ͤͯ͋͛ͨ͞ • Amplify ConsoleͰࢿྉΛWebͰެ։͢ΕOK • ύεϫʔυอޢ(Basicೝূ)Ͱ͖Δ •
VPCͷॳظઃఆɺCDKͰ࡞ͨ͠CloudFormationςϯϓ ϨʔτΛࢿྉαΠτ͔Βμϯϩʔυͯ͠༻ͯ͠Β͑OK 27
ͳͥAmplify ConsoleΛͬͨͷ͔ʁ (2) σϓϩΠ·ͰͷखॱΛϥΫʹ͍ͨ͠ • ࠓ·ͰͷJAWS-UG৽ׁͰͬͯͨ͜ͱ • ฤू࣌: MarkdownͰॻ͘ →
masterϒϥϯνʹϚʔδ → GitHubʹpush • Ϗϧυ&σϓϩΠ࣌: MarkdownΛHTMLʹม͢Δ → S3ʹઃஔ͢Δ • ࠓճͬͨ͜ͱ • ฤू࣌: MarkdownͰॻ͘ → masterϒϥϯνʹϚʔδ → GitHubʹpush • pushͨ͠ޙɺAmplify Console͕ࣗಈతʹϏϧυ & σϓϩΠͯ͘͠ΕΔ 28 ࢿྉ࡞Δͷࢲ1ਓ͚͔ͩͩΒɺ ༨ܭͳखॱΛ౿·ͳ͍Α͏ʹ͍ͨ͠
Ϗϧυ & σϓϩΠ ϑϩʔ 29
υΩϡϝϯταΠτΛdocsifyͰ VueϕʔεͷυΩϡϝϯταΠτΛ͓खܰʹ • Single Page Application • Ϗϧυෆཁ • MarkdownϑΝΠϧͷ··ઃஔͰ͖Δ
• JAWS-UG৽ׁͷϋϯζΦϯࢿྉ(Markdown)͕ͦͷ··͑Δ • ͰϚωδϝϯτίϯιʔϧͷUIมߋ͕݁ߏ͋ͬͨͷͰɺॻ͖͢෦ଟ͔ͬͨ • ֤छϗεςΟϯάαʔϏεͷσϓϩΠखॱ͕υΩϡϝϯτʹ༻ҙ • Amplify Consoleɺ͜ͷσϓϩΠखॱͷ௨Γʹ࣮ࢪ͠·ͨ͠ 30 IUUQTEPDTJGZKTPSH
version: 0.1 frontend: phases: build: commands: - "sed -i -e
\"s/routerMode: 'hash',/routerMode: 'history',/g\" ./docs/index.html" artifacts: baseDirectory: /docs files: - '**/*' cache: paths: [] docsifyͷυΩϡϝϯτʹ ै͑OKɻ • ϦϙδτϦϧʔτʹஔ͘ amplify.ymlӈͷΑ͏ ʹͯ͠ɺϏϧυ࣌ʹ routerModeΛ”history” ʹॻ͖͍͑ͯΔɻ Amplify ConsoleͷσϓϩΠઃఆ
ΤϯτϦϙΠϯτͷindex.htmlʹdocsifyͷઃఆΛॻ͖ɺ ֤ϖʔδMarkdownͰॻ͖·͢ɻ
࣮ࡍͷϋϯζΦϯςΩετ͜Μͳײ͡
ςΩετͱϚωδϝϯτίϯιʔϧฒͯ ϋϯζΦϯͷ༷Λ࣮ԋ & ࣾʹϥΠϒ৴͠·ͨ͠
AWS Amplify Consoleͷ༻ײ • Ϗϧυ & σϓϩΠͷख͕͔ؒͳΓল͚ͨ • ॳظઃఆҙ֎ͱ؆୯ͩͬͨ •
(docsifyͷσϓϩΠखॱʹै͚ͬͨͩͰ͋Δ͕…) • Amplify SDKAmplify CLIΘͳͯ͘ɺ·ͣAmplify Consoleͩ ͚Ͱࢼͯ͠ΈΔՁ͋Δ 35
·ͱΊ 36
·ͱΊ • ࣾͷݚमڥΛߏங͢ΔͨΊʹɺAWS CDKͱAWS Amplify ConsoleΛ͍·ͨ͠ • AWS CDKͰϋϯζΦϯͷॳظڥߏஙɻϓϩάϥϛϯάݴޠͰॻ͚ Δ҆৺ײɻهड़͕݁ߏলུͰ͖ͯɺίʔυશମ͕εοΩϦɻ
• AWS Amplify ConsoleͰϋϯζΦϯςΩεταΠτͷϏϧυ&σϓϩ ΠলྗԽɻҙ֎ͱ؆୯ɻා͘ͳ͍ɻ 37
https://jawsug-niigata.connpass.com 38
ࢀߟ • ϋϯζΦϯͷϕʔε: • JAWS-UG ৽ׁ #2 - S3 ϋϯζΦϯ
• https://jawsug-niigata.connpass.com/event/114694/ • JAWS-UG ৽ׁ #4 - EC2 / Lightsail ϋϯζΦϯ • https://jawsug-niigata.connpass.com/event/126558/ • JAWS-UG ৽ׁݝ ॳ৺ऀ͚ϋϯζΦϯ • https://nds.connpass.com/event/133878/ 39