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
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
ASTを使って影響範囲を特定する
nealle
0
170
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
200
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
110
安心して変更できるWebフロントエンドの作り方
pirosikick
4
1.4k
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
280
module Synths; end
asonas
1
130
あるけみー式LTスライド作成術
alchemy1115
1
200
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.7k
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
600
Screen Lens - 今見てる画面を翻訳する
komagata
0
250
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
690
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
140
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Un-Boring Meetings
codingconduct
0
410
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
Agile that works and the tools we love
rasmusluckow
331
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
30 Presentation Tips
portentint
PRO
1
390
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
The Language of Interfaces
destraynor
162
27k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Making Projects Easy
brettharned
120
6.7k
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