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
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
240
AWSで実現する進化する WEBサービス(SaaS)
yoshiokacb
0
75
AWSで実現する進化するWEBサービス(SaaS)の裏話
yoshiokacb
0
190
モノリスウェブアプリケーションのクラウド最適化について - SaaSの運用 -
yoshiokacb
1
1.5k
ホスティングサービスのインフラ環境を再構築!
yoshiokacb
0
4.8k
Scalable structure for AWS
yoshiokacb
1
1.3k
GDG Cloud Shimane #02
yoshiokacb
0
73
GCPUG-Shimane #04 開催レポート
yoshiokacb
0
75
EC2からECSへ移行を始めたお話
yoshiokacb
2
8.1k
Other Decks in Technology
See All in Technology
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
強化学習「理論」入門
enakai00
3
3.6k
JavaScript 研修 (2026)
recruitengineers
PRO
2
550
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
780
FDEの心得
noriakioji
5
6k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
800
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
580
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
Flutterをカメラで動かしたかった話
sony
1
140
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
570
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
280
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
So, you think you're a good person
axbom
PRO
2
2.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
790
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
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࠾༻ύονͷҎ্͕ฐࣾ։ൃ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ