౦େ LMS ͷΦϯϥΠϯत‫ۀ‬ରԠԬా ࿨໵ 1) , ؔ୩ ‫و‬೭ 1) , ాத ఩࿕ 1) , ඼઒ ߴኍ 1) , ࣲࢁ ӻ࠸ 1) , ޻౻ ஌޺ 1) , ాӜ ݈࣍࿕ 1),2) ,᥊ా ོߦ 3) , ༑੢ େ 3) , ‫ ࠼ ࢘܊‬3) , ฏా ‫ ؽ‬4) , দҪ ষྑ 4) , ࡈ౻ ஌‫ ؽ‬4)1) ౦‫ژ‬େֶ ৘ใ‫ج‬൫ηϯλʔ2) ౦‫ژ‬େֶ ৘ใཧ޻ֶ‫ڀݚܥ‬Պ3) ౦‫ژ‬େֶ ৘ใγεςϜ෦4) ΩϠϊϯ IT ιϦϡʔγϣϯζ‫ࣜג‬ձࣾ
okada@ecc.u-tokyo.ac.jp

Lessons Learned: LMS Operations for
University-wide Online Lectures under COVID-19
Kazuya Okada1) , Takayuki Sekiya1) , Tetsuro Tanaka1) , Takahiro Shinagawa1) , Etsuya Shibayama1) ,Tomohiro Kudo1) , Kenjiro Taura1),2) , Takayuki Ashida3) , Dai Tomonishi3) , Aya Gunji3) ,Tsuyoshi Hirata4) , Akiyoshi Matsui4) , Tomoki Saito4)
1) Information Technology Center, The University of Tokyo
2) Graduate School of Information Science and Technology, The University of Tokyo
3) Department of Information Systems, The University of Tokyo
4) Canon IT Solutions Inc.

֓ཁ౦‫ژ‬େֶͰ͸ɼ৽‫ܕ‬ίϩφ΢Οϧε‫ײ‬છ঱ʢCOVID-19ʣͷ֦େΛड͚ɼ3 ݄ 18 ೔ʹत‫ۀ‬ͷΦϯϥΠϯԽͷਪ঑Λɼ͞Βʹ 3 ݄ 31 ೔ʹ͸‫׬‬શΦϯϥΠϯԽΛܾఆͨ͠ɽͦͯ͠ɼֶࣄྐྵ௨Γʹ 4 ݄ 3 ೔ʹत‫ۀ‬Λ։࢝ͨ͠ɽେ෦
෼ͷ‫ڭ‬һ͕ΦϯϥΠϯत‫ۀ‬ͷ‫ݧܦ‬஋͕ͳ͍ঢ়ଶ͔Β࢝Ίͯɼඇৗʹ୹‫Ͱؒظ‬ΦϯϥΠϯत‫ۀ‬ͷ४උΛߦͬͨɽֶश؅ཧγεςϜ (LMS: Learning Management System) Ͱ͸ɼ֤छ࿈བྷ௨஌ɼࢿྉ഑෍ɼϨϙʔτճऩͳͲɼ
ैདྷ͸Ұ෦ͷत‫͔͠Ͱۀ‬ར༻͞Ε͍ͯͳ͔ͬͨ‫ػ‬ೳ͕ɼଟ਺ͷत‫Ͱۀ‬ར༻͞ΕΔΑ͏ʹͳͬͨɽͦΕʹͱ΋ͳ͍ɼ

LMS ͷෛՙ͕૿େͨ͠ɽࡢ೥౓͸ɼत‫ؒظۀ‬தͷൺֱతΑ͘࢖ΘΕΔ࣌ؒଳͰɼಉ࣌ϩάΠϯ਺͸͍͍ͤͥ 2,000ਓఔ౓Ͱ͕͋ͬͨɼࠓ೥౓͸ 11,000 ਓҎ্ʹͳͬͨɽͦͷͨΊɼେ෯ͳੑೳ‫ڧ‬Խ͕ඞཁͱͳͬͨɽ
3 ݄தʹιϑτ΢ΣΞͷνϡʔχϯάΛߦ͍ɼ4 ݄ 1 ೔ʹ͸αʔόͷ૿‫ڧ‬Λߦ͕ͬͨɼֶ‫ظ‬։͔࢝Β͠͹Β͘ͷؒ͸ɼߴෛՙʹͱ΋ͳ͏ੑೳྼԽ͕සൃͨ͠ɼ·ͨɼར༻ऀͷ૿Ճʹ൐͍ɼैདྷ͔Βଘࡏͨ͠όάͷ‫ࡏݦ‬ԽͳͲ༷ʑͳ
໰୊΁ͷରԠ͕ඞཁͱͳͬͨɽ
ຊߘͰ͸ɼत‫ۀ‬ͷ‫׬‬શΦϯϥΠϯԽʹରԠ͢ΔͨΊʹɼߴෛՙʹΑΔੑೳྼԽ΍όάͷ‫ࡏݦ‬Խʹͱ΋ͳ͏ো֐ͳ
Ͳʹ೗ԿʹରԠ͖͔ͯͨ͠Λใࠂ͢Δɽ·ͨɼLMS ͷੑೳ‫ࢹ؂‬ͷ೉͠͞ɼࠓ‫ޙ‬ͷ LMS ͷ͋Γํʹ͍ͭͯٞ࿦͢Δɽ

1 ͸͡Ίʹ

΢ϋ΢ɼFAQ ͳͲͷ৘ใΛఏ‫͍ͯ͠ڙ‬Δɽϙʔλϧ։ઃͰ͸εϐʔυΛॏࢹ͠ɼ‫ ͕ऀྗڠ‬GitHub ্Ͱॱ࣍౦‫ژ‬େֶͰ͸ɼCOVID-19 ͷྲྀߦʹ൐͍ 2020 ೥౓ίϯςϯπΛߋ৽͢Δମ੍ͱͨ͠ɽत‫ۀ‬ͷ഑৴ʹ͸ɼՆֶ‫ظ‬ʢ4 ݄ʙ9 ݄ʣͷत‫ۀ‬ΛશͯΦϯϥΠϯͰ࣮ࢪ

Zoom, Webex, Google Meet ΛશֶͰར༻Ͱ͖ΔΑ

ͨ͠ɽશֶతͳत‫ۀ‬ΦϯϥΠϯԽͷܾఆʹઌߦͯ͠ɼ

͏ʹ੔උͨ͠ɽ

৘ใ‫ج‬൫ηϯλʔͱେֶ૯߹‫ڭ‬ҭ‫ڀݚ‬ηϯλʔͰ͸ɼΦϯϥΠϯत‫Ͱۀ‬͸ɼWeb ձٞ༻ URL ͷ‫ڞ‬༗ɼϨΦϯϥΠϯत‫ʹۀ‬ඞཁͳ֤छ৘ใΛϫϯετοϓͰఏϙʔτճऩɼࢿྉ഑෍ɼςετͳͲΛΦϯϥΠϯͰ‫׬‬‫͢ڙ‬ΔϙʔλϧαΠτ utelecon[1] Λ্ཱͪ͛ͨɽେ

݁ͤ͞Δඞཁ͕͋ΓɼLMS ͷॏཁੑ͕ߴ·ͬͨɽֶ͠ΞΧ΢ϯτͷઃఆํ๏ɼZoom/Webex ͷΞΧ΢ϯ

͔͠ɼࡢ೥౓·Ͱͷ౦‫ژ‬େֶͷ LMS (ITC-LMS) ͸ɼτ࡞੒ɾ࢖͍ํɼֶश؅ཧγεςϜ (LMS: Learningत‫ؒظۀ‬தͷಉ࣌ϩάΠϯ਺͕࠷େ 2,000 ਓఔ౓Ͱ͋

Management System) ͷ࢖͍ํɼΦϯϥΠϯत‫ۀ‬ͷϊΓɼશत‫ۀ‬Λ ITC-LMS Ͱ࣮ࢪ͢Δʹ͸େ෯ͳੑೳ‫ڧ‬Խ͕ඞཁͱͳͬͨɽ
ຊߘ͸ɼत‫ۀ‬ͷ‫׬‬શΦϯϥΠϯԽʹ͋ͨΓ ITC-LMS

インターネットͰ࣮ࢪͨ͠ੑೳ‫ڧ‬Խɼൃੜͨ͠τϥϒϧʹ͍ͭͯͦͷ‫ݪ‬ҼͱରԠΛ·ͱΊΔɽ·ͨɼΦϯϥΠϯत‫ʹۀ‬ద͠
SINET5ͨࠓ‫ޙ‬ͷ LMS ʹඞཁͳ‫ػ‬ೳʹ͍ͭ΋ٞ࿦͢Δɽ͜ΕSINETL2VPNΒͷ஌‫͕ݟ‬ଞେֶͰ΋ɼLMS Λશֶ‫ن‬໛Ͱӡ༻͢Δ
東京大学
UTNET

ࡍͷҰॿʹͳΕ͹޾͍Ͱ͋ΔɽຊߘͰ͸ɼ·ͣୈ 2 અͰ ITC-LMS ͷߏ੒ʹ͍ͭͯ
આ໌͢Δɽ࣍ͷୈ 3 અͰ͸ɼ4 ݄Ҏ߱ʹൃੜͨ͠໰୊

ਤ1ͱͦΕΒʹର͢ΔରࡦΛத৺ʹɼITC-LMS ͷશֶ‫ن‬λؒ઀ଓ

NTT東日本DC

SINET L2VPN Λར༻ͨ͠େֶɾσʔληϯ໛ͰͷΦϯϥΠϯत‫΁ۀ‬ͷରԠΛ·ͱΊΔɽୈ 4 અͰҬ͸ɼ1Gbps ϕετΤϑΥʔτΛར༻͍ͯ͠Δʢਤ 1

͸ɼୈ 3 અͰड़΂ͨશֶ‫ن‬໛Ͱͷ LMS ӡ༻ͰಘΒΕΛࢀরʣɽࠓճͷΦϯϥΠϯत‫ۀ‬ରԠͰ͸ɼύϒϦοͨ‫܇ڭ‬Λ·ͱΊΔɽ࠷‫ʹޙ‬ୈ 5 અͰ͸ࠓ‫ޙ‬ͷ LMS ʹΫΫϥ΢υͰӡ༻͍ͯͨ͜͠ͱʹΑΓɼΦϯϓϨϛε

‫ٻ‬ΊΒΕΔཁૉΛ੔ཧ͢Δɽͱൺ΂ͯαʔόͷߏ੒มߋ΍௥Ճ͕ൺֱత༰қ͔ͭ୹ঘɼຊߘ͸ 2020 ೥ 9 ݄຤࣌఺Ͱͷ৘ใʹ‫͖ࣥͮج‬ච͞Ε͍ͯΔɽ

2 ITC-LMS ͷ֓ཁ࣌ؒͰ࣮ࢪͰ͖ͨɽ
ઌ୅ͷ LMS Ͱ͸ɼϞϊϦγοΫͳߏ੒ͷγεςϜ
ΛΦϯϓϨϛεͰఏ‫͍ͨͯ͠ڙ‬ɽҰํɼ‫ߦݱ‬γεςϜͰ͸ɼLMS ͷ‫ػ‬ೳຖʹҟͳΔαʔόʹ෼ׂͨ͠ૄ݁߹

౦‫ژ‬େֶͰ͸ɼ৘ใ‫ج‬൫ηϯλʔ͕ 2004 ೥͔ΒΞʔΩςΫνϟΛ࠾༻͍ͯ͠Δɽ‫ػ‬ೳຖͷಠཱੑ͕ߴ

LMS ͷ α ʔ Ϗ ε Λ શ ֶ ʹ ఏ ‫ ͍ ͯ ͠ ڙ‬Δ ɽ౰ ॳ ͸ ɼ͍ɼ‫ݸ‬ผʹϝϯςφϯεՄೳɼεέʔϧΞ΢τɾεέʔ

CFIVE ͱ͍͏Φʔϓϯιʔεͷ LMS ͷ։ൃɾӡ༻ɾϧμ΢ϯ͠΍͍͢ɼ৑௕ԽʹΑΔো֐ରࡦ͕Մೳͳ

αʔϏεఏ‫ڙ‬Λߦ͍ͬͯͨɽͦͷ‫ޙ‬ɼඞཁͳཁ݅Λ‫ݕ‬Ͳͷར఺͸ɼϚΠΫϩαʔϏεΞʔΩςΫνϟͱಉ༷౼্ͨ͠ͰೖࡳΛߦ͍ɼ2014 ೥ʹ͸ ΩϠϊϯ IT ι

Ͱ͋Δɽͨͩ͠ɼ֤αʔό͕ಉ͡σʔλϕʔεαʔόϦϡʔγϣϯζ (ΩϠϊϯ ITS) ͕։ൃɾӡ༻͢Δ঎Λ‫ڞ‬༗͍ͯ͠ΔͨΊɼσʔλϕʔεͷϝϯςφϯε͸

༻ͷ LMS Λಋೖͨ͠ɽ2018 ೥ʹ͸ɼLMS ͱͯ͠ͷಠཱʹߦ͏͜ͱ͕Ͱ͖ͣɼεέʔϧΞ΢τʹ΋‫ݶ‬ք͕‫ػ‬ೳ‫ڧ‬Խ΍Մ༻ੑͷ޲্Λཁ݅ʹՃ͑ͨೖࡳΛߦ͍ɼ͋ΔɽαʔϏε‫ج‬൫ʹ͸ Kubernetes[4] Λ࠾༻͓ͯ͠

࠶౓ΩϠϊϯ ITS ͕མࡳͨ͠ɽͦͷ݁Ռ 2019 ೥ 3 ݄ΓɼԾ૝Ϛγϯ (VM) 4 ୆Ͱ Kubernetes ΫϥελΛߏ͔ΒՔಇ͍ͯ͠Δͷ͕ɼLMS ύοέʔδγεςϜ in੒͍ͯ͠Δɽσʔλϕʔεʹ͸ 2 ୆ʢactive-standby

Campus[3] ΛΧελϚΠζͨ͠‫ࡏݱ‬ͷ ITC-LMS Ͱߏ੒ʣͷ VM Λผ్ׂΓ౰͍ͯͯΔɽ

͋Δɽ

ਤ 2 ͸ɼLMS ಺෦ͷγεςϜߏ੒ਤͰ͋Δɽར༻ऀઌ୅ͷ LMS ͱൺ΂ͨ‫ࡏݱ‬ͷ ITC-LMS ͷγεςϜ

͔ΒͷϦΫΤετ͸ϩʔυόϥϯαʹͯෳ਺ͷ nginxߏ੒্ͷಛ௃͸ɼ1) ύϒϦοΫΫϥ΢υͷར༻, 2) Ϛ(ingress nginx) ΁෼ࢄͤ͞Δɽͦͯ͠ɼnginx ͔ΒརΠΫϩαʔϏεɾΞʔΩςΫνϟ෩ͷγεςϜߏ੒ͷ༻ऀຖͷঢ়ଶΛ؅ཧ͢ΔϑϩϯτΤϯυͷαʔϏεʹ2 ఺Ͱ͋Δɽઌ୅·Ͱͷ LMS ͸ɼ৘ใ‫ج‬൫ηϯλʔ಺సૹ͞ΕΔɽͦͷ‫ޙ‬ɼ՝୊ొ࿥ɾఏग़ɼςετొ࿥ɾडʹઐ༻αʔόΛઃஔͯ͠ӡ༻͍ͯͨ͠ɽҰํɼ‫ࡏݱ‬ͷ‫ݧ‬ɼࢿྉొ࿥ɾμ΢ϯϩʔυͳͲͷ‫ػ‬ೳʹԠͨ͡όο

ITC-LMS ͷಋೖ࣌఺Ͱ͸ɼকདྷधཁ͕ͲΕ͘Β͍৳ΫΤϯυͷαʔϏε͕ར༻͞ΕΔɽ֤αʔϏε͸ෛՙͼΔ͔༧ଌ͕೉͔ͬͨ͜͠ͱɼ‫ݶ‬ΒΕͨਓखΛ‫ثػ‬ͷঢ়‫ʹگ‬Ԡͯ͡ 3-6 ͭͷΠϯελϯε͕Ϋϥελ಺ͰಈอकΑΓར༻ऀͷαϙʔτʹճ͔ͨͬͨ͜͠ͱ͔Βɼ࡞͓ͯ͠ΓɼKuberentes ͷ‫ػ‬ೳͰࣗಈతʹෛՙ෼ࢄύϒϦοΫΫϥ΢υΛ࠾༻ͨ͠ɽ

͞ΕΔɽྫ͑͹ɼࢼ‫ؒظݧ‬தͳͲςετͷαʔϏεͷNTT ౦೔ຊͷΫϥ΢υήʔτ΢ΣΠ αʔόʔϗεςΟϯάαʔϏε [2] Λར༻͠ɼֶ֎ͷσʔληϯλͰԾ૝ϚγϯɼϩʔυόϥϯαɼDB Λಈ࡞͍ͤͯ͞
Δɽେֶͱσʔληϯλͷ઀ଓʹ͸ɼSINET L2VPNΛར༻͠ɼ౦‫ژ‬େֶʹׂΓ౰ͯΒΕͨ IP ΞυϨεΛ
Ϋϥ΢υ಺ʹ࣋ͪࠐΈׂΓ౰͍ͯͯΔɽL2VPN ͷଳෛՙ͕ߴ͘ͳΔ࣌‫ʹظ‬͸ɼςετͷΠϯελϯεΛ૿΍͢ࣄͰෛՙ଱ੑ͕ߴ͘ͳΔɽ

ロードバランサ
Kubernetesળࡦͷ‫ݕ‬౼Λߦ͍ɼΩϠϊϯ ITS ͷվम࡞‫ʹۀ‬ϑΟʔυόοΫͨ͠ɽ

nginx
nginx
nginx

ൃੜͨ͠ো֐ͱରԠ

3.2

nginx
nginx
フロントエンド

3.2.1

nginx Ͱͷෆ‫ۉ‬౳ͳෛՙ෼ࢄ

ࣄ৅ͷ֓ཁɿ ITC-LMS Ͱར༻ऀ͔ΒͷϦΫΤετ
nginx
nginx
課題

nginx
nginx
テスト

nginx
nginx
コース

・・・

nginx
nginx
資料

DBDB

ΛৼΓ෼͚Δ nginx ͸ɼ࣍ஈͷϙου*1 Λߏ੒͢Δίϯςφ 4 ͭʹରͯ͠‫ۉ‬౳ʹϦΫΤετΛ෼ࢄ͢Δ࢓૊Έʹͳ͍ͬͯΔɽ͔͠͠ɼ4 ݄ͷत‫ۀ‬։͔࢝Β nginx ʹΑΔෛՙ෼ࢄͷෆ‫ۉ‬౳͕໌Β͔ʹ

ਤ2ϚΠΫϩαʔϏε‫ ܕ‬LMS ͷߏ੒ͳΓɼಛఆͷαʔϏε΁ΞΫηε͕ूதͯ͠͠·͏ࣄ৅͕ൃੜͨ͠ɽͦͷ݁ՌɼϦΫΤετ͕ूத

3 LMS ͰͷΦϯϥΠϯत‫ۀ‬ରԠ
3.1ΦϯϥΠϯत‫ۀ‬ରԠͷ࣌‫ͱྻܥ‬ମ੍

ද 1 ͸ɼ౦‫ژ‬େֶʹ͓͚ΔΦϯϥΠϯत‫ۀ‬ରԠͱ

ITC-LMS ʹ͓͍ͯൃੜͨ͠ো֐ͱରॲɼ֤छϝϯςͨ͠αʔϏε͕ߴෛՙʹͳΓམͪͯ͠·ͬͨɽࣄ৅ͷ‫ݪ‬Ҽɿ ෛ ՙ ෼ ࢄ ʹ ར ༻ ͠ ͯ ͍ ͨ ingress-

nginx Ͱͷ cookie Λར༻ͨ͠ෛՙ෼ࢄ‫ػ‬ೳͷόά͕‫ݪ‬ҼͰ͋ͬͨɽ

φϯεɾ૿‫ڧ‬Λ࣌‫ͱ·ʹྻܥ‬Ίͨ΋ͷͰ͋Δɽ3 ݄ʹରԠɿ ‫ʹط‬όά͕मਖ਼͞Εͨ ingress-nginx ͕ఏ‫ڙ‬

ೖΔͱશֶతʹΦϯϥΠϯत‫ؔ͢ʹۀ‬Δ‫ݕ‬౼͕ߦΘ͞Ε͍͕ͯͨɼ‫ج‬൫ͷ Kubernetes ࣗମͷΞοϓΕɼ3 ݄ 18 ೔ͷ૯௕ϝοηʔδͰʮର໘Ͱͷߨٛ͸࠷σʔτ΋৚݅ͱͳ͓ͬͯΓγεςϜͷఀࢭ࣌ؒখ‫͠ͱݶ‬ɼΦϯϥΠϯԽΛ঑ྭ͠ਪਐ͢Δʯͱ͍͏ํ͕௕͘ͳΔ͜ͱ͕૝ఆ͞ΕͨͨΊɼnginx ͷઃఆ਑͕ࣔ͞Εͨɽ͞Βʹɼ3 ݄ 31 ೔ʹ͸ཧࣄɾ෭ֶ௕͔

มߋʹͯԠ‫ॲٸ‬ஔΛ࣮ࢪͨ͠ɽͦͷ‫ޙ‬ɼՆ‫ٳ‬ΈΒ‫׬‬શΦϯϥΠϯԽͷ௨஌͕ߦΘΕͨɽ3 ্݄०ͷஈ‫ؒظ‬தͷ 9 ݄ 3 ೔ʹ࣮ࢪͨ͠ϝϯςφϯεʹͯɼ

֊ͰɼITC-LMS ͷར༻͕૿େ͢Δ͜ͱ͸‫ʹط‬༧૝͞

Kubernetes ͷΞοϓσʔτʹ߹Θͤͯɼingress-Ε͍͕ͯͨɼͦͷ‫ޙ‬ͷधཁ༧૝͸๲ΒΉҰํͰ͋ͬͨɽ

nginx ͷΠϝʔδߋ৽Λ࣮ࢪࠜ͠ຊղܾΛߦͬͨɽར༻ऀ૿ʹඋ͑ɼ৘ใ‫ج‬൫ηϯλʔͷ৘ใϝσΟΞ‫ڭ‬ҭ‫ڀݚ‬෦໳ͱΩϠϊϯ ITS ͰରԠΛ‫ڠ‬ٞͨ͠ɽͦ
ͯ͠ɼ3 ݄தʹσʔλϕʔεͷνϡʔχϯάΛߦ͍ɼ4
݄ 1 ೔ʹ͸Ծ૝Ϛγϯͷ CPUɾϝϞϦͷ௥Ճɼ֤छ
ύϥϝʔλͷมߋɼͦͯ͠ෛՙࢼ‫ݧ‬Λ࣮ࢪͨ͠ɽ
͔͠͠ɼ‫ڭ‬ཆֶ෦લ‫ظ‬՝ఔʢֶ෦ 1, 2 ೥ੜʣͷत‫ۀ‬͕࢝·ͬͨ 4 ݄ 6 ೔ʹ͸ɼΞΫηε͕ूத͢Δत‫ۀ‬։࢝࣌ࠁલ‫ޙ‬ͷෛՙʹ଱͑ΒΕͣɼར༻ऀ͕ ITC-LMSʹΞΫηεͰ͖ͳ͍ঢ়‫گ‬Λট͍ͯ͠·ͬͨɽͦͷ‫ޙ‬͸֤छ໰୊ʹରԠ͢ΔͨΊʹɼ2020 ೥ 6 ݄຤·Ͱɼ౦େͱΩϠϊϯ ITS ͷؔ܎ऀͰ 2-3 ೔ʹ 1 ճͷΦϯϥΠ
ϯϛʔςΟϯάΛ։࠵͠ɼमਖ਼࡞‫ۀ‬ΛਐΊΔαΠΫϧ
Λճͨ͠ɽো֐ͷ‫ݪ‬Ҽ͸ɼωοτϫʔΫͷଳҬෆ଍ɼ‫ج‬൫γεςϜͷόάɼγεςϜͷύϥϝʔλઃఆɼιϑτ΢ΣΞͷϘτϧωοΫͳͲଟ‫͍ͨͯͬ౉ʹذ‬ɽΑΓਝ଎ʹ໰୊ͷ੾Γ෼͚Λߦ͏ͨΊɼӡ༻Λ୲౰͢Δ

3.2.2

੩తίϯςϯπͷଳҬѹഭࣄ৅ͷ֓ཁɿ ITC-LMS ͷ ը ໘ Λ ද ࣔ ͞ ͤ Δ ͨ Ίʹ ͸ ϝ Π ϯ ͷ html ϑ Ν Π ϧ Ҏ ֎ ʹ ɼଟ ͘ ͷ

javascript ϑΝΠϧɼcss ϑΝΠϧɼpng ϑΝΠϧ͕ඞཁʹͳΔ*2 ɽࣄ৅ͷ‫ݪ‬Ҽɿ Google Chrome ͷσϕϩούʔπʔϧͰ‫͜ͱͨݟ‬Ζɼ੩తͳϑΝΠϧΛ GET ͨ࣌͠ͷ Response ͷதͰɼCache-Control: no-cacheͱ͍ͯ͠ΔͨΊʹɼϒϥ΢β͕͜ΕΒͷϑΝΠϧ
ΛΩϟογϡͰ͖ͣʹɼຖճ Web αʔό·ͰऔΓʹ͍͍ͬͯͨɽ੩తϑΝΠϧͷॲཧ΋ϑϩϯτΤ
ϯυͰ͓͜ͳ͏ͨΊɼϑϩϯτΤϯυͷෛՙ (͓Αͼ࢖༻εϨου਺) ͕૿Ճ͢Δͱͱ΋ʹɼ௨৴ଳҬΛফඅ͢Δ͜ͱʹͳ͍ͬͯͨɽରԠɿ ֘౰ϖʔδͷӾཡ࣌ʹɼITC-LMS ͷγεςϜߋ৽ͳͲ͕ͳ͍‫ݶ‬Γ͸มߋ͞Εͳ͍΋ͷͳͷΩϠϊϯ ITS ͚ͩͰͳ͘ɼ౦େͷ‫ڭ‬৬һ΋γεςϜ಺ͷεϨου਺ɼ֤छෛՙɼΞΫηε਺ɼసૹσʔλྔͳͲͷ‫ࢹ؂‬ɾσʔλऩूɾղੳΛߦͬͨɽ͞ΒʹɼΩϠϊϯ ITS ͔Βಛผʹ‫ڐ‬୚Λಘͯɼ౦େͷҰ෦‫ڭ‬৬һ͕ ITC-LMS ͷιʔείʔυΛӾཡՄೳͱͨ͠ɽͦ͠
ͯɼιʔείʔυϨϕϧͰ໰୊ͷ͋ΔՕॴͷಛఆɼվ*1 ϙου (Pod) ͱ͸ɼKuberentes ্ͰͷΞϓϦέʔγϣϯͷ࣮ߦ୯ҐͰ͋Γɼ1Pod ͕ҰͭҎ্ͷίϯςφ͔Βߏ੒͞Ε
Δ*2 චऀͷҰਓ͕ 2020 ೥ 9 ݄ 25 ೔ʹग़ߨදΛදࣔͨ࣌͠͸ɼjavascript ϑΝΠϧ 9 ‫ݸ‬ɼcss ϑΝΠϧ 11 ‫ݸ‬ɼpng ϑΝΠϧ 13 ‫ͨͬͩݸ‬ද1౦େͷΦϯϥΠϯत‫ۀ‬ରԠ

2020/03/11
2020/03/18
2020/03/19
2020/03/26
2020/03/31

ITC-LMS ʹ͓͚Δো֐ରԠͷ‫ܦ‬աද
ITC-LMS Ͱൃੜͨ͠ো֐

त‫ۀ‬։࢝ʹඋ͑ͯαʔόͷϝϞϦ/CPUΛ૿‫ڧ‬

2020/04/01
2020/04/06

ITC-lMS ͷରԠΦϯϥΠϯत‫ۀ‬ɾweb ձٞϙʔλϧαΠτΛ։ઃʢutelecon)ΦϯϥΠϯत‫ۀ‬Λਪ঑͢Δ૯௕ϝοηʔδΦϯϥΠϯत‫ۀ‬આ໌ձɾ৽ೖੜ΁ͷΦϯϥΠϯत‫ۀ‬४උΛཁ੥ΦϯϥΠϯत‫ۀ‬આ໌ձत‫ۀ‬ͷ‫׬‬શΦϯϥΠϯԽΛશֶʹ௨஌‫ڭ‬ཆֶ෦લ‫ظ‬՝ఔ त‫ۀ‬։࢝ϑΝΠϧͷΞοϓϩʔυͰΤϥʔ͕ൃੜαʔϏε΁ͷෛՙ෼ࢄʹภΓ͕ൃੜ

2020/04/07
2020/04/09
2020/04/10
2020/04/13σʔλϕʔεͷ‫ٸۓ‬ϝϯςφϯεʹΑΓ೔தʹαʔϏεΛ 2 ࣌ؒఀࢭεϨου਺ͷมߋεϨου਺ΛมߋεϨου਺ΛมߋDB ͷίωΫγϣϯ਺ΛมߋεϨου਺ͷ๫૸ʹରͯ͠Ұ࣌ରԠͱ͠
ͯఆ‫ظ‬తͳαʔϏε࠶‫ى‬ಈΛ࣮ࢪ͢ΔΑ͏ʹมߋ

2020/04/14

2020/04/15
2020/04/16

εϨου਺ɾίωΫγϣϯϓʔϧ਺ͳͲͷ֤छ‫ࢹ؂‬Λ‫ڧ‬Խ

2020/04/17
2020/04/18
2020/04/19
2020/04/20
2020/04/21

ίωΫγϣϯϓʔϧͷύϥϝʔλมߋίωΫγϣϯϓʔϧͷύϥϝʔλมߋ΢ΣϒαʔόͷϝϞϦෆ଍͕ൃੜ
nginx ʹ͓͚Δηογϣϯͷෆ‫ۉ‬౳໰୊͕ൃ֮

2020/04/22
2020/04/24
2020/04/25
2020/04/27

ར༻਺૿Ճʹ൐͍ɼϑΝΠϧͷϑϧόο
ΫΞοϓʹࣦഊ
Ϋϥ΢υ‫ج‬൫ͷଳҬ੍‫֮ൃ͕ݶ‬2020/05/01
2020/05/07

ςετɾෛՙࢼ‫ڥ؀ݧ‬Λ४උαʔό૿‫ڧ‬nginx ʹΑΔෛՙ෼ࢄͷภΓ໰୊pcbff ͷ Tomcat ͷεϨου਺ΛมߋAPI ‫ͼݺ‬ग़͠ͷमਖ਼ɾେ‫ن‬໛ςετʹ޲͚ͨෛՙࢼ‫ࢪ࣮ݧ‬

Kubernetes ‫ج‬൫ωοτϫʔΫো֐

2020/05/12
2020/05/17
2020/05/18
2020/05/22

DB ͷϝϞϦෆ଍ʹΑΔγεςϜఀࢭ

2020/05/24

L2VPN ଳҬͷ૿‫ڧ‬API ‫ͼݺ‬ग़͠΁ͷΩϠογϡ௥ՃAPI ‫ͼݺ‬ग़͠ճ਺ͷ࡟‫ݮ‬
Google ΞφϦςΟΫεಋೖ
3000 ਓςετରԠίωΫγϣϯϓʔϧ/DB ύϥϝʔλͷมߋίωΫγϣϯϓʔϧ/DB ύϥϝʔλͷมߋ

2020/05/28‫ڭ‬ཆֶ෦લ‫ظ‬՝ఔͷେ‫ن‬໛ࢼ‫͓ݧ‬Αͼͦͷ༧ߦԋशֶ‫ظ‬຤ࢼ‫͚ͨ޲ʹݧ‬େ‫ن‬໛ςετϦϋʔαϧʹͯߴෛՙ͕ൃੜ
ϝϞϦׂΓ౰ͯΛมߋίωΫγϣϯϓʔϧͷύϥϝʔλมߋ2020/05/29
2020/05/30

2020/06/17
2020/06/21
2020/09/03

Ξοϓϩʔυʹରͯ͠όοΫάϥ΢ϯυ
ͷ΢ΠϧεεΩϟϯ͕௥͍෇͔ͳ͍໰୊
͕ൃੜߋ৽௨஌ੑೳվળϦϦʔε
L2VPN ଳҬͷ૿‫ڧ‬
Kubernetes ‫ج‬൫ͷΞοϓσʔτ
L2VPN ଳҬͷ૿‫ڧ‬
Kubernetes ‫ج‬൫ͷΞοϓσʔτ

3.2.3ϑϩϯτΤϯυαʔϏεͷεϨου๫૸֓ཁɿ त‫ۀ‬։࢝࣌ͳͲʹϩάΠϯ͢ΔϢʔβͷ਺͕‫͢૿ٸ‬Δͱɼηογϣϯ؅ཧ΍ϖʔδੜ੒ͳͲΛ୲౰͍ͯ͠Δ pcbff ͱ‫ݺ‬͹ΕΔϑϩϯτΤϯυ
αʔϏεͷεϨουͷ਺͕ҟৗʹ‫্ٸ‬ঢ͢Δ‫ݱ‬৅ਤ 3੩తίϯςϯπͷରԠલ‫Ͱޙ‬ͷ௨৴ྔͷଟ

͔ͬͨ URL ্Ґʢ2020 ೥ 5 ݄ 7 ೔ʣ͕සൃ͠ɼ࣮࣭తʹϢʔβͷϦΫΤετʹ౴͑Δ͜ͱ͕Ͱ͖ͳ͘ͳͬͨɽ

Pod ͱ‫ݺ‬͹Εɼ1 ͭ·ͨ͸ෳ਺ͷίϯςφͰߏ

12000
10000

੒͞Ε͍ͯΔɽpcbff ͸ 4 ୆ͷίϯςφͰ෼ࢄ͠8000

ͯϑϩϯτΤϯυαʔϏεΛఏ‫͕͍ͨͯ͠ڙ‬ɼ

6000
4000

ਤ 4ʹࣔ͢Α͏ʹϩάΠϯϢʔβ਺͕ϐʔΫ࣌ʹ2000

͸ 10,000 ਓΛ௒͑ΔΑ͏ʹͳΓɼpcbff ʹҎલ0ΑΓ΋େ͖ͳෛՙ͕͔͔ΔΑ͏ʹͳͬͨɽͦͷ݁

8:30:00
9:00:00
9:30:00
10:01:00
10:31:00
11:01:00
11:31:00
12:01:00
12:31:00
13:01:00
13:31:00
14:01:00
14:31:00
15:01:00
15:31:00
16:01:00
16:31:00
17:01:00
17:31:00

ϫή΢ϱϤʖδ਼ࣄ৅ͷ‫ݪ‬Ҽɿ Kubernetes ʹ͓͚Δ࠷খ࣮ߦ୯Ґ͸

pcbff1

ਤ4

pcbff2

pcbff3

pcbff4ϩάΠϯϢʔβ਺ͷਪҠʢ2020 ೥ 4 ݄ 21 ೔ʣՌɼԿΒ͔͖͔͚ͬͰ 4 ୆ͷ͍ͣΕ͔ɼ͋Δ͍͸ෳ਺ͷ pcbff ͷεϨου਺͕௨ৗ࣌͸ଟͯ͘΋ 500ఔ౓Ͱ͋ͬͨ΋ͷ͕਺෼ͷ͏ͪʹ 2000ʙ4000 Ҏ
্ఔ౓·Ͱ‫্ٸ‬ঢ͠ɼͦͷ Pod ʹৼΓ෼͚ΒΕͯηϪρχ਼͍ͨϢʔβ͔ΒͷϦΫΤετʹԠ౴Ͱ͖ͳ͘ͳΔ
6000

ঢ়ଶ͕ൃੜͨ͠ɽ ਤ 5Ͱ͸ɼ10:25 ΍ 16:50 ͳͲ5000ͷत‫ۀ‬Λ։࢝͢ΔλΠϛϯάͰɼpcbff ͷεϨο4000

υ਺͕‫͢૿ٸ‬Δ༷ࢠ͕෼͔Δɽ

3000
2000

ରԠɿ ౰ॳ͸εϨουϓʔϧͷαΠζΛ૿΍͢ͳͲ

1000

ͷରࡦΛͱ͕ͬͨɼ͍ͬͨΜεϨου਺্͕ঢ͠
8:30:00
9:00:00
9:30:00
10:01:00
10:31:00
11:01:00
11:31:00
12:01:00
12:31:00
13:01:00
13:31:00
14:01:00
14:31:00
15:01:00
15:31:00
16:01:00
16:31:00
17:01:00
17:31:00

0

pcbff1ਤ5pcbff2

pcbff3

pcbff4

pcbff εϨου਺ͷਪҠʢ2020 ೥ 4 ݄ 21 ೔ʣʹɼGoogle Chrome ͷσϕϩούʔπʔϧͰ‫ݟ‬
ͨͱ͜Ζɼ1 ճͷηογϣϯͷதͰ΋ຖճ Webαʔό͔Βసૹ͍ͯͯ͠ɼͦΕͧΕ਺े ms ͔Β਺ඦ ms ͔͔͍ͬͯΔ༷ࢠ͕‫͞࡯؍‬Εͨɽσόοά౳ͷ໨తҎ֎Ͱ͸ɼੵ‫ۃ‬తʹ no-cache ͱ͢΂͖ཧ༝͸ͳ͍ͷͰɼ੩తϑΝΠϧʹ͍ͭͯ͸

Cache-Control: no-cache Λ֎͢มߋΛ͓͜ͳͬͨɽਤ 3 ͸௨৴ྔ͕ଟ͔ͬͨ URL Λάϥϑʹͨ͠΋ͷͰɼରԠΛ͓͜ͳͬͨ೔ʢன‫ٳ‬ΈʹରԠʣͷࠨଆ͕‫ޕ‬લʢରԠલʣ, ӈଆ͕‫ޙޕ‬ʢରԠ‫ޙ‬ʣʹͳ͍ͬͯΔɽ֤άϥϑͷԣ࣠ͷ URL ͸ URL ͷ࢝ΊΔͱे਺෼ఔ౓Ͱ্‫ʹݶ‬ୡͯ͠͠·ͬͨͨΊɼղܾʹࢸΒͳ͔ͬͨɽࠜຊతʹ͸ pcbff ͷόάʢෛՙ͕ߴ͘ͳΔͱॲཧͷ଴͕ͪ࣌ؒ௕͘ͳΓϖʔδͷੜ੒ʹ͕͔͔࣌ؒΓ͗͢ΔʣͱࢥΘΕ͕ͨɼ͙͢ʹ‫ݪ‬ҼΛಥ͖ࢭΊͯमਖ਼͢Δ͜ͱ͕ࠔ೉
Ͱ͋ͬͨɽԠ‫ٸ‬ાஔͱͯ͠त‫ۀ‬։࢝લͳͲͷλΠϛϯάͰ pcbff Λ࠶‫ى‬ಈ͢Δ༧๷ࡦΛ࣮ࢪͨ͠ɽ
෭࡞༻ͱͯ͠ϩάΠϯதͷϢʔβ͕‫੍ڧ‬తʹϩάΞ΢τ͞ΕΔ͜ͱʹͳ͕ͬͨࢭΉΛಘͳ͍ͱ൑அͨ͠ɽ ਤ 4Ͱ͸ɼpcbff ͷ࠶‫ى‬ಈʹΑΓఆ‫ظ‬తʹϩάΠϯϢʔβ਺͕‫͍ͯ͠ݮٸ‬Δ༷ࢠ͕‫ͯݟ‬औΕ
Δɽͦͷ‫ޙ‬ɼαʔόࢿ‫ݯ‬ͷ૿‫Ͳͳڧ‬Λ͓͜ͳͬͯ
ॲཧೳྗʹ༨༟Λ΋ͨͤͨঢ়ଶͰӡ༻͠ɼͦͷؒʹ pcbff ͷϓϩάϥϜͷमਖ਼Λ͓͜ͳͬͯεϨου਺ͷ‫্ٸ‬ঢ͕‫ͳ͘͘ʹ͖ى‬ΔΑ͏ʹͨ͠ɽίωΫγϣϯϓʔϧͷઃఆؒҧ͍຤ඌͷΈΛ࢒͍ͯ͠ΔɽରԠલ͸ɼpng, js, css ͳ

3.2.4

Ͳͷ੩తίϯςϯπͷ URL ্͕ҐΛ઎Ί͍ͯͨ֓ཁɿ ϑϩϯτΤϯυͱόοΫΤϯυαʔϏεͷؒͷରͯ͠ɼରԠ‫ޙ‬͸ଞͷ URL ͕૿͖͍͑ͯͯΔ

Ͱ֬อ͞Ε͍ͯΔίωΫγϣϯϓʔϧ਺͕গͳ͜ͱ͔ΒɼΩϟογϡʹΑΓෆཁͳ௨৴ͷ࡟‫ʹݮ‬͘ɼϦΫΤετ͕ਖ਼͘͠όοΫΤϯυʹྲྀΕͣॲͭͳ͕͍ͬͯΔ͜ͱ͕Θ͔Δɽ

ཧೳྗ͕େ෯ʹ௿Լ͍ͯͨ͠ɽ

ࣄ৅ͷ‫ݪ‬Ҽɿ ϚΠΫϩαʔϏεΞʔΩςΫνϟͰͯ͠ϦϋʔαϧΛߦͬͨͱ͜ΖɼϨεϙϯε͕‫ۃ‬͸ɼαʔϏεΛ෼ׂͯ͠ಈ͔ͨ͢ΊʹαʔϏεؒ౓ʹѱԽ࣮͠༻తͳੑೳ͕ಘΒΕͳ͔ͬͨɽ

Ͱ RESTful API ౳Λར༻ͯ͠σʔλͷ΍ΓͱΓࣄ৅ͷ‫ݪ‬Ҽɿ ϩάΛௐ΂ͨͱ͜Ζɼ࠷ॳͷ 10 ඵؒʹΛߦ͏ɽ͜ͷࡍʹίωΫγϣϯ͕ඞཁͱͳΓɼಛ

໿ 600 ໊ͷֶੜ͕ड‫ݧ‬Λ։͍࢝ͯͨ͠ɽ͞ΒʹɼఆͷαʔϏε΁ͷ઀ଓͰίωΫγϣϯΛுΓ͢։࢝࣌ࠁલ‫ֶʹޙ‬ੜ͕࿈ଧ͠ɼେྔͷϦΫΤετ

͗ͳ͍Α͏ʹ੍໿Λઃ͚͍ͯΔɽ‫ݪ‬Ҽ͸ɼϑϩϯ͕ൃੜ͍ͯͨ͠ɽ

τΤϯυͱόοΫΤϯυαʔϏεͷؒͰ֬อ͞ΕରԠɿ Ϧϋʔαϧ࣮ࢪ୲౰ऀʹγεςϜͷੑೳಛੑ͍ͯΔίωΫγϣϯϓʔϧ਺͕઀ଓ਺ʹରͯ͠େΛਖ਼֬ʹ఻͑ΒΕͣɼֶੜ޲͚ͷࢦ͕ࣔ଍Γͳ෯ʹগͳ͘ɼϦΫΤετ͕ਖ਼͘͠όοΫΤϯυʹ

͔ͬͨͷ͕൓ল఺Ͱ͋Δɽͦͷ‫ޙ‬ɼ৘ใՊ໨Ͱ΋సૹͰ͖ͣɼΩϡʔ͕ҲΕͯ͠·ͬͨͷ͕‫ݪ‬ҼͰಉ༷ͷϦϋʔαϧͱ͞Βʹຊ൪Λߦ͕ͬͨɼੑೳ

͋Δɽ

্ͷେ͖ͳ໰୊͸ൃੜ͠ͳ͔ͬͨɽ͜ͷՊ໨ͷຊରԠɿ ίωΫγϣϯϓʔϧͷαΠζׂΓ౰ͯΛ࠶ઃ൪Ͱ͸ɼֶੜΛ 10 άϧʔϓʹ෼ׂ͠ɼ֤άϧʔϓ‫͠ܭ‬ɼมߋΛ࣮ࢪ͠ରԠͨ͠ɽͦͷ‫ޙ‬ɼղܾ͔ͨ͠

͕ 2 ෼ִؒͰղ౴Λ։࢝ͨ͠ɽ·ͨɼςετ໰୊ʹ‫͕ͨ͑ݟ‬ɼׂΓ౰ͯͷؒҧ͍ʹΑΓίωΫγϣΛࢦఆ͢Δࡍʹ͸μΠϨΫτϦϯΫΛ༻͍ɼଞͷϯϓʔϧΛ૝ఆ௨Γʹར༻Ͱ͖ͳ͍ঢ়‫ͬͳʹگ‬ϖʔδ΁ͷΞΫηεΛ‫ݮ‬Β͢޻෉΋ߦͬͨɽ͍ͯͨɽ࠶౓ׂΓ౰ͯͷ‫ݕ‬౼ͱઃఆͷमਖ਼Λ࣮ࢪ͠ɼόοΫΤϯυͷαʔϏεʹॲཧ͕ద੾ʹׂΓ౰ͯΒΕྲྀΕΔΑ͏ʹͨ͠ɽ

4 ΦϯϥΠϯत‫ۀ‬ରԠͷ‫܇ڭ‬ຊઅͰ͸ɼITC-LMS ͷΦϯϥΠϯत‫ۀ‬ରԠͱ֤छ

3.2.5 SINET L2VPN ଳҬͷඡഭো֐΁ͷରԠΛ‫ͯܦ‬ಘΒΕͨ‫܇ڭ‬Λ·ͱΊΔɽ֓ཁɿ L2VPN ͷଳҬ͕‫͘ڱ‬ɼ֤छϑΝΠϧͷμ΢

4.1

ϚΠΫϩαʔϏεΞʔΩςΫνϟͷ೉͠͞ϯϩʔυɾΞοϓϩʔυʹ࣌ؒΛཁ͍ͯͨ͠ɽ

ୈ 2 અͰड़΂ͨΑ͏ʹɼITC-LMS Ͱ͸ϚΠΫϩ

ࣄ৅ͷ‫ݪ‬Ҽɿ ֶ‫ظ‬։࢝લͷ४උஈ֊ͷෛՙࢼ‫ʹ࣌ݧ‬αʔϏεΞʔΩςΫνϟΛ࠾༻͠ɼKubernetes ্ͰଳҬ͕૝ఆΑΓ΋‫͍ͯͬͳ͘ڱ‬ΔՄೳੑ͕൑໌͠

αʔϏεΛఏ‫͍ͯ͠ڙ‬ΔɽϚΠΫϩαʔϏεͱͯ͠

ͨɽSINET ͷ L2VPN Λར༻͍ͯ͠ΔͨΊֶ಺LMS ͷ‫ػ‬ೳΛ෼ׂ͠ಠཱͤ͞Δ͜ͱͰɼ։ൃͷਝ଎ͷωοτϫʔΫઃఆɼSINET ଆͷ VPN ઃఆɼΫԽͱอकੑ͕޲্ͨ͠ɽ͔͠͠ɼࠓճͷΦϯϥΠϯतϥ΢υ಺෦ͷ VPN ઃఆΛ‫ݟ‬௚͠ɼΫϥ΢υ಺෦‫ۀ‬ରԠ΍֤छো֐Λ‫ͯ͠ݧܦ‬ϚΠΫϩαʔϏεΞʔΩͷଳҬ͕ઃ‫ܭ‬ΑΓ΋‫ͱ͍͜ڱ‬Λൃ‫ͨ͠ݟ‬ɽςΫνϟͰӡ༻্͍ͯ͘͠Ͱୈ 3.2.4 અͷίωΫγϣରԠɿ ΩϠϊϯ ITS ͱύϒϦοΫΫϥ΢υࣄ‫ͱऀۀ‬‫͠ྗڠ‬ɼL2VPN ͷଳҬΛஈ֊తʹվળ͠ɼଳҬ͕ϘτϧωοΫͱͳΔো֐͸ղফ͞Εͨɽ

3.2.6 େ‫ن‬໛Ұ੪ΦϯϥΠϯςετ֓ཁɿ ֶ‫ظ‬຤͕ۙͮ͘ͱɼ‫ظ‬຤ςετͷΦϯϥΠϯ
Խ͕໰୊ͱͳͬͨɽैདྷͷΑ͏ʹςετΛҰ੪ʹ։࢝͢ΔͳΒɼ1 ೥࣍ඞमՊ໨Ͱ͸ɼ3,000 ਓҎ্ͷֶੜ͕΄΅ಉ࣌ʹςετ։࢝ϘλϯΛԡ͠ɼ΄΅ಉ࣌ʹղ౴Λఏग़͢Δ͜ͱʹͳΔɽ͜Ε͕࣮ࢪෆՄೳͰ͋Δ͜ͱ͸༰қʹ૝૾Ͱ͖ΔɽެฏੑΛ
อͯΔൣғͰɼղ౴ͷ։࢝࣌ࠁʹ෯Λ࣮࣋ͨͤͨ
ࢪํ๏Λ໛ࡧ͢Δඞཁ͕͋ͬͨɽ·ͣ͸ɼෛՙςετͷ࣮ଌ஋͔ΒγεςϜͷεϧʔϓοτʢ୯Ґ࣌ؒ͋ͨΓʹॲཧͰ͖ΔϦΫΤετ਺ʣΛਪఆ͠ɼӳ‫ޠ‬ͷςετͷ৔߹ɼ10 ෼ؒʹ 3,000 ਓ‫͕͋ڧ‬Δ
ఔ౓෼ࢄͯ͠ड‫ݧ‬Λ։࢝͢Ε͹ɼॲཧՄೳͱ൑அ
ͨ͠ɽ5 ݄຤ʹɼ࣮ࡍʹ໿ 3,000 ໊ͷֶੜΛಈһϯϓʔϧʹ‫ى‬Ҽ͢Δ໰୊͕໌Β͔ʹͳͬͨɽαʔϏε͕ಠཱ͍ͯ͠ΔͨΊɼαʔϏεؒͷ΍ΓͱΓ͸ RESTful API ͳͲΛར༻ͯ͠ߦΘΕΔɽͦͷͨΊɼߴෛՙ΍όάʹΑΓԠ౴ॲཧʹ࣌ؒΛཁ͢Δ৔
߹͸ɼಛఆͷαʔϏεؒͷηογϣϯ਺͕૿Ճ্͠‫ݶ‬ʹୡ͢ΔͱɼଞͷαʔϏε΁ͷ৽‫઀ن‬ଓ͕Ͱ͖ͳ͍ঢ়
‫ൃ͕گ‬ੜͯ͠͠·͏ɽ͜͏ͨ͠໰୊Λආ͚ΔͨΊʹɼαʔϏεؒͷηογϣϯ਺ʹ্‫ݶ‬Λઃ͚ΔίωΫγϣ
ϯϓʔϧͱ‫ݺ‬͹ΕΔ࢓૊Έ͕ར༻͞Ε͍ͯΔɽͨͩ͠ɼ֤αʔϏε΁ͷΞΫηε਺͸‫ۉ‬౳Ͱ͸ͳ͘ɼස౓
΍܏޲ʹΑΓൃੜ͢ΔภΓΛߟ্ྀͯ͠‫ݶ‬Λઃఆ͠ͳ͚Ε͹ͳΒͳ͍ɽLMS ͷ৔߹͸ɼLMS ͷಉ࣌ར༻ऀ
਺ɼར༻͞ΕΔ‫ػ‬ೳͷ܏޲Λ೺Ѳ্ͨ͠ͰίωΫγϣ
ϯ਺ͷ্‫ݶ‬ΛׂΓ౰ͯΔ͜ͱ͕؊ཁͰ͋ΔɽίωΫγϣϯϓʔϧͷׂΓ౰͕ͯඞཁͳ਺ΑΓ΋গͳ͍ͱɼ
αʔϏεͷෛՙ͸্ঢ͠ͳ͍͕ϦΫΤετ͕٧·ΓɼγεςϜશମͷॲཧ஗Ԇ΍λΠϜΞ΢τΛট͍ͯ͠·͏ɽҰํͰ্‫ݶ‬Λߴ͘ઃఆͨ͠৔߹ʹ͸ɼίωΫγϣ

΢υαʔϏε্Ͱఏ‫͞ڙ‬ΕΔͨΊɼେֶଆͰΠϯϑϥϯࣗମ͸ԁ‫ʹ׈‬ுΒΕΔҰํͰɼσʔλϕʔε΁ͷΞͷӡ༻ίετɼ։ൃίετΛԼ͛Δ͜ͱ͕Ͱ͖Δɽಛ

Ϋηε͕աෛՙʹͳͬͯ͠·͍ॲཧ଎౓ͷ௿Լ΍λΠʹ Google Classrooom ͸ɼG Suite for Education ΛϜΞ΢τΛট͍ͯ͠·͏Մೳੑ͕͋Δɽσʔλϕʔεಋೖ͍ͯ͠ΔେֶͰ͋Ε͹େֶυϝΠϯͷ Google Ξ΁ͷ઀ଓ࣌ʹ΋ϦΫΤετΛϓʔϦϯά͢Δઃఆ͕͋Χ΢ϯτΛ࣋ͭར༻ऀʢ‫ڭ‬৬һ΍ֶੜʣʹ‫ݶ‬ఆͯ͠ΫΔͨΊɼ֤छσʔλϕʔεʹԠͨ͡ద੾ͳϓʔϦϯάϥεΛఏ‫͖Ͱڙ‬ΔɽҰํͰɼSaaS ͱͯ͠ఏ‫͞ڙ‬ΕͯύϥϝʔλΛઃఆ͠ͳ͚Ε͹ͳΒͳ͍ɽ

͍ΔͨΊɼఏ‫͞ڙ‬Ε͍ͯΔ‫ػ‬ೳҎ֎ͷར༻΍֦ு͸೉

ITC-LMS Ͱ͸ɼୈ 3 અͰड़΂ͨ௨Γɼ2020 ೥ 4 ݄͘͠ɼͦΕͧΕͷ LMS ʹେֶଆͷत‫ܗۀ‬ଶΛ߹Θ͔ͤΒ 7 ݄ʹࢸΔ·ͰʹαʔϏεؒͷίωΫγϣϯϓʔΔඞཁ͕͋Δɽϧɼσʔλϕʔεͷύϥϝʔλ࠷దԽΛ‫ܧ‬ଓ࣮ͯ͠ࢪ

4.3

ΦϯϥΠϯत‫ʹۀ‬దͨ͠ LMS ͷ‫ػ‬ೳ͖ͯͨ͠ɽύϥϝʔλͷ࠷దԽʹ࣌ؒΛཁͨ͠ͷ͸ɼिʹ 1 ճ‫Ͱࣨڭ‬௚઀‫إ‬Λ߹Θͤͯɼ‫ڭ‬һ͸त‫಺ۀ‬γεςϜ಺ͷϓʔϦϯά͕ଟஈʹͳ͓ͬͯΓɼ‫܁‬Γฦ༰Λઆ໌ɼֶੜ͸ඞཁʹԠ࣭ͯ͡໰ɼͱ͍͏΍ΓऔΓ͠ࢼ‫ͱݧ‬मਖ਼͕ඞཁͰ͋ͬͨͨΊͰ͋Δɽ·ͨɼγε͸ର໘त‫ͳۀ‬Β౰વ؆୯Ͱ͋Δɽ͜ͷΑ͏ͳ‫ڭ‬һͱςϜՔಇ࣌ʹͲͷఔ౓ϓʔϧ͕ফඅ͞Ε͍ͯΔ͔Λֶੜͱͷ΍ΓऔΓʹར༻Մೳͳɼԕִձٞπʔϧɼి೺Ѳ͢ΔͨΊͷ‫͕ࢹ؂‬ෆ଍͍ͯͨ͜͠ͱ΋ੑೳྼԽͷࢠϝʔϧɼνϟοτͳͲͷ֤छͷπʔϧ΍αʔϏε‫ݪ‬Ҽಛఆ͕஗ΕͨཁҼͰ͋ΔɽϚΠΫϩαʔϏεΞʔ͸ଟ਺ଘࡏ͢Δ΋ͷͷɼΦϯϥΠϯत‫ۀ‬ͷ࣮ࢪʹ౰ͬΩςΫνϟ͸ࡢࠓଟ͘ͷαʔϏεͰ࠾༻͞ΕΔΑ͏ʹͯ͸ɼ౰֘त‫ڭͰۀ‬һ͕༻ҙͨ͠πʔϧ΍αʔϏεͷͳ͍ͬͯΔ͕ɼγεςϜੑೳΛे෼ʹग़͢ʹ͸ɼϚΠ৘ใ– ۩ମతʹ͸ʮΦϯϥΠϯत‫ ۀ‬A Λडߨ͢ΔਓΫϩαʔϏεʹదͨ͠αʔϏεͷઃ‫ܭ‬΍ίωΫγϣϯ͸ https://zoom.us/j/xxxxxxx ʹΞΫηεͯ͘͠ͷ࠷దԽख๏Λे෼ʹ೺Ѳ͠ɼઃ‫ܭ‬ɾߏஙɾςετɾ͍ͩ͞ʯͱ͍ͬͨจࣈྻͳͲ–ͱ͍ͬͨΦϯϥΠϯतӡ༻͕Մೳͳٕज़Λඋ͍͑ͯΔඞཁ͕͋Δɽ‫ؔ͢ʹۀ‬Δ৘ใΛɼ‫ڭ‬һ͕‫ه‬ೖֶͯ͠ੜ͕ࢀরՄೳͳ

4.2

ΦϯϓϨϛε‫ ܕ‬LMS vs Ϋϥ΢υ‫ ܕ‬LMS

ITC-LMS ͸ɼ2019 ೥౓ͷߋ৽Ͱ Infrastructure as࢓૊Έ͕ඞཁͰ͋Γɼत‫ۀ‬ͷ։ߨ‫ؒظ‬தʹසൟʹར༻͞ΕΔ LMS Ͱఏ‫͢ڙ‬Δ͜ͱ͕๬·͍͠ɽa Service (IaaS) ‫ܕ‬ͷύϒϦοΫΫϥ΢υ্ʹߏங͜͠ͷΑ͏ͳ৘ใͷฤू΍ࢀরΛՄೳͳΠϯλϑΣʔͯӡ༻͍ͯ͠ΔɽैདྷͷΑ͏ʹେֶ಺ʹαʔόΛઃஔεΛत‫ۀ‬ຖʹ࡞੒͢Δ͜ͱࣗମ͸વఔ೉͘͠ͳ͍ͱߟ

͠ɼΦϯϓϨϛεͰӡ༻͍ͯ͠Δ৔߹ͱൺֱ͍ͯ͘͠

͑ΒΕΔ͕ɼत‫ۀ‬։࢝લʹଟ਺ͷֶੜ͕ಉ࣌ʹΞΫη͔ͭͷ௕ॴ͕͋ͬͨɽ2020 ೥ 3 ݄ʹ‫ٸ‬ᬎ LMS ͷੑεͯ͠΋଱͑ΒΕΔγεςϜͱ͢Δٕज़΍ɼͦ΋ͦ΋ೳ‫ڧ‬Խ͕ඞཁͱͳͬͨࡍʹɼௐୡ‫ؒظ‬Λ୹ॖ͠ॊೈʹ৘ใͷೖखઌΛใͤΔํ๏౳Λߟྀ͢Δͱ༰қͳ໰୊αʔόͷ‫ڧ‬ԽΛ࣮ࢪͰ͖ͨɽ3 ݄Ҏ߱΋ϝϞϦɾCPU

Ͱ͸ͳ͘ɼ2020 ೥౓ͷΦϯϥΠϯत‫ۀ‬ͷ։࢝࣌ʹ͸࣮ͷมߋɼςετ‫ڥ؀‬ͷߏஙͳͲ୹‫͖ͨͰࢪ࣮Ͱؒظ‬ɽ૷Ͱ͖ͳ͔ͬͨɽΑ͏΍͘ 2020 ೥౓‫ظޙ‬։࢝௚લͷΦϯϓϨϛεͰӡ༻͍ͯ͠Δ৔߹͸ɼαʔόͷௐୡ΍

9 ݄த०ʹͳͬͯɼITC-LMS Ͱ͸ʮΦϯϥΠϯत‫ۀ‬ઃஔɾߏஙͱ͍͕ͬͨ࣌ؒඞཁͱͳΓɼ୹‫ڧ૿Ͱؒظ‬৘ใʯͱ͍͏࢓૊ΈΛ৽ͨʹઃ͚͕ͨɼ౰֘৘ใΛந͢Δͷ͸ࠔ೉Ͱ͋ͬͨɽಛʹɼCOVID-19 ͷӨ‫Ͱڹ‬੡ग़ֶͯ͠ੜʹఏ‫͢ڙ‬Δઐ༻ͷ΢ΣϒΞϓϦέʔγϣϯ଄ɾ෺ྲྀͷೳྗ͕௿Լ͍ͯͨ͠ঢ়ଶͰ͸ɼ௨ৗΑΓ΋Λ LMS ຊମͱ͸ผʹఏ‫͍ͯ͠ڙ‬Δɽ

௕͍࣌ؒΛཁͨ͠ͱ૝ఆ͞ΕΔɽLMS ಺෦ͷো֐ͳҎ্Λ౿·͑ΔͱɼՊ໨ʹର͢Δଐੑ৘ใͷ௥Ճ΍ɼͲ͕ଟ͔ͬͨ΋ͷͷɼIaaS ‫ܕ‬ͷΫϥ΢υΛ࠾༻͍ͯ͠

௥Ճͨ͠ଐੑ৘ใͷ֎෦͔ΒࢀরͳͲΛॊೈʹ࣮૷Ͱͨ͜ͱ͕޾͍͠ɼ‫ܧ‬ଓͨ͠σόοάͱੑೳ‫ڧ‬Խʹͭͳ͖Δ͜ͱ͕๬·ΕΔɽ͕ͬͨͱߟ͑Δɽࠓ‫ޙ‬΋ΦϯϥΠϯɾΦϑϥΠϯΛ໰ҰํɼITC-LMS ͷ‫ط‬ଘͷ‫ػ‬ೳ͕ΦϯϥΠϯत‫ʹۀ‬Θͣ LMS ͷ‫ػ༻׆‬ձ͕૿͍͑ͯ͘தͰɼ֤छཁ๬ʹ໾ཱͬͨ͜ͱ΋͋Δɽຊֶͷ͋Δ෦‫Ͱہ‬͸ɼΦϯϥΠॊೈʹରԠ͍ͯ͘͠ʹ͸ύϒϦοΫΫϥ΢υͰͷӡ༻ϯत‫ۀ‬ͷϝϦοτΛੜ͔ͯ͠ LMS ্Ͱֶੜ͕࠷େ‫ݶ‬͕ద͍ͯ͠Δͱߟ͑Δɽ

ʹௌߨՄೳʢֶ຿γεςϜͰొ࿥͠ͳ͍त‫Ͱۀ‬΋ɼत࠷ۙͰ͸ Service as a Service (SaaS) ͱͯ͠ Black-‫ۀ‬Λฉ͖ɼ‫ࡐڭ‬౳Λ‫ݟ‬Δ͜ͱͰ͖ΔʣऔΓ૊ΈΛߦͬ

board ࣾͷ Blackboard, Google ࣾͷ Google Class-ͨɽ‫ݩ‬ʑ ITC-LMS Ͱ͸ɼίʔε಺ͷཤमऀΛ‫ڭ‬һ͕room ͳͲͰΫϥ΢υ‫ܕ‬ͷ LMS αʔϏε͕ఏ‫͞ڙ‬Εಠࣗʹొ࿥ͨ͠ΓɼLMS ͷϢʔβ͕ཤमऀͱͯࣗ͠

͍ͯΔɽ͜ΕΒͷαʔϏεͰ͸ɼLMS ͕֤ࣾͷΫϥ༝ʹίʔεʹࢀՃՄೳʹ͢ΔͳͲɼίʔε಺ͷཤमऀͷൣғΛ‫ڭ‬һ͕ॊೈʹઃఆՄೳʹ͍ͯͨ͜͠ͱ͔Βɼ‫ڙ‬͸ɼϫϯετοϓαʔϏεʹͳ͍ͬͯΔ͜ͱ͕͜ͷΑ͏ͳऔΓ૊Έ͕γεςϜ্͸গͳ͘ͱ΋༰қʹ๬·ΕΔɽେֶ΍‫ڭ‬һ͔Βͷ࿈བྷࣄ߲ͷ֬ೝɼ࣮ࣗ‫͑ߟͱ͖ͨͰݱ‬ΒΕΔɽ෼ͷա‫ڈ‬ͷֶशঢ়‫گ‬೺ѲɼToDo Ϧετ؅ཧͳͲΦϯϥΠϯत‫ߨ֤ͯͬͳʹۀ‬ٛͰग़୊͞ΕΔ՝୊͕
૿͑ͨͱ‫ݴ‬ΘΕΔɽITC-LMS Ͱ͸ग़୊͞Εͨ՝୊΋ΛҰՕॴͰγϯϓϧʹఏ‫͢ڙ‬Δ͜ͱ͕๬·ΕΔɽֶशσʔλͷऩू૷ஔɿ

ֶੜ͕ࣗ෼ͷֶशঢ়‫گ‬Λ೺‫ؚ‬Ίͯ LMS ্Ͱ࡞੒͞Εͨίϯςϯπʹؔ͢Δߋ৽Ѳͨ͠Γɼ‫ڭ‬һ͕୲౰Ϋϥεͷঢ়ଶΛ೺Ѳͨ͠Γ৘ใΛɼ΢ΣϒΠϯλϑΣʔε্ʹදࣔ͢Δଞɼલ೔͢ΔͨΊʹ͸ɼͦͷͨΊͷ‫ͳͱૅج‬Δσʔλͷऩ෼ͷߋ৽৘ใΛຖ೔·ͱΊͯ LINE/ϝʔϧͰར༻ऀूɾ෼ੳɾՄࢹԽͳͲ͕ඞཁͱͳΔɽࡉ͔ͳֶश

ʹ௨஌͍ͯ͠Δɽ͔͠͠ɼֶ‫ظ‬த͸௨஌ର৅ͱͳΔߋߦಈσʔλͷऩू૷ஔͱͯ͠ͷ໾ׂ͕๬·ΕΔɽ৽৘ใ͕֨ஈʹ૿͑ͨ͜ͱ͔Βɼஞ࣍ૹ৴͢Δ LINE/

αʔϏεϓϩόΠμɿLMS ͸͞·͟·ͳαʔϏεϝʔϧʹΑΔ௨஌‫ػ‬ೳ͸ɼશͯͷର৅ͱͳΔར༻ऀʹΛ Web ͷΠϯλϑΣʔεΛհͯ͠ఏ‫͢ڙ‬Δɽֶ

ૹ৴͕‫ྃ͢׬‬Δ·Ͱɼ‫ؙ‬Ұ೔Ҏ্ֻΔ͜ͱ΋͋ͬͨɽੜͷதʹ͸εΫϨΠϐϯάΛߦͬͯࣗ෼༻ͷಠֶ͔ࣗͯ͘͠ੜ͸ࣗ਎͕ཤमதͷߨٛʹؔͯ͠ɼ LMSΞϓϦέʔγϣϯΛ࡞੒͍ͯ͠Δ΋ͷ΋͍Δɽ͜

্Ͱग़୊͞Ε͍ͯΔ՝୊Λ‫ݟ‬མͱ͢͜ͱͷແ͍Α͏ɼ͏͍͏ֶੜͷͨΊʹ͸ɼAPI Λఏ‫͢ڙ‬Δ͜ͱ͕๬සൟʹϩάΠϯͯ͠‫ݸ‬ʑͷίʔε (ߨٛ) ͷίϯςϯ

·ΕΔɽͦ͏͢Δ͜ͱͰɼΑΓྑ͍ΠϯλϑΣʔπΛ֬ೝ͢Δඞཁ͕ੜ͍ͯ͡Δɽ͜Εʹରֶͯ͠ੜ͔

εͷ։ൃʹഥं͕͔͔Δ͜ͱ͕‫ظ‬଴Ͱ͖Δɽ

ΒɼཤमதͷίʔεͰग़୊͞Ε͍ͯΔ՝୊ΛҰ‫ׅͯ͠‬
֬ೝ͢Δ‫ػ‬ೳ͕ཉ͍͠ͱͷ੠্͕͕Γɼ2020 ೥ 9 ݄‫ݱ‬ࡏ౰֘‫ػ‬ೳΛ࣮૷͢Δํ޲Ͱ‫ݕ‬౼͕ਐΜͰ͍Δɽ

5 ͜Ε͔Βͷ LMS ͷ͋ΓํLMS ͷ‫ػ‬ೳΛ͞·͟·ͳଆ໘͔ΒோΊɼLMS ͷ͋Δ΂͖࢟ʹ͍ͭͯड़΂Δɽ

6 ͓ΘΓʹ
ຊߘͰ͸ɼ౦‫ژ‬େֶͷ LMS ʹ͓͚Δ 2020 ೥Նֶ‫ظ‬ͷΦϯϥΠϯत‫ۀ‬ରԠΛ௨࣮ͯ͠ࢪͨ͠ੑೳվળͷաఔɼൃੜͨ͠ো֐ͱͦͷ‫ݪ‬ҼͱରԠɼ·ͨͦΕΒͷ‫ܦ‬‫ݧ‬Λ௨ͯ͠ಘΒΕͨ‫܇ڭ‬Λใࠂͨ͠ɽ
ຊߘͰใࠂͨ͠ରԠʹΑΓՆֶ‫ظ‬Λऴ͕͑ͨɼITC-

ΞΫηε੍‫ޚ‬ͷ‫ج‬൫ɿ LMS ʹϩάΠϯͨ͠Ϣʔβ

LMS ʹ͸ଟ͘ͷ՝୊΍վળ͕ඞཁͳՕॴ͕൑໌ͨ͠ɽ

͸ɼࢀՃ͍ͯ͠Δίʔεͱͦͷίʔε಺Ͱͷ໾ׂळֶ‫ʹͰ·ظ‬͸ɼΦϯϥΠϯत‫ۀ‬৘ใΛ໌ࣔతʹొ࿥౳ʹԠͯ͡ɼΞΫηεͰ͖Δίϯςϯπͱར༻Ͱ͠ɼֶੜ͕ࣗ෼ͷΦϯϥΠϯत‫ۀ‬৘ใʢձٞγεςϜ͖Δ‫ػ‬ೳ͕มΘͬͯ͘Δɽ͍ͨͨ͜͠ͱͰ͸ͳ͍

ͷ URL ͳͲʣΛऔಘͰ͖ΔΑ͏ʹ‫ػ‬ೳΛ௥Ճ͢ΔɽΑ͏ʹฉ͑͜Δ͔΋͠Εͳ͍͕ɼ͜Ε͕ LMS ͷଞʹ΋՝୊ͷҰཡ‫ػ‬ೳ΍ϖʔδભҠͷվળͳͲ༷ʑͳ

‫ج‬൫త‫ػ‬ೳͰ͋Γɼ‫ࡐڭ‬഑෍΍Ϩϙʔτఏग़ͳͲվળɾ‫ػ‬ೳ௥ՃΛ‫ܧ‬ଓ࣮ͯ͠ࢪ͢ΔɽͷҰൠతͳ LMS ͷ‫ػ‬ೳ͸ɼ͜ͷ‫ج‬൫্ʹΞϓϦͱ࣮ͯ͠‫͖Ͱݱ‬Δ΋ͷͰ͋Δɽֶ຿γεςϜ͕༗
͢Δެࣜͷ৘ใͱ୲౰‫ڭ‬һ౳͕෇Ճͨ͠ඇެࣜͷ৘ใʢe.g. άϧʔϓϫʔΫͷॴଐάϧʔϓ৘ใʣΛ౷߹ͯ͠؅ཧ͠ɼLMS ͷ಺֎ͷαʔϏε͕͜ࢀߟจ‫ݙ‬[1] ౦‫ژ‬େֶ ΦϯϥΠϯत‫ۀ‬ɾWeb ձٞ ϙʔλϧαΠτ, https://utelecon.github.io/.

[2] Ϋ ϥ ΢ υ ή ʔ τ ΢ Σ Π α ʔ ό ϗ ε ςΕΒͷ৘ใΛར༻ͯ͠Ұ؏ੑͷ͋ΔΞΫηε੍‫ޚ‬Ο ϯ ά α ʔ Ϗ ε,Λߦ͑ΔΑ͏ʹͰ͖Δ͜ͱ͕๬·ΕΔɽձ ࣾ,ίϛϡχέʔγϣϯπʔϧɿ ‫׬‬શΦϯϥΠϯत‫ۀ‬Խ౦೔ຊి৴ి࿩‫ࣜג‬https://business.ntt-east.co.jp/

service/serverhosting/.

͕࣮ࢪ͞Εͨࠓ೥౓લ൒͸ɼର໘Ͱͷ‫ڭ‬һͱֶੜ[3] in Campus, Ω Ϡ ϊ ϯ IT ι Ϧ ϡ ʔ γ ϣ ϯ΍ֶੜಉ࢜ͷίϛϡχέʔγϣϯ͕ෆՄೳͱͳͬ

ζ‫ࣜג‬ձࣾ, https://www.canon-its.co.jp/

ͨͨΊɼLMS ͷίϛϡχέʔγϣϯ‫ػ‬ೳ͕‫ݟ‬௚

products/webapps_incampus/.

͞Εͨɽϓογϡ‫ܕ‬ͷ৘ใఏ‫͍ͯͭʹڙ‬͸ɼֶੜ͕೔ৗతʹ࢖͍ͬͯΔνϟοτ΍ϝʔϧʹࣗવͳ‫Ͱܗ‬৘ใΛྲྀ͢͜ͱ͕๬·ΕΔɽϙʔλϧɾμογϡϘʔυɿ Ұํɼϓϧ‫ܕ‬ͷ৘ใఏ[4] Kubernetes, https://kubernetes.io/ja/.