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
My Redmine Gen.2を支えるインフラストラクチャー
Search
Takayuki Yoshioka
September 18, 2020
Technology
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
My Redmine Gen.2を支えるインフラストラクチャー
Takayuki Yoshioka
September 18, 2020
More Decks by Takayuki Yoshioka
See All by Takayuki Yoshioka
RedmineをAIで効率的に使う検証
yoshiokacb
0
280
AWSで実現する進化する WEBサービス(SaaS)
yoshiokacb
0
85
AWSで実現する進化するWEBサービス(SaaS)の裏話
yoshiokacb
0
200
モノリスウェブアプリケーションのクラウド最適化について - SaaSの運用 -
yoshiokacb
1
1.6k
ホスティングサービスのインフラ環境を再構築!
yoshiokacb
0
4.9k
Scalable structure for AWS
yoshiokacb
1
1.4k
GDG Cloud Shimane #02
yoshiokacb
0
82
GCPUG-Shimane #04 開催レポート
yoshiokacb
0
76
EC2からECSへ移行を始めたお話
yoshiokacb
2
8.2k
Other Decks in Technology
See All in Technology
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
160
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
110
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
310
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
140
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
0
6.6k
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
490
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
130
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
420
AIテスト自動化と評価駆動開発EDD
happysamurai294
0
130
Patterns in AI Driven Software Development
akosma
PRO
0
430
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
340
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Accessibility Awareness
sabderemane
1
280
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
460
エンジニアに許された特別な時間の終わり
watany
109
250k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Rails Girls Zürich Keynote
gr2m
96
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
Transcript
.Z3FENJOF(FOΛ ࢧ͑ΔΠϯϑϥετϥΫνϟʔ 'BS&OE5FDIOPMPHJFT$PSQPSBUJPO
ࣗݾհɾձࣾհ αʔϏεհ
٢Ԭོߦ 5BLBZVLJ:PTIJPLB ॴଐ ϑΝʔΤϯυςΫϊϩδʔʢגʣ ίϛϡχςΟʔ .BUTVFSC +"846(4IJNBOF ͖ͳαʔϏε "84"NQMJGZ
ϑΝʔΤϯυςΫϊϩδʔגࣜձࣾ ॴࡏ ίΞϏδωε 044ؔ࿈ ౡࠜݝদߐࢢʢ݄ઃཱʣ 4BB4ఏڙ 3FENJOFվળ׆ಈɺ3FENJOF+1ͷӡӦ
w݄αʔϏε։࢝ wࠃ༷ࣾʹ͝ఏڙ w3FENJOFͷίϛολʔ͕ࡏ੶ w࠾༻ύονͷҎ্͕ฐࣾ։ൃ
None
֓ཁ w ݄͔Β.Z3FENJOFͷΠϯϑϥڥΛ࠶ߏங͠ ͖ͯ·ͨ͠ɻ݄ͦͯ͠ʹ.Z3FENJOF(FOͱ ͯ͠ϦϦʔε͞Ε͕ͯܦա͠·ͨ͠ɻ w ࠓճΠϯϑϥʹ༻͞Ε͍ͯΔٕज़ͱαʔϏεʢओʹ "84ʣͷ͍͔ͭ͘ΛϐοΫΞοϓ͠ɺօ༷ʹ͝հͰ͖ Εͱࢥ͍·͢ɻ w
ҙʣίϯςφʢ%PDLFSʣؔ࿈ͷ͕ଟ͘ͳΔ͔ͱࢥ͍ ·͕͢͝ཧղ͍ͩ͘͞ɻ
ΞδΣϯμ શମߏ ར༻αʔϏε ߏஙͷϙΠϯτ 3FENJOF 3BJMT
ͷίϯςφԽ Ϛϧνςφϯτʹ͍ͭͯ
શମߏ
SBJMTDPOTPMF SBLFUBTLʜ
None
ར༻αʔϏε
.BOBHFE4FSWJDF "84ͷൣғͷͳΔ͍͘αʔϏεΛબ αʔόʢཧʣ ωοτϫʔΫʢཧʣ 04ͷཧ ϛυϧΣΞ ԽɾόοΫΞοϓ ΞϓϦέʔγϣϯ ར༻ʢ"1*ʣ &$
'BSHBUF -BNCEB FUDʜ 3%4 3PVUF 4 FUDʜ ͳΔ͘͜ͷลΓͷαʔϏεΛ͏
ίϯςφʢ%PDLFSʣͷ ΦʔέετϨʔγϣϯαʔϏεͷબ
"84&$4ʢ"NB[PO&MBTUJD$POUBJOFS4FSWJDFʣ $MVTUFS 'BSHBUFͷ߹ωʔϜεϖʔεͷΑ͏ͳͷ 4FSWJDF λεΫͷཧɺεέδϡʔϧϯάͳͲ 5BTL σϓϩΠͷ࠷খ୯ҐʢෳͷίϯςφΛཧʣ 'BSHBUF
'BSHBUFͷಛ w αʔόʔϨεͳͷͰϗετ04ͷཧෆཁɻ ʢηΩϡϦςΟͷύονͯͳͲʣ w εέʔϧ࣌ͷΩϟύγςΟʔΛ༨ʹ࣋ͨͳͯ͘ྑ͍ɻ w 44)ͰϩάΠϯͰ͖ͳ͍ɻ
ͦͷଞɺओཁαʔϏε Step Functions EC2 Lambda Aurora CodeBuild CodeCommit CodePipeline CloudFormation
S3 S3 Glacier CloudWatch SNS SQS 3FENJOF पลγεςϜ Athena Kinesis Data Firehose AppSync Elastic Container Registry Application Auto Scaling CloudTrail Systems Manager API Gateway Amplify Secrets Manager AWS WAF Fargate ECS ELB Route53 DynamoDB RDS σϓϩΠɾ$*$% αʔϏεΞΧϯτཧ
ߏஙͷϙΠϯτ 3FENJOFʢ3BJMTʣͷίϯςφԽ ϚϧνςφϯτͷΞʔΩςΫνϟ
ߏஙͷϙΠϯτ 3FENJOFʢ3BJMTʣͷίϯςφԽ ϚϧνςφϯτͷΞʔΩςΫνϟ
ίϯςφʹ͍ͭͯ
3FENJOFΛಈ͔ͨ͢Ίʹ ඞཁͳͷ w 3VCZϥϯλΠϜʢ3VCZʣ w ґଘϛυϧΣΞʢ*NBHF.BHJD 1PTUHSF42-ʣ w ґଘϥΠϒϥϦʢSBJMT SNBHJDL
QHʣ ґଘؔΛؚΊ࣮ͨߦڥΛҰͭͷΠϝʔδʹ·ͱΊͯ͠·͏ɻ Πϝʔδ͝ͱσϓϩΠͰ͖Δʂ
ग़యɿIUUQTXXXEPDLFSDPNSFTPVSDFTXIBUDPOUBJOFS ίϯςφͱԾϚγϯͷൺֱ
ίϯςφͷϝϦοτ ։ൃڥͱຊ൪ڥͷҧ͍͕ͳ͘ͳΔ *OGSBTUSVDUVSFBT$PEFʹ͍͍ͯΔ $*$%ͱ૬ੑ͕ྑ͍ʢ%FW0QTʹ͍͍ͯΔʣ
ίϯςφͷར༻ͷҙ ΠϝʔδΛCVJME͢Δ࡞ۀཧର͕૿͑Δ ঢ়ଶΛ࣋ͨͤΔߏ͍͠ʢσʔλͷӬଓԽʣ
3FENJOFίϯςφԽ
3FENJOFͰߟྀ͕ඞཁͳ͜ͱ ʢӬଓԽ͕ඞཁͳσʔλʣ w%#ʢσʔλϕʔεʣ wϩά wఴϑΝΠϧ
%#ʢσʔλϕʔεʣʹ͍ͭͯ 3%4"VSPSB1PTUHSF42-ޓΤσΟγϣϯ
-PHͷѻ͍ 4JEFDBS1BUUFSOʢίϯςφΛೋͭ༻ʣͰ ϩάऩू༻ίϯςφʢqVFOUEʣΛ༻ͯ͠ϩάͷऩू
ఴϑΝΠϧ "NB[PO4 "NB[PO&'4 ΞϓϦέʔγϣϯͷมߋ͕ෆཁ ΞϓϦέʔγϣϯͷมߋ͕ඞཁ ʢϓϥάΠϯͳͲʣ ϥϯχϯάίετ͕͍҆ ϥϯχϯάίετ͕ߴΊ ͦͦ։ൃ࣌'BSHBUFͰ&'4࿈ܞ͕Ͱ͖ͳ͔ͬͨɻ ީิͷൺֱ
ఴϑΝΠϧ ఴϑΝΠϧͷอଘઌΛ4ʹͰ͖Δ 1MVHJOΛ։ൃʢSFENJDB@Tʣ
։ൃཪʢۤ࿑ʣ pMFT ఴϑΝΠϧ͕อଘ UNQUIVNCOBJMT ఴϑΝΠϧͷαϜωΠϧ͕อଘɻ UNQJNQPSUT $47Πϯϙʔτ࣌ʹҰ࣌ϑΝΠϧ͕อଘɻ ᵓᴷᴷBQQ ᴹᵓᴷᴷDPOUSPMMFST ᴹᵓᴷᴷIFMQFST
ᴹᵓᴷᴷNPEFMT ᴹᵋᴷᴷWJFXT ᵓᴷᴷpMFT ᴹᵓᴷᴷYYYYYYY ᴹᵓᴷᴷYYYYYYY ᴹᵋᴷᴷYYYYYYY ᵋᴷᴷUNQ ᵓᴷᴷDBDIF ᵓᴷᴷJNQPSUT ᵋᴷᴷUIVNCOBJMT
https://github.com/redmica/redmica_s3
ߏஙͷϙΠϯτ 3FENJOFʢ3BJMTʣͷίϯςφԽ ϚϧνςφϯτͷΞʔΩςΫνϟ
ϗεςΟϯάαʔϏε ʢ4BB4ʣ ϏδωεϞσϧͷ γϯάϧςφϯτΑΓϚϧνςφϯτͰ୯ՁΛ͍͑ͨ ʢސ٬αʔόݫ͍͠ɻෳͷސ٬ͰαʔόΛڞ༗͢Δʣ
࣮ํ๏ "QBDIF 1BTTFOHFSΛબ ϓϩηε͝ͱʹڥมΛସ͑Δʂ
Ϛϧνςφϯτ 3FENJOFΛεςʔτϨεʹઃܭ %#αʔόΛར༻ɻϩάͱఴϑΝΠϧΛ4อଘ ઃఆใʢEBUBCBTFZNM TZNMʣʹڥมΛར༻͢Δɻ "QBDIFͷࢠϓϩηε͝ͱʢυϝΠϯ͝ͱʣʹઃఆใʢڥมʣ͕มΘΔɻ
ʢଓ͢Δ%#ɺఴϑΝΠϧͷอଘઌ͕มΘΔʣ ιʔείʔυͷڞ༗Խ͕࣮ݱ
ߏਤ
ߏਤ %PDLFSىಈ࣌ʹ4͔Β ڥมͷใΛऔಘ
db: name: [db_name] user: [user_name] password: [password] s3: bucket: [user_bucket]
folder: [user_folder] property: sub_domain: [sub_domain] limit_ips: - ‘192.168.xx.xx' - '192.168.xx.xx' ઃఆใ4ʹอଘ ˞αϯϓϧΠϝʔδ
ߏਤ %PDLFSىಈ࣌ʹ4͔Β ڥมͷใΛऔಘ
$POGϑΝΠϧΛੜ ˞αϯϓϧΠϝʔδ <VirtualHost *:80> ServerName siteA.example.jp DocumentRoot /var/lib/siteA/public RailsEnv production
PassengerEnabled on SetEnv RAILS_DB db001 SetEnv RAILS_DB_USERNAME dbuser001 SetEnv RAILS_DB_PASSWORD xxxxxxxx SetEnv S3_FOLDER_NAME user001 ... </VirtualHost>
ߏਤ %PDLFSىಈ࣌ʹ4͔Β ڥมͷใΛऔಘ 4JUF"ΞΫηε
3FENJOFͷઃఆϑΝΠϧͷมߋ # database.yml production: adapter: postgresql database: <%= ENV['RAILS_DB'] %>
username: <%= ENV['RAILS_DB_USERNAME'] %> password: <%= ENV['RAILS_DB_PASSWORD'] %> host: <%= ENV['RAILS_DB_HOST'] %> # s3.yml production: bucket: <%= ENV['S3_BUCKET_NAME'] %> folder: <%= ENV['S3_FOLDER_NAME'] %> ˞αϯϓϧΠϝʔδ
ߏਤ %PDLFSىಈ࣌ʹ4͔Β ڥมͷใΛऔಘ 4JUF"ΞΫηε
༨ஊ
ӡ༻ฤ w ΞϓϦέʔγϣϯͷσϓϩΠํ๏ʢখنͳมߋʣ w ΞϓϦέʔγϣϯͷσϓϩΠํ๏ʢ.JHSBUJPO͋Γͷେنͳมߋʣ w αʔϏεΞΧϯτʢ͓٬༷ʣͷ৽نొɾมߋɾఀࢭɾσʔλআ
·ͱΊ ར༻αʔϏε ˠαʔόϨεɺϑϧϚωʔδυαʔϏεΛબɻ 3FENJOF 3BJMT ͷίϯςφԽ ˠఴϑΝΠϧͷѻ͍4ϓϥάΠϯͰղܾɻ
Ϛϧνςφϯτʹ͍ͭͯ ˠݻ༗ͷσʔλͷഉআͱιʔείʔυͷڞ༗Խɻ
w݄αʔϏε։࢝ wࠃ༷ࣾʹ͝ఏڙ w3FENJOFͷίϛολʔ͕ࡏ੶ w࠾༻ύονͷҎ্͕ฐࣾ։ൃ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ