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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.9k
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
150
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
150
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
230
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
170
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
590
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
140
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
220
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
280
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
2
430
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
810
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1.1k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Navigating Weather and Climate Data
rabernat
0
250
WENDY [Excerpt]
tessaabrams
11
38k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Powerful Visuals for Engaging Learning
tmiket
1
430
RailsConf 2023
tenderlove
30
1.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Cult of Friendly URLs
andyhume
79
6.9k
Leo the Paperboy
mayatellez
7
1.9k
So, you think you're a good person
axbom
PRO
2
2.1k
Raft: Consensus for Rubyists
vanstee
141
7.6k
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࠾༻ύονͷҎ্͕ฐࣾ։ൃ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ