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
github-classmethod-study-20170426
Search
Koji Nakayama
April 26, 2017
Technology
3.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
github-classmethod-study-20170426
http://dev.classmethod.jp/news/170426-github-classmethod-study/
Koji Nakayama
April 26, 2017
More Decks by Koji Nakayama
See All by Koji Nakayama
Software Testing in AWS IoT with The Power of Python
knakayama
0
1.8k
The ~~Ten~~ Three Most Critical Security Risks in Serverless Architectures
knakayama
2
1.6k
サーバーレス x IoT 〜我々はどういった課題に直面してそれをどのように解決したのか〜
knakayama
0
1.5k
Bloxが切り開くECSの世界
knakayama
1
1.3k
AWS Serverless Application Modelのデプロイ戦略
knakayama
4
2.5k
サーバレスアーキテクチャはじめの一歩
knakayama
1
1.6k
Other Decks in Technology
See All in Technology
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
1
270
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
190
AIQAのナレッジ構築について
qatonchan
1
140
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
720
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
1.2k
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
180
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1k
plamo-3-translateの開発
pfn
PRO
0
240
VPCセキュリティ対応の最新事情
nagisa53
2
350
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
7
3k
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
610
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
650
My Coaching Mixtape
mlcsv
0
180
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
Optimizing for Happiness
mojombo
378
71k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Everyday Curiosity
cassininazir
0
270
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Transcript
GitHub Enterprise;AWSΨ 奲ΕݳΥͱ͵CDP GitHub;μ϶φϮϊϐϖ΄ۣ䔶տ 뺶GitHub x AWS΄๋ෛDevOpsԪఘ뺶 2017/04/26 Ӿઊ ଛလ
1
ᛔ૩奧Օ • Ӿઊ ଛလ • μ϶φϮϊϐϖ AWSԪ䮣᮱ ϊϷϲЄτϴ ЀίЄκϓμϕ •
AWSΨڥአͭ͵αЀϢ϶΄戔懯/䯤塈/π ЀςϸϓΰЀν • GitHub: knakayama • 奺䵉 • ηЀϤϹςЄϝ΄晁አ3ଙ • AWS 1ଙ 2
ίυδЀύ 1. Ք෭͠扖ͯΡٖ 2. AWSΨֵ͜Ӥͽ΄च㵟 3. GitHub EnterpriseΨֵ͜Ӥͽ΄च㵟 4. CDP΄奧Օ
5. Δ;Η 6. ݇ᘍϷЀμ 3
ဳᅩ • GitHub Enterprise΅GHE;ᤒ懿ͯΡ • GHE΅咲ᤒ䦒๋ෛϝЄυϴЀͽ͘Ρ2.9ᔮΨమਧ • AWSΘ匍䦒ᅩ΄ఘ䁭ΨڹͯΡ • 㪒ςЄϠφ;ΘίϐϤϔЄϕ͚͢΄ͽڥአͯΡ檭΅๋ෛ΄ఘ
䁭Ψ݇ᆙͯΡͩ; 4
1. Ք෭͠扖ͯΡٖ • GHEΨAWSͽֵͼ͚ͥ檭΄抓氂;ͳ΄ᥴဩΨͪ奧Օ • ۆΠ;OpsੀΠٖ͢ग़Η • ͽφ϶αϖل樄ͭΔͯ • ݇ᘍϷЀμΨ㪥ͱͼ͚Ρ΄ͽ托奞ΨᎣΠ͵͚䁰ݳ΅݇ᆙͥͶͫ
͚ 5
2. AWSΨֵ͜Ӥͽ΄च㵟 • ᒫӞϫϚЄυϖςЄϠφ΄ڥአΨ䭥懵ͯΡͩ; • ਞਧ • ՜ςЄϠφ;΄昧൭ • 晁አ揗រ΄֗仂
• 䰤伛ςЄϠφͽ΅ᥝկݳΥ͚䁰ݳᛔړ͵ͷͽ֢Ρ • տᐒ͢ಭ揾ͯΏͣϠυϚφϺυϐμᵞӾͯΡ 6
3. GHEΨֵ͜Ӥͽ΄च㵟 • चጱGHEᛔ΄戔ਧΨΟ͚ • GHE΄ίϐϤϔЄϕͽ/data/userզक़قͼӤ䨗ͣͫΡ͵Η • GitHub͢׀ͭͼͥͼ͚Ρ䰤伛䱛ᚆΨֵ͜ • 晁አ揗រΨ֗仂ͭ͵୵ͽGHEΨᓕቘͽͣΡ
7
4. CDP΄奧Օ 8
抓氂1 9
GHEΨαЀόЄϚϐϕ ل樄ͭ͵͚ͥ 10
GHEΨαЀόЄϚϐϕل樄ͭ͵͚ͥ • GitHub.com͘͢ΡΘ樛ΥΟͰGHEΨڥአͯΡ㵕䱛΅͚ͥͺ͘͡Ρ • ψκϲϷϓΰӤ΄ᥝկ͡Οᐒक़ϊЄφπЄϖΨᗝͣ͵͚ͥ;ᘍ ͞Ρ͠ਮ䯭΅ग़͚ • Ϥ϶αϦЄϕϷϪυϕϷΨϞϣϷϐμͭͼͭΔ͵ • ίμψφκЄΨπϬϐϕތΗͼͭΔ͵
• ᐒٖ΄LDAPςЄϝͽϺναЀᓕቘͭ͵͚ 11
Ϥ϶αϦЄϕNWϞόЄЀ 12
䯤౮ • ᐒٖNW;VPC樌Ψψκϲίള姆 • ϜЄϖγδίVPN • αЀόЄϚϐϕࢧ娄ΨIPsec VPNͽ ิݩ۸ •
Direct Connect • 䌑አ娄ͽVPC;ള姆 13
晝ਧϪαЀϕ ϜЄϖγδίVPN Direct Connect πφϕ ਞ㭅ϦφϕεϢζЄ ϕࢧ娄Θڥአݢᚆ κϰϷί΄䌑አ娄ςЄ Ϡφ΄ॶ夹͢ᥝ ϷЄϖόαϭ
ܨ䦒~ හ昱樌~ 䒏ऒ ิݩ۸΄ηЄϝЄϥϐ ϖΞΠګᴴ͘Π ~10Gbps ߝ搡 αЀόЄϚϐϕϦЄφ ΄͵Η奺᪠Ӥ΄Ϛϐϕ ϼЄμᇫ䙪΄段Ψݑ ͧΡ κϰϷίΞΠߝ搡͢ כ戣ͫͼ͚Ρ ᵑਸ਼䦒΄ڔΠړͧ αЀόЄϚϐϕϦЄφ ΄͵Ηᛔᐒͽכ೮ͭͼ ͚Ρ塅㾨զक़΄ڔΠړ ͧ͢櫞͚ͭ εЀϖϑЄεЀϖͽͿ ΄奺᪠Ψڥአͭͼ͚Ρ ͡ൎͽͣͼ͚Ρ͵Η ྲ斃ጱฃ https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016-amazon-vpc/66 14
αЀόЄϚϐϕΎ΄ίμψφ • GHE͡ΟαЀόЄϚϐϕڊͼ͚ͥ͵Η΅̵ NAT Gateway͡ᐒٖNW΄οЄϕγδαΨڥአ ͯΡ • ϸЄϕϓЄϣϸ΄戔ਧ΅զӥ΄Ξͯ͜Ρ Destination Target
䯤౮ 0.0.0.0/0 nat-xxx NAT Gateway 奺ኧ 0.0.0.0/0 vgw-xxx ᐒٖοЄϕ γδα奺ኧ 15
抓氂2 16
GHE΄ϝϐμίϐϤͭ͢͵͚ 17
GHE΄ϝϐμίϐϤͭ͢͵͚ • य़ԪϊЄφπЄϖΨכᓕͭͼ͚ΡGHE΄ϝϐμίϐϤ΅殾 • ηϧϬφͿͽϔЄό΄ၾ०᩸ͩ͢Ρݢᚆ΅Ϳ΄奲婻ͽΘ͘Ρ • ϝϐμίϐϤ/ϷφϕίͯΡ͵Η΄ϑЄϸΨGitHub͢ل樄ͭͼͥ ͼ͚Ρ • https://github.com/github/backup-utils
• ͵Ͷ̵ͭϑЄϸΨ䋚ᤈͯΡαЀφόЀφ΄ᓕቘ΅ͭ͵͚ͥ 18
ϫϚЄυϖϝϐμίϐϤϞόЄЀ 19
DatePipeline • GHE΄ϝϐμίϐϤ㳌ቘΨDatePipeline ͽਧ嬝 • ݱ圵ϔЄό΄ᑏ㵕Κ̵ݐͿΨਧ 嬝ͽͣΡ • ϼЄμϢϺЄΨϠυϲί϶αχᤒ ᐏͭͼͥΡ
• ϝϐμίϐϤ΄Ξ͜ϝϐώ㳌ቘ΄ ਧ嬝๋晒 20
ϼЄμϢϺЄ • φξυϲЄϸͽਧ๗ጱEc2ResourceΨ᩸ 㵕 • ᩸㵕ͭ͵αЀφόЀφͽ ShellCommandActivityΨ䋚ᤈ • τδϸπϫЀϖ΄Ӿͽghe-backupπϫЀϖ Ψ䋚ᤈ
• EBSΔ͵΅EFSϝϐμίϐϤϔЄόΨכਂ • ϝϐμίϐϤ΄ݐ०䤂ͭ͵䁰ݳ̵SNS ϕϡϐμ奺ኧͽᓕቘᘏ᭗Ꭳ 21
Ϸφϕί • Ϸφϕί䦒Ӟ䦒ጱαЀφόЀφΨ ᩸㵕 • ᩸㵕ͭ͵αЀφόЀφͽEBS͡EFSΨϫ γЀϕ • ghe-restore πϫЀϖΨ䋚ᤈͭͼϷφ
ϕί • ΘͷΣΩ̵Ϸφϕί㳌ቘΨDatePipeline ͽਧ嬝ͯΡͩ;Θݢᚆ 22
抓氂3 23
GHE΄Email NotificationΨֵ͚͵͚ 24
GHE΄Email NotificationΨֵ͚͵͚ • Email Notification;΅GHE΄αϦЀϕ咲ኞ䦒ϮЄϸͽ᭗Ꭳͭ ͼͥΡ䱛ᚆ • PR/Issue/etc... • GHE΄䁰ݳ̵ᛔړͽᭆמአϮЄϸςЄϝΨ䯤塈ͯΡᥝ͘͢Ρ
• ͳአ΄ϮЄϸςЄϝ͚͢䁰ݳ̵ͩ΄䱛ᚆΨڥአͯΡ͵ΗͶ ͧ䯤塈ͯΡ΄΅τЀϖ͚ 25
ϫϚЄυϖEmail Notification ϞόЄЀ 26
SES • GHE͡ΟSES奺ኧͽNotificationΨᭆמ • GHE;SES΅㳨ϷЄυϴЀͽΘOK • SES΄ϮЄϸᭆמ΅ϩόЀϪώϪώͽ 墋㶨ψϐϕίϐϤݢᚆ • SESΨֵ͜ΟϖϮαЀᓕቘΨRoute53
ͽΚΡ;墋㶨 27
ψϐϕίϐϤ • SES厏हΨςЀϖϩϐμφक़ᑏ㵕 • SMTP扯戣አIAMϳЄσ΄֢౮ • ᭆמزϖϮαЀ΄扯戣 • GHE΄ϫϚυϮЀϕπЀϊЄϸ͡Ο SMTP΄戔ਧ
28
抓氂4 29
GHEΨ䮭ᓕቘͭ͵͚ 30
GHEΨ䮭ᓕቘͭ͵͚ • GHE΄ϺνΨכਂͭ͵Π̵ϮϕϷμφΨ㷧ᵞͭ͵͚ • ͽΘεЄυδЀϕͿ΄ϊϢϕγδίΨGHEᛔ֛αЀφϕЄϸͯΡ΄ ΅ͧ͵͚ • Ϻν΅ϢζϼЄϔΰЀνͯΡͩ;ΞΠ敢ᭆݢᚆ • ϺναЀઆ䵉/ίϤϷξЄτϴЀϺν/etc...
• SNMPͽϮϕϷμφΨ㷧ᵞݢᚆ • CPU/φϕϹЄυᰁ/ϮϯϷ/etc... 31
WorkerϞόЄЀ 32
Ϻν΄ίЄθαϣ • GHEͽϺνϢζϼЄϔΰЀνΨํ㵁۸ • UDP:514ͽGHE͡ΟϺνΨ㷧ᵞ • fluentd-plugin-s3ͽS3כਂ • Ϥ϶αϦЄϕNWϞόЄЀ΄䁰ݳ΅VPC EndpointΨڥአͯΡͩ;
• S3΅ϔЄόϹαμ;ͭͼڥአݢᚆ΄ ͽਖ਼ጱړຉ/ݢ憙۸;͚͵ͩ;Θ ݢᚆ 33
Ϻν΄哶憙 • GHEͽϺνϢζϼЄϔΰЀνΨํ㵁۸ • fluent-plugin-cloudwatch-logsͽ CloudWatch LogsϺνΨ敢ᭆ • Metrics FilterΨڥአͭͼᇙਧ΄ਁڜ
ϫϐώͭ͵䁰ݳSNSϕϡϐμ᭗Ꭳ 34
ϷϊЄφ΄哶憙 • GHEͽSNMPϯϘόϷЀνΨํ㵁۸ • CollectdΨαЀφϕЄϸͭ͵αЀφόЀ φͽGHE΄ϮϕϷμφΨSNMP奺ኧͽ 㷧ᵞ • Collectd͡ΟCloudWatch MetricsΎ΄敢
ᭆ΅AWSلୗϤ϶ναЀΨڥአ • https://github.com/awslabs/collectd- cloudwatch 35
抓氂5 36
GHEϫϸώϖϮαЀ戣ก䨗Ψ 戔ਧͭ͵͚ 37
GHEϫϸώϖϮαЀ戣ก䨗Ψ戔ਧͭ͵͚ • GHE΅HTTPS᭗מ͢വ䅏 • GHE΅Subdomain Isolation;͚͜䱛ᚆ͘͢Πവ䅏戔ਧ • URLΨςϣϖϮαЀ୵ୗͭͼXSS㯪͞Ρ䱛ᚆ • ͩ΄䱛ᚆΨڥአͭͺͺHTTPS᭗מͯΡ͵Η΅ϫϸώϖϮαЀ
戣ก䨗͢ᥝ 38
Subdomain Isolation Original Path With subdomain isolation http(s)://hostname/gist/ http(s)://gist.hostname/ http(s)://hostname/raw/
http(s)://raw.hostname/ • SSL戣ก䨗΄ϖϮαЀ͢ *.hostname ;SANͽ hostname 䌏䖕ͭͼ͚Ρᥝ͘͢Ρ • ηϹηϹ戣ก䨗Ͷ;ϣ϶γσᦄޞ͢ڊͼͭΔ͜ • ᐒٖڥአ΄͵ΗSSL戣ก䨗Ψ揮͚͵͚ͥ 39
ϫϚЄυϖCertificationϞόЄЀ 40
ACM • 戣ก䨗΄咲ᤈ΅僻ාͽֵ͞Ρ • 戣ก䨗΄ๅෛ֢䮣΅AWS͢ΚͼͥΡ • ϫϸώϖϮαЀ戣ก䨗Θ䌏䖕 • ACM΅ϖϮαЀ扯戣(DV)΄Ε䌏䖕 •
䋚ࣁ扯戣(EV)/奲婻扯戣(OV)戣ก䨗΅๚䌏䖕 • ᐒक़ل樄͚ͭ΄ͽ͘ΆACMͽ܈ړ 41
ϺЄϖϝ϶Ѐς • GHE΄2.9ᔮ͡ΟϺЄϖϝ϶ЀςΨςϪЄ ϕ • PROXY protocol(വ䅏) • X-Forwarded-For •
զӥ΄2ͺ΅ᶋ䌏䖕 • ϺЄϖϝ϶ЀτЀν • SSLόЄϬϚЄτϴЀ • GHE΄ڹྦྷELBΨ戔ᗝ̵ͭͳͩACMΨ 戔ਧͯΡ 42
ϺЄϖϝ϶Ѐς • ALB΅PROXY protocol䌏䖕ͭͼ͚ ΄ͽCLBΨֵ͜ • Ϥ϶αϦЄϕNWϞόЄЀ΄䁰ݳ΅ Internal ELB 43
44
抓氂6 45
GHE΄HA䯤౮Ψ䮭ᓕቘͭ͵͚ 46
GHE΄HA䯤౮ • GHE΅Active/Standby୵ୗ΄HA䯤౮͢ ݢᚆ • Ϥ϶αϫϷ - ψθЀύϷͽϹϤϷξЄ τϴЀΨ奲Ε̵ϔЄόΨݶ๗ͫͱΡ䯤౮ •
SSHΚVPNϕЀϚϸΨڥአͭͼ͚Ρ΄ ͽ̵Ϥ϶αϫϷ - ψθЀύϷ樌ͽͳΟ ΄ψϐϕίϐϤΨͭͼͥ͠ᥝ͘Π • 戔ਧ΅ghe-replᔮ΄πϫЀϖΨڥአͯ Ρ 47
HA䯤౮΄ψϐϕίϐϤ # ϹϤϷξЄτϴЀ΄ψϐϕίϐϤ $ ghe-repl-setup <Ϥ϶αϫϷ΄IPίϖϹφ or Ϩφϕݷ> # ϹϤϷξЄτϴЀ΄樄ত
$ ghe-repl-start # ϹϤϷξЄτϴЀ΄ᇫ䙪嘦扯 $ ghe-repl-status 48
ψθЀύϷ΄䥮໒ • Ϥ϶αϫϷ͢ύγЀͭ͵䁰ݳ̵ψθ ЀύϷΨϤ϶αϫϷ䥮໒ͯΡ # Ϥ϶αϫϷΎ΄䥮໒ $ ghe-repl-promote • 䥮໒䦒̵GHE΄FQDNΨψθЀύϷ㯎
䄜ๅͯΡᥝ͘͢Ρ • ᵑਸ਼咲ኞ䦒DNS΄戔ਧΨ䄜ๅͯΡ΄ ΅ͷΝ;τЀϖ͚ 49
HA SwappingϞόЄЀ 50
DNS΄ڔΠ๊͞ • ELBΨڥአͭͼ͚ΆϤ϶αϫϷ/ψθЀ ύϷΨSwapͯΆOK • ψθЀύϷΨELBίόϐώͯΡ • Ϥ϶αϫϷΨELB͡ΟϔόϐώͯΡ • ELB΄UnHealthyHostCount䌏ͭͼ
AlarmΨ戔ਧ • ϫφόЄ͢ύγЀͭ͵ΟSNSϕϡϐμͽ ί϶Єϕ᭗Ꭳ • ELB΄ݻͣضΨψθЀύϷ䄜ๅ 51
5. Δ;Η 52
Δ;Η • AWSΨڥአͯΡΟϫϚЄυϖςЄϠφΨֵ͜͠ • GHEΨ䮭ᓕቘͭ͵͚䁰ݳ̵AWS΄ϫϚЄυϖςЄϠφ΅๋晒 • 敋斪΄ٚ咲ก΅䮩ێ͚ͭ • AWSӤͽGHEΨڥአͭ͵͚;ᘍ͞ͼ͚Ρ䁰ݳ΅ฎᶋͪፘ抨ͥͶ ͚ͫ:)
53
͠ΥΠ 54
6. ݇ᘍϷЀμ 55
Ϥ϶αϦЄϕNWϞόЄЀ • https://www.slideshare.net/AmazonWebServicesJapan/aws- black-belt-online-seminar-2016-amazon-vpc 56
ϫϚЄυϖϝϐμίϐϤϞόЄЀ • http://dev.classmethod.jp/cloud/aws/aws-datapipeline-all-pipeline- objects/ • http://dev.classmethod.jp/cloud/aws/creating-efs-backup- environment-with-datapipeline/ • http://dev.classmethod.jp/cloud/aws/github-enterprise-on-aws-5/ •
https://github.com/awslabs/data-pipeline-samples • https://help.github.com/enterprise/2.9/admin/guides/installation/ backups-and-disaster-recovery/ 57
ϫϚЄυϖEmail NotificationϞόЄЀ • http://dev.classmethod.jp/cloud/aws/github-enterprise-on- aws-3/ 58
WorkerϞόЄЀ • http://dev.classmethod.jp/cloud/aws/github-enterprise-on-aws-8/ • http://dev.classmethod.jp/cloud/aws/github-enterprise-on-aws-7/ • http://dev.classmethod.jp/cloud/aws/github-enterprise-on-aws-6/ • https://help.github.com/enterprise/2.9/admin/articles/log- forwarding/
• https://help.github.com/enterprise/2.9/admin/articles/ monitoring-using-snmp/ 59
ϫϚЄυϖCertificationϞόЄЀ & HA SwappingϞόЄ Ѐ • http://dev.classmethod.jp/cloud/aws/check_acm_specification/ • https://help.github.com/enterprise/2.9/admin/guides/ installation/using-github-enterprise-with-a-load-balancer/
60