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
210
AWSで実現する進化する WEBサービス(SaaS)
yoshiokacb
0
71
AWSで実現する進化するWEBサービス(SaaS)の裏話
yoshiokacb
0
180
モノリスウェブアプリケーションのクラウド最適化について - SaaSの運用 -
yoshiokacb
1
1.5k
ホスティングサービスのインフラ環境を再構築!
yoshiokacb
0
4.8k
Scalable structure for AWS
yoshiokacb
1
1.3k
GDG Cloud Shimane #02
yoshiokacb
0
71
GCPUG-Shimane #04 開催レポート
yoshiokacb
0
74
EC2からECSへ移行を始めたお話
yoshiokacb
2
8.1k
Other Decks in Technology
See All in Technology
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
250
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.2k
Zenoh on Zephyr on LiteX
takasehideki
2
130
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
130
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
130
Agile and AI Redmine Japan 2026
hiranabe
4
500
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
280
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
150
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
270
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.3k
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
190
組織における AI-DLC 実践
askul
0
170
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
870
Tell your own story through comics
letsgokoyo
1
980
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Balancing Empowerment & Direction
lara
6
1.2k
Speed Design
sergeychernyshev
33
1.9k
The Language of Interfaces
destraynor
162
27k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
ラッコキーワード サービス紹介資料
rakko
1
3.8M
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࠾༻ύονͷҎ্͕ฐࣾ։ൃ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ