tag:blogger.com,1999:blog-44900003061557621822024-03-13T08:01:44.214+09:00ライタス株式会社公式ブログライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.comBlogger223125tag:blogger.com,1999:blog-4490000306155762182.post-26709562586879676362024-01-25T17:24:00.002+09:002024-01-25T17:26:03.847+09:00LTE対応のWifiルーター NEC Aterm HT100LNで激安インターネット環境を試す | ライタス株式会社<p>代表の箕谷です。</p><p>「とある事情により、インターネットを引いていないお宅で、とにかく遅くてもいいからインターネットが使いたい。しかもとにかく安く。」</p><p>というお題を頂戴しましたので、それに対するアンサーを考えてみました。</p><h2 style="text-align: left;">インターネット接続の手法を検討する</h2><p>インターネットに接続する方法としては、基本的にはフレッツを契約するか、CATVなどのインターネット提供会社との契約をして、工事を行うという選択肢になりますが、最近はSIMフリー化が進み、またMVNOやeSIMの登場により、携帯電話網がより身近に、より安くに導入することができるようになったので、この辺の調査がてら、どのような選択肢があるのかを検討しました。</p><p>とにかく遅くてもよいという要件は、IoT向けSIMが適用できそうです</p><p><br /></p><p><br /></p><p>神プラン 298円(税込み 328円)を選択しました。</p><p><br /></p><h2 style="text-align: left;">SIMが使えるWifiルーターを探す</h2><p>SIMを使ってYAMAHA RTXシリーズのWAN側を提供する事例があったのを思い出したので、これにWifi APを付けるという手を最初考えていましたが、どう考えてもRTXシリーズは高くなりすぎるので、却下しました。</p><p>https://network.yamaha.com/setting/router_firewall/internet/internet_connect/mobile<br /><br />翻って、SIMが使えるルーターを探してみることにすると、IO-DATAとNEC、もう1社提供していることが分かったので、比較してみることにしました。</p><p><br /></p><p><br /></p><p><br /></p><p>結果、NEC Aterm HT100LNを使ってみることにしました。<br /><br /></p><h2 style="text-align: left;">設定と速度計測</h2><p></p><div class="separator" style="clear: both; text-align: left;">まずは、定番の開封の儀です。</div><div class="separator" style="clear: both; text-align: left;">ロケットモバイルからは、申込から1日でSIMが届きました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzS_EqQPwtkqFFfGBpBpzSL-yLd6IbX8_I8uiREglUb5mo5VN8IY2c7-uPOjI2Mn3BlrRuTyZAscjg4Nj6KLQAwh2x0KBGYLAv9Do-8vok1CNzchIcwrLA3mlrcMQqjXNaS6ixIinqnqviGvZgtUjwL8-sx1kBrCyavihoqM8nzPq3Cz-xWsIMeciYqg/s4032/PXL_20230303_041416019.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzS_EqQPwtkqFFfGBpBpzSL-yLd6IbX8_I8uiREglUb5mo5VN8IY2c7-uPOjI2Mn3BlrRuTyZAscjg4Nj6KLQAwh2x0KBGYLAv9Do-8vok1CNzchIcwrLA3mlrcMQqjXNaS6ixIinqnqviGvZgtUjwL8-sx1kBrCyavihoqM8nzPq3Cz-xWsIMeciYqg/s320/PXL_20230303_041416019.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Aterm HL100LN の外装はこんな感じ。</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNDl2KyF1PVAGisGqviINGGJV0z88bwRc8f9Hb1grrF7aiNgCSl9k3Iex1BK5PJMKJ_Kz1ceRlcmRJOysoc_UL9XUAcaG9BF5eOkUSQqasHVbCs5nBbBDN6IJpn01E27jFgzFcducJ1fREY1nBNH48_nv1ooscte8grXGujmM11WmU0LBSah7VN8txVA/s4032/PXL_20230303_041437223.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNDl2KyF1PVAGisGqviINGGJV0z88bwRc8f9Hb1grrF7aiNgCSl9k3Iex1BK5PJMKJ_Kz1ceRlcmRJOysoc_UL9XUAcaG9BF5eOkUSQqasHVbCs5nBbBDN6IJpn01E27jFgzFcducJ1fREY1nBNH48_nv1ooscte8grXGujmM11WmU0LBSah7VN8txVA/s320/PXL_20230303_041437223.jpg" width="240" /></a></div><div><br /></div>内容物はこんな感じ。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhASXUgeFI3JxrKFl9iXE7Zw2FsdEzMsumniug7ymRl8r5WjFK7mjkkGWLuVfgymNHXHBMazyLaHefbK-z4DBzYsXl_Ku9AELsNup0n6Gv-5Hxci_5260adOvOa7jkc5E3LEMr6_6QqefPD_g5UluLyalg_hzyx4VtDgiQXWShgGyHzgCs2PeTblAbNwA/s4032/PXL_20230303_041527355.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhASXUgeFI3JxrKFl9iXE7Zw2FsdEzMsumniug7ymRl8r5WjFK7mjkkGWLuVfgymNHXHBMazyLaHefbK-z4DBzYsXl_Ku9AELsNup0n6Gv-5Hxci_5260adOvOa7jkc5E3LEMr6_6QqefPD_g5UluLyalg_hzyx4VtDgiQXWShgGyHzgCs2PeTblAbNwA/s320/PXL_20230303_041527355.jpg" width="320" /></a></div><div><br /></div>ちゃんとnano SIMの刺さるところがあります。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQpR6Q-oG7hmEflb5LR842mAgJ-Y8LhLfI9Ampn_eLsovoytb9mPn6JppRNuIHF2C3vghhcryinUvRPKhcAmScJWLClfrsJ5fcxbp_7-vtHgZtWX4UGrkDEngrAxU-NHr1Y4BBfzc4xzbQ5EyJDFucDqpgLFdL3e_E-Rfjkmd7ZuHw-Ie1aLxdEXsdzw/s4032/PXL_20230303_041557571.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQpR6Q-oG7hmEflb5LR842mAgJ-Y8LhLfI9Ampn_eLsovoytb9mPn6JppRNuIHF2C3vghhcryinUvRPKhcAmScJWLClfrsJ5fcxbp_7-vtHgZtWX4UGrkDEngrAxU-NHr1Y4BBfzc4xzbQ5EyJDFucDqpgLFdL3e_E-Rfjkmd7ZuHw-Ie1aLxdEXsdzw/s320/PXL_20230303_041557571.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">説明書に書いてある通り、SIMの欠けている方を奥側に、金属側を基盤側に向いていることを確認して、挿入します。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">ノートPCから、Wifi経由でルーターの管理画面を開くと、初回ウィザードとして、管理パスワードを設定を促されるので登録します。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">その後、SIMカードを検知したのか、APNの接続先設定が表示されました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7niA3Fj_OkfkUZREC-TEbyrxZ19GzWy3FukYP8_gjUHI173GbuL-qVGSX-yzSeewIRhe1LoIfF7kMpB19asIDHg2tZ5sNeWLb3QJqs6ugSPjP6FOkz_ODaT8ap0eDGZ0g46q_d5th0hMVqNYCrbNmdcq2hBtwwQjUb7o-tE7FAAT5gcI8bpvXDY_gAw/s1555/01.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7niA3Fj_OkfkUZREC-TEbyrxZ19GzWy3FukYP8_gjUHI173GbuL-qVGSX-yzSeewIRhe1LoIfF7kMpB19asIDHg2tZ5sNeWLb3QJqs6ugSPjP6FOkz_ODaT8ap0eDGZ0g46q_d5th0hMVqNYCrbNmdcq2hBtwwQjUb7o-tE7FAAT5gcI8bpvXDY_gAw/s320/01.PNG" width="320" /></a></div>今回は、ロケットモバイルなので、リストに存在していません。<br />よって、手動設定を行います。<div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiglG4k926e0zLW2so9b6kPXVFKzbzgWAwOWdN-Xa956x0KYIYmlEdSFeaapLvL6U02tGF2vFRS4pvQZxOVoa_WCpn3GoaUvZj91X179FRpyl2NHlzH4LqZjTI0xEhF3CV95QC7hmdlFAa-BsMMBNjm0M04cYSPGLe47SVGvKN_6O9DMH5q8Bc7ikXnTA/s1555/02.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiglG4k926e0zLW2so9b6kPXVFKzbzgWAwOWdN-Xa956x0KYIYmlEdSFeaapLvL6U02tGF2vFRS4pvQZxOVoa_WCpn3GoaUvZj91X179FRpyl2NHlzH4LqZjTI0xEhF3CV95QC7hmdlFAa-BsMMBNjm0M04cYSPGLe47SVGvKN_6O9DMH5q8Bc7ikXnTA/s320/02.PNG" width="320" /></a></div><div><br /></div>APN設定は、ロケットモバイル同梱の説明書に書いてあるので、それを転記します。</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo0WeKaGHW1osgRZswL6Z2xT1LKDoF2LE9MGMSdNShcVlheJQh694iHn_alnco-KdN31RQBvsZLrWU20S1FggO2qK_lybwyoXCX4ECxPHc-aXd7ege5gW6V9Jac7kmkW7fZyqJshfGwbB_OvL4sZ7TrJ0pCXq7TMftetNTMgq06hqyXywuZDQjmm4_FQ/s1555/03.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo0WeKaGHW1osgRZswL6Z2xT1LKDoF2LE9MGMSdNShcVlheJQh694iHn_alnco-KdN31RQBvsZLrWU20S1FggO2qK_lybwyoXCX4ECxPHc-aXd7ege5gW6V9Jac7kmkW7fZyqJshfGwbB_OvL4sZ7TrJ0pCXq7TMftetNTMgq06hqyXywuZDQjmm4_FQ/s320/03.PNG" width="320" /></a></div>Wifiルーター自体のメンテナンスルールに同意したら、WAN接続確認が出ます。</div><div>無視してもいいのですが、一応疎通確認してもらいます。</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinTRzIWBChOEDmcw6PKaWyA3yTSrx7on5laAvwOYdWpJoQ2a8qDue1bQMO-BM0R0n59tkQ8pq1jYJZxaU62a2U73kz-3QJ7jtbiuLCQleJWpJgvU_p8nMlosdwVcIhSvlV0Pdal-EkSeAzG9WSnabbf-Qb1vTfKEMVCrF0rr2p3jsvy3YsuUlasOok1w/s1555/04.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinTRzIWBChOEDmcw6PKaWyA3yTSrx7on5laAvwOYdWpJoQ2a8qDue1bQMO-BM0R0n59tkQ8pq1jYJZxaU62a2U73kz-3QJ7jtbiuLCQleJWpJgvU_p8nMlosdwVcIhSvlV0Pdal-EkSeAzG9WSnabbf-Qb1vTfKEMVCrF0rr2p3jsvy3YsuUlasOok1w/s320/04.PNG" width="320" /></a></div><div><br /></div>無事接続のようです。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho-M5s2uFvBW-tM_imhSeQVOzNcM5puY_cJ4DCpGEAokCHQ_ed7MaHxO5s_LiYBNSCeo203mgrepGK_wR8k-0DtJiQOm5dFR2KAIP4akwD8JsnpxAg1Qm6sckyGsUHSDti3f8nenM-eW0uTY_VT6SVm2ESMrvFUflYq97TyEPQlHaQ5gCLNg2FyeVkFg/s1555/05.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho-M5s2uFvBW-tM_imhSeQVOzNcM5puY_cJ4DCpGEAokCHQ_ed7MaHxO5s_LiYBNSCeo203mgrepGK_wR8k-0DtJiQOm5dFR2KAIP4akwD8JsnpxAg1Qm6sckyGsUHSDti3f8nenM-eW0uTY_VT6SVm2ESMrvFUflYq97TyEPQlHaQ5gCLNg2FyeVkFg/s320/05.PNG" width="320" /></a></div><div><br /></div>ロケットモバイルの神プランですので、200kbpsは期待できるとのことでしたが、思ったよりダウンロードは出ている印象です。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirX0kunzg8_q6u6LhWzXm7SbN0D2I_QN41wHlu0ApfPhVGTb5K5Hu9FDnkeU1m-6saz_bIRjHSTM_K6o9zB94WKTtrNkpLQ5NbjQIKv3z7fzDUJzOj84HRH6ENQgiTEmi1FQPhxXJSwHfFjCkuWPnSSotmqkMEd_ERYOS9M3-yD-afhIKNMh8KGEAWMA/s1555/06.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="980" data-original-width="1555" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirX0kunzg8_q6u6LhWzXm7SbN0D2I_QN41wHlu0ApfPhVGTb5K5Hu9FDnkeU1m-6saz_bIRjHSTM_K6o9zB94WKTtrNkpLQ5NbjQIKv3z7fzDUJzOj84HRH6ENQgiTEmi1FQPhxXJSwHfFjCkuWPnSSotmqkMEd_ERYOS9M3-yD-afhIKNMh8KGEAWMA/s320/06.PNG" width="320" /></a></div><div><br /></div><p>インターネットも遅いですが、ちゃんと使えるようで、目的は達成しました。</p><p><br /></p><h2 style="text-align: left;">総括</h2><p>結果、かかった費用は以下です。</p><p><br /></p><p>初期費用</p><p> ロケットモバイル契約手数料 3400円</p><p> Aterm HT100LN 13,800円</p><p>月額費用</p><p> 神プラン 328円</p><p><br /></p><p>他の一般的なモバイルルーターであれば、もっと速度が出るので、比較にはなりませんが、</p><p>超低速インターネット環境が必要な場合は、こういった選択肢も考えられますので、参考までに。</p><p><br /></p><p><br /></p></div><iframe id="iframeRCE" style="background-color: transparent; display: none; height: 100%; left: 0px; position: fixed; top: 0px; width: 100%; z-index: 9999;"></iframe>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-32640744009018263512023-05-15T10:00:00.002+09:002023-11-19T00:24:51.095+09:00TensorFlowを活用した機械学習の可能性<p> こんにちは、今回の記事では<span lang="EN-US">TensorFlow</span>がどのようなものか、実際に実装してみての感想、メリットとデメリットについて紹介していこうと思います。</p><p><br /></p><p></p><h2 style="text-align: left;"><span lang="EN-US" style="font-size: 14pt;">TensorFlow</span><span style="font-size: 14pt;">って何?<span lang="EN-US"><o:p></o:p></span></span></h2>
<p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10.5pt;"><span lang="EN-US">TensorFlow(</span>テンソルフロー<span lang="EN-US">)</span>は、<span lang="EN-US">Google</span>が開発したオープンソースの機械学習ライブラリであり、<span lang="EN-US">Python</span>、<span lang="EN-US">C++</span>、<span lang="EN-US">Java</span>などのプログラミング言語で使用できます。様々な機械学習の実装のために必要なツールが組み込まれており、簡単に機械学習やニューロンネットワークなどを実装できます。</p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10.5pt;"><br /></p><h3 style="text-align: left;"><span style="font-size: 14pt;">導入している企業</span></h3><p></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"> <span lang="EN-US">TensorFlow</span>は実際に多くの企業が導入しています。以下が導入している企業例です。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt;">Coca-Cola <o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;"> 長年の課題であるモバイルでの購入証明機能の実現<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt;">Spotify<o:p></o:p></span></p><p class="MsoNormal" style="margin-left: 42pt;"><span lang="EN-US" style="font-size: 10pt;">TFX</span><span style="font-size: 10pt;">を使用したユーザー向けの情報をカスタマイズ<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt;">PayPal <o:p></o:p></span></p><p class="MsoNormal" style="text-indent: 42pt;"><span style="font-size: 10pt;">最先端の不正検出を実現<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt;">Twitter<o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-para-margin-left: 0gd; text-indent: 9.5pt;"><span style="font-size: 10pt;">ツイートのランク付け<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-para-margin-left: 0gd; text-indent: 9.5pt;"><span lang="EN-US" style="font-size: 10pt;"> </span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10.5pt;">
</p><p class="MsoNormal"><span style="font-size: 10pt;"> この他にも様々な企業が導入しています。詳しくは以下のサイトで確認してみてください。</span><span lang="EN-US"><br /><span style="font-size: 10pt;"> </span> </span><span style="font-size: x-small;"><span face="游明朝, serif" lang="EN-US">TensorFlow</span><span face="游明朝, serif">を選ぶ理由</span><span lang="EN-US"> </span><a href="https://www.tensorflow.org/about/case-studies?hl=ja" target="_blank">https://www.tensorflow.org/about/case-studies?hl=ja</a></span></p><p class="MsoNormal"><span style="font-size: x-small;"> </span></p><h2 style="text-align: left;"><span style="font-size: 14pt;">実際に使用してみた</span></h2><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"> 今回は「はやたす <span lang="EN-US">/ Python</span>チャンネル」の「たったこれだけ?!ゼロから作る画像認識<span lang="EN-US">AI</span>アプリ」を参考に<span lang="EN-US">TensorFolw</span>と<span lang="EN-US">Gradio</span>を使用して<span lang="EN-US">Google Colaboratory</span>で簡単なアプリを作成しました。詳しくは以下の<span lang="EN-US">URL</span>から動画を見てください。</span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"><br /></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;">「たったこれだけ?!ゼロから作る画像認識<span lang="EN-US">AI</span>アプリ」<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span lang="EN-US"><a href="https://youtu.be/I-JtV2CNWlM"><span style="font-size: 10pt;">https://youtu.be/I-JtV2CNWlM</span></a></span><span style="font-size: 10pt;"> <span lang="EN-US"><br />
<!--[endif]--><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;">動画内で使用するコード記載サイト「初心者のための<span lang="EN-US">TensorFlow2.0</span>入門」<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal">
</p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span lang="EN-US"><a href="https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ja"><span style="font-size: 10pt;">https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ja</span></a></span><span style="font-size: 10pt;"> <span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"><br /></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM5WO3HyEI6ynixUw72Fd-Jhx2XYJQQiL1sQXH6wWEvrRyZASzdUHFrKrO5m6tyM9uW33qvd7y-0O1rKSRQMAeX_xgJqTyTMkI_lpkYsgb50pmJ4HeyUjFXJM8W5H8_GE18Xs0z4RA_RSx724pbCE8VPHS48hZxqFx17uSznzEkgbrtkWdiUsquJMETg/s383/%E7%94%BB%E5%83%8F2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="189" data-original-width="383" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM5WO3HyEI6ynixUw72Fd-Jhx2XYJQQiL1sQXH6wWEvrRyZASzdUHFrKrO5m6tyM9uW33qvd7y-0O1rKSRQMAeX_xgJqTyTMkI_lpkYsgb50pmJ4HeyUjFXJM8W5H8_GE18Xs0z4RA_RSx724pbCE8VPHS48hZxqFx17uSznzEkgbrtkWdiUsquJMETg/s320/%E7%94%BB%E5%83%8F2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">作成したアプリ</div><br /><span style="font-size: 10pt;"><br /></span><p></p><p class="MsoNormal"><span style="font-size: x-small;"></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"> 実際に作成し、機械学習の知識や高度なプログラミングスキルがなくとも簡単にできると感じました。本来はニューラルネットワーク(人間の脳の仕組みを模した数理モデル)を実装する場合、複雑で高度な数学的知識や関数、プログラミングスキルや構成を考えなければいけないですが、<span lang="EN-US">TensorFlow</span>を使用することでこれらの作業が省け、ツールを使用するだけで簡単に実装できます。<span lang="EN-US"><o:p></o:p></span></span></p><p></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;">!!注意!!<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10.5pt;">
</p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10pt;"><span style="font-size: 10pt;">高度な機械学習システムを作成する際は機械学習とプログラミングに関するある程度の知識が必要であり、データセットはそれぞれに合ったものを使用しなくてはいけないことを忘れてはいけません。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10pt;"><span style="font-size: 10pt;"><br /></span></p><h2 style="text-align: left;"><span style="font-size: 14pt;">メリットとデメリット</span></h2><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span lang="EN-US" style="font-size: 10pt;">TensorFlow</span><span style="font-size: 10pt;">のメリットとデメリットをまとめました。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 12pt;">メリット<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">ニューラルネットワークを構築できる<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span lang="EN-US" style="font-size: 10pt;">TensorFlow</span><span style="font-size: 10pt;">はニューラルネットワークを構築できるツールがそろっているため、<span lang="EN-US">1</span>から作成する必要がなく、少ない作業量で実装ができます。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">ライブラリが豊富<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">ライブライが豊富であることで用途にあった機械学習を作成することができます。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">使用できる言語やデバイスが幅広い<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">言語は</span><span lang="EN-US">Python</span>、<span lang="EN-US">C++</span>、<span lang="EN-US">Java</span>など<span style="font-size: 10pt;">、デバイスは<span lang="EN-US">iOS</span>や<span lang="EN-US">Android</span>なども使用可能です。また、<span lang="EN-US">Google Colaboratory</span>でも実装ができます。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">安全な環境で分散学習を行うことができる<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">分散学習により、大容量のデータを扱うことができ、フォールトトレランス機能があり、障害が起きても安心して稼働させることができます。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 12pt;">デメリット<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">スペックが必要<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">高度なニューラルネットワークを実装や膨大なデータを取り扱う場合、計算量も増えるため、それ相応のスペックが求められます。一応、<span lang="EN-US">GPU</span>がなくとも利用可能ですが、パフォーマンスは下がるので注意です。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">計算グラフの構成変更ができない<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">高速演算を実現している計算グラフですが、一度構築した後に計算グラフを変更することができません。ニューラルネットワークの修正も不可能であり、結果によっては作業量が増える可能性があります。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 32.5pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; font-size: 10pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 10pt;">ソースコードが独特<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="margin-left: 10.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 1.0gd; text-indent: 10pt;">
</p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;">情報を多次元配列(テンソル)によって管理しているため、特徴的なコードになっています。それにより、<span lang="EN-US">TensorFlow</span>を使いこなすためにはある程度の知識が必要です。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;"><span style="font-size: 10pt;"><br /></span></p><h2 style="text-align: left;"><span style="font-size: 14pt;">まとめ</span></h2><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span style="font-size: 10pt;"> <span lang="EN-US">TensorFlow</span>は機械学習、特にニューラルネットワークを用いた機械学習を取り入れたいと考えている方にとってとてもいいツールであると言えます。多くの企業が導入していることからもわかる通り、様々な状況にあった機械学習を作成できることがわかります。ぜひ皆さんも触ってみてください。<span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoListParagraph" style="margin-left: 42pt; mso-para-margin-left: 0gd;">
</p><p class="MsoNormal" style="margin-left: 10.5pt; mso-para-margin-left: 1.0gd;"><span lang="EN-US" style="font-size: 10pt;">TensorFlow </span><span lang="EN-US"><a href="https://www.tensorflow.org/?hl=ja"><span style="font-size: 10pt;">https://www.tensorflow.org/?hl=ja</span></a></span><span lang="EN-US" style="font-size: 10pt;"> <o:p></o:p></span></p><br /><p></p>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-15378522918557696512023-05-11T13:16:00.003+09:002023-11-19T00:26:02.715+09:00GPT-4のbingでの使い方と機能の紹介 | ライタス株式会社<p> </p><p class="MsoNormal">こんにちは。今回は<span lang="EN-US">GPT-4</span>が<span lang="EN-US">bing</span>で使えるのでその使い方や機能を紹介したいと思います。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<h2 style="margin-left: 22pt; text-align: left; text-indent: -22pt;"><span lang="EN-US">GPT-4</span>とは?</h2><p class="MsoListParagraph" style="margin-left: 22pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--></p>
<p class="MsoListParagraph" style="margin-left: 22pt; mso-para-margin-left: 0gd;"><span lang="EN-US"><span style="mso-spacerun: yes;"> </span>GPT-4</span>とは、オープン<span lang="EN-US">AI</span>が開発した自然言語処理のモデルです。これは、<span lang="EN-US">GPT-3</span>の後継であり、約<span lang="EN-US">1.6</span>兆個のパラメーターを持ち、様々なタスクに対応できる汎用的なモデルです。<span lang="EN-US">GPT-4</span>は、文章生成や要約、質問応答、対話などのタスクにおいて、高い性能を示しています。<span lang="EN-US"><o:p></o:p></span></p>
<h2 style="margin-left: 22pt; text-align: left; text-indent: -22pt;">使い方</h2><p class="MsoListParagraph" style="margin-left: 22pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--></p>
<p class="MsoNormal" style="margin-left: 22pt; mso-char-indent-count: 1.0; text-indent: 10.5pt;">実は<span lang="EN-US">GPT-4</span>は新しい<span lang="EN-US">bing</span>でマイクロソフトがカスタマイズしたものを使うことができます。その使い方を説明していこうと思います。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l1 level1 lfo2; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-family: 游明朝; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-US">Windows</span>をお使いの方は<span lang="EN-US">edge</span>を開いていただくと右上の方に画像のようなマークがあります。</p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l1 level1 lfo2; mso-para-margin-left: 0gd; text-indent: -22pt;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgTmfbwZPpracmfDyqb1ngZk6HW0xHY5kWGrjv7xnCLHcf9-N9DXZjCz9xvoJOD6rgFFJiZTzN6wydG5Un0hMMrLHqmp4MLZFiVZhBZboV1w-lmoxjloYjmbzqqSrDk5QrobCU7G6oLQZVfX6ORf8xMBADI701u5v1VHzDO8N12femma1_gnlHh87MxLg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="519" data-original-width="635" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgTmfbwZPpracmfDyqb1ngZk6HW0xHY5kWGrjv7xnCLHcf9-N9DXZjCz9xvoJOD6rgFFJiZTzN6wydG5Un0hMMrLHqmp4MLZFiVZhBZboV1w-lmoxjloYjmbzqqSrDk5QrobCU7G6oLQZVfX6ORf8xMBADI701u5v1VHzDO8N12femma1_gnlHh87MxLg" width="294" /></a></div><br /><p></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><span lang="EN-US">2.<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;">
</span></span><!--[endif]-->次のような画面が表示されるので下の入力欄で聞きたいことを入力するだけです。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhDaBt8ARrAyyl0okK0vMSJZgCMNbGLgURpqyGdYk6b3zN5Xq0jszz1iW0TMfuDgv6p45pLIm8TiKnxSWO74NhrDK7kRc29EfyBIfe3Q-Rqcoafi3k4uVoywYxCxzI55ABSQVIiVEeaMlUujbY-CNpVJ_gcdc-1Z5gQLIDiBzJKyY0FA1oHcGKoZzcnDA" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="579" data-original-width="317" height="346" src="https://blogger.googleusercontent.com/img/a/AVvXsEhDaBt8ARrAyyl0okK0vMSJZgCMNbGLgURpqyGdYk6b3zN5Xq0jszz1iW0TMfuDgv6p45pLIm8TiKnxSWO74NhrDK7kRc29EfyBIfe3Q-Rqcoafi3k4uVoywYxCxzI55ABSQVIiVEeaMlUujbY-CNpVJ_gcdc-1Z5gQLIDiBzJKyY0FA1oHcGKoZzcnDA=w189-h346" width="189" /></a></div><br /><p></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><span lang="EN-US">3.<span style="font-family: "Times New Roman"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 7pt; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">windows</span>以外の方は<span lang="EN-US">bing</span>のサイトで左上にある「チャット」をクリックしていただくと使うことができます。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-para-margin-left: 0gd;"><span lang="EN-US"> </span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;">
</p><p class="MsoNormal"> 注意事項として、<span lang="EN-US">1</span>チャット<span lang="EN-US">6</span>回、<span lang="EN-US">1</span>日チャットが上限ですので、<span lang="EN-US">ChatGPT</span>をうまく併用して使うことをおすすめします。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><br /></p><h2 style="margin-left: 22pt; text-align: left; text-indent: -22pt;">できること</h2><p class="MsoListParagraph" style="margin-left: 22pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;">
</p><p class="MsoListParagraph" style="margin-left: 22pt; mso-para-margin-left: 0gd;"> この<span lang="EN-US">bing</span>ではチャットで検索や質問をするだけではなく、「作成」の欄でメールやブログの分などある程度指定して書いてもらうことができます。また、文章の長さも指定できるので用途に合わせた文章を書いてもらうことができます。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiHGlkUCltMR-pctUhMlO3dFDSvHuCJIFeoMbblsuCOo_Q4ZhSCX7yPRczfRmvqHzC2d6Pc-ttB9JTPjB1b2Jf29QwgR3NVfJ7dN1hagiTfFgUqblldx99O7K9tBRIJ7K5aeE0kcRSRpRpQnDm_6SmfTfEWFeljAxUos-r5hhVE8xetQEMV1fpc3Z9jiw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="579" data-original-width="261" height="459" src="https://blogger.googleusercontent.com/img/a/AVvXsEiHGlkUCltMR-pctUhMlO3dFDSvHuCJIFeoMbblsuCOo_Q4ZhSCX7yPRczfRmvqHzC2d6Pc-ttB9JTPjB1b2Jf29QwgR3NVfJ7dN1hagiTfFgUqblldx99O7K9tBRIJ7K5aeE0kcRSRpRpQnDm_6SmfTfEWFeljAxUos-r5hhVE8xetQEMV1fpc3Z9jiw=w207-h459" width="207" /></a></div><p class="MsoListParagraph" style="margin-left: 22pt; mso-para-margin-left: 0gd;"><br /></p><h2 style="margin-left: 22pt; text-align: left; text-indent: -22pt;">まとめ</h2><p class="MsoListParagraph" style="margin-left: 22pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><!--[if !supportLists]--></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;">
</p><p class="MsoListParagraph" style="margin-left: 22pt; mso-para-margin-left: 0gd;"> 今回は<span lang="EN-US">GPT-4</span>を体験できる<span lang="EN-US">bing</span>の使い方について解説しました。チャット形式で質問や検索だけではなく、メールやブログなどの幅広い種類の文章を書いてもらうことができるのでぜひ、使ってみてください。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -22pt;"><br /></p><p class="MsoListParagraph" style="margin-left: 44pt; mso-list: l1 level1 lfo2; mso-para-margin-left: 0gd; text-indent: -22pt;"><br /><br /></p>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-24252964256332802762023-04-13T18:30:00.003+09:002023-04-13T18:30:55.763+09:00今話題のChatGPTをお試ししました! | ライタス株式会社<p> こんにちは。この記事では<span lang="EN-US">ChatGPT</span>について紹介したいと思います。まずは、下の内容を読んでみてください。</p>
<p class="MsoNormal">「私は<span lang="EN-US">ChatGPT</span>という人工知能のモデルで、<span lang="EN-US">OpenAI</span>社によって開発された<span lang="EN-US">GPT-3.5</span>アーキテクチャを使用しています。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">私の目的は、人間のように自然な文章を生成したり、質問に答えたりすることです。訓練には、様々な言語で書かれた数億の文章が使用されており、その中から文法や語彙を学習しています。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">初心者の方が私を利用する際には、以下のポイントに注意していただけると良いでしょう。<span lang="EN-US"><o:p></o:p></span></p>
<ol start="1" style="margin-top: 0mm;" type="1">
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">質問や文章の明確化
私はあくまで機械であり、人間のように質問の意図を読み取ることはできません。そのため、質問や文章をできるだけ明確に伝えることが重要です。具体的な情報を提供することで、より正確な回答や文章を生成できます。<span lang="EN-US"><o:p></o:p></span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">文法の確認
私は訓練された文法に基づいて文章を生成しますが、時には文法の間違いによって不適切な回答や文章を生成することがあります。質問や文章を作成する際には、文法に注意することが大切です。<span lang="EN-US"><o:p></o:p></span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">多様なトピックに対応
私は様々なトピックにアクセスできますが、その情報が必ずしも正確であるとは限りません。必要に応じて、情報源を確認するなど、適切な判断をすることが重要です。<span lang="EN-US"><o:p></o:p></span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">私は学習します
私は常に学習しており、新しい情報を吸収しています。そのため、私が生成する回答や文章は、時には不正確であることがあります。しかし、フィードバックを受け取り、学習を続けることで、より正確な回答や文章を生成できるようになっていきます。<span lang="EN-US"><o:p></o:p></span></li>
</ol>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">以上が、私についての初心者向けの説明になります。私を利用する際には、上記のポイントを覚えていただけると、より正確な回答や文章を生成することができます。」<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">どうでしたか?この内容は<span lang="EN-US">ChatGPT</span>に書いてもらったものです。<span lang="EN-US"><o:p></o:p></span></p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmD_ACLl3WiaJma_t_uETZrLO3jEZWRkgY-02JzbkyYa2mMcIYK0QSGjKj_1lpeImaSM4wGctJPTmj9ZIU2xDSH2yX76ay32hO9Ie9FhNbem-hV6WcyK3xYrN4xf11mPYgy0tF30zZgw--xi8F0jVbi3PZ-XoQDVuvc7SZeyoJaXEoCUYSKGmIaR5W0Q/s426/GPT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="414" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmD_ACLl3WiaJma_t_uETZrLO3jEZWRkgY-02JzbkyYa2mMcIYK0QSGjKj_1lpeImaSM4wGctJPTmj9ZIU2xDSH2yX76ay32hO9Ie9FhNbem-hV6WcyK3xYrN4xf11mPYgy0tF30zZgw--xi8F0jVbi3PZ-XoQDVuvc7SZeyoJaXEoCUYSKGmIaR5W0Q/s320/GPT.png" width="311" /></a></div><br /><p align="center" class="MsoNormal" style="mso-char-indent-count: 1.0; text-align: center; text-indent: 10.5pt;"><br /></p>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">違和感なく、とてもクオリティが高い内容だと思います。他にも、表やメールの内容など様々なものを書いてくれます。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">今回は<span lang="EN-US">ChatGPT</span>について軽く紹介をしました。様々なことができるのでぜひ遊んでみてください。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ChatGPT: <a href="https://openai.com/blog/chatgpt">Introducing ChatGPT (openai.com)</a><span class="MsoHyperlink"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="MsoHyperlink"><span lang="EN-US"><o:p><span style="text-decoration: none;"> </span></o:p></span></span></p>
<p class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;">詳しいはじめ方はこちらのサイトがわかりやすいのでおすすめです。<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://www.marke-media.net/whitepaper/t008/">ChatGPT<span lang="EN-US"><span lang="EN-US">のログイン方法とは?日本語での使い方も解説! (marke-media.net)</span></span></a><o:p></o:p></span></p>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-83497903171721034512023-03-16T11:30:00.002+09:002023-03-16T11:30:06.862+09:00YubikeyでMFA認証を簡単に実現 | ライタス株式会社<p> Yubikeyをお試ししています。</p><p>Yubikeyとは、FIDO2という認証方式に対応した物理セキュリティキーデバイスのことです。</p><p>Amazonでも買えるので、お値段次第ではありますが、比較的気軽に導入できます。</p><p><a href="https://www.amazon.co.jp/dp/B07HBD71HL">Yubico セキュリティキー YubiKey 5 NFC</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR71wU7d_WHrv67X0p4mqzQu8pp9gELVPir_tjjf7xLfhD1JVHL2XmpZS-nyO-0tW14Hb2VvmAlqC5yqX8k-ZJY6nqlrI6gPWxngsQms5VjKy4wZ95U5beTRAfwFRfJFfV3ooXLkadhZEwcvZUSyrH_x-9zQbNtLwf-xVlSIcZDaBfby_Vg-IM_DqvQA/s4032/PXL_20230302_074043683.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR71wU7d_WHrv67X0p4mqzQu8pp9gELVPir_tjjf7xLfhD1JVHL2XmpZS-nyO-0tW14Hb2VvmAlqC5yqX8k-ZJY6nqlrI6gPWxngsQms5VjKy4wZ95U5beTRAfwFRfJFfV3ooXLkadhZEwcvZUSyrH_x-9zQbNtLwf-xVlSIcZDaBfby_Vg-IM_DqvQA/s320/PXL_20230302_074043683.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUdQj_CHBF12r57PGsoXDci9ScerYeyEdFTEBm3KlfmoPEV7hYwsm4W24H3CCIXCMHLWM77Fyyw_2_9v4_KhLqG2NpIkunwv2kteW7cMXRTwLJk64PLU_dLd3xG8rPb3FsX7fJtwOl4BWiC09REQ14FyAy7WdSS1YsmxoAioHpbout6_IWKpmWsy9bUg/s4032/PXL_20230302_074051014.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUdQj_CHBF12r57PGsoXDci9ScerYeyEdFTEBm3KlfmoPEV7hYwsm4W24H3CCIXCMHLWM77Fyyw_2_9v4_KhLqG2NpIkunwv2kteW7cMXRTwLJk64PLU_dLd3xG8rPb3FsX7fJtwOl4BWiC09REQ14FyAy7WdSS1YsmxoAioHpbout6_IWKpmWsy9bUg/s320/PXL_20230302_074051014.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCpVqhL6PylcuwhLoM6BkkzxokjWx1HQHYRZn_T-qguHFGFjZ3CvDBc1W0kyvJRL4gTjC5kUpaHfGsxSOkUHzNiXrXFo9qTfFkAjJW-LxNTtkG5JdFaJ2FQMhI70cMwjxvxnHZXMLoWR_Tf2XDu-fN68M_9OtYuZ7u2o5Nm_Vy8Q5Cp898UIk5lLEfVQ/s4032/PXL_20230302_074122174.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCpVqhL6PylcuwhLoM6BkkzxokjWx1HQHYRZn_T-qguHFGFjZ3CvDBc1W0kyvJRL4gTjC5kUpaHfGsxSOkUHzNiXrXFo9qTfFkAjJW-LxNTtkG5JdFaJ2FQMhI70cMwjxvxnHZXMLoWR_Tf2XDu-fN68M_9OtYuZ7u2o5Nm_Vy8Q5Cp898UIk5lLEfVQ/s320/PXL_20230302_074122174.jpg" width="240" /></a></div><div><br /></div>FIDO2に対応しているサービスであれば、問題なく使用できると思います。<div>私は、まずは、GoogleログインとAWSのログインに登録してみました。</div><div><br /></div><div>MS365も対応できるのですが、Azure Active Directoryの設定で、FIDO2デバイスの許可をONにしないと使えませんでした。</div><div><br /></div><div>英語ですが、Youtubeに手順を解説している動画がありましたので、必要がある方はこちらを見たら早いと思います。</div><div><br /></div><div><a href="https://www.youtube.com/watch?v=m9nslljiFas">https://www.youtube.com/watch?v=m9nslljiFas</a></div><div><br /></div><div>簡単に手順を書いておくと、</div><div><br /></div><div>1.Azure Active Directoryの画面を開く</div><div>2.[保護とセキュリティ保護]の項目の下に、[認証方法]というメニューがあるので開く</div><div>3.[ポリシー]メニューの[FIDO2セキュリティキー]という項目を開く</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW4FBFUkOZ8dZKBr77EwVOArJrFN8OpO97lHuRLZegB9liYN7SVotliLgy82PLL0KU02lueTKtIk5-GkCwuxAJRtd7GXL63rnURrw9LYPF_BAPlyFoe1k_w3vO3NP5SuImweL4JDM9r6UOjR2iwKX0E2iE8whw3YHXqEfMxlvanOKDI2Xer2WZU4PAmg/s1304/AADFIDO2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="655" data-original-width="1304" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW4FBFUkOZ8dZKBr77EwVOArJrFN8OpO97lHuRLZegB9liYN7SVotliLgy82PLL0KU02lueTKtIk5-GkCwuxAJRtd7GXL63rnURrw9LYPF_BAPlyFoe1k_w3vO3NP5SuImweL4JDM9r6UOjR2iwKX0E2iE8whw3YHXqEfMxlvanOKDI2Xer2WZU4PAmg/s320/AADFIDO2.PNG" width="320" /></a></div>4.[有効化およびターゲット]のところを有効にすればOKで、対象を個別のユーザーかすべてのユーザーを選択すればよいです。</div><div><br /><p>簡単ですが、Yubikeyでの認証は、携帯電話での認証や、SMS認証より手軽なので、ストレスから解放されそうです。</p></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-32959391023076996882023-01-05T10:00:00.003+09:002023-01-05T10:00:00.160+09:00Qrio Lock使用感レビュー | ライタス株式会社<p>こんにちは。ライタス株式会社の岡田です。</p><p><br /></p><p>11月下旬にスマートロックで有名なキュリオロック(Qrio lock Q-SL2)を買ってもらっていて、</p><p>約1か月使用したので、レビューをブログに残したいと思います。</p><p> </p><p>結果としては、評判通り便利で買ってよかったと思える製品です。</p><p><br /></p><p>以前は、急いでいるときの物理カギでの施錠・解錠の動作がなかなかストレスでしたが、</p><p>キュリオロックの特徴であるオートロック・ハンズフリー解錠機能によりそれがなくなりました。</p><p><br /></p><p>また、別途バッテリーや充電器の購入が不要で、</p><p>電池交換も取り付けたまま上部から簡単に交換できるのでありがたいです。</p><p><br /></p><p>キュリオロックの費用対効果は、以下のようになります。</p><p>使用期間10年で試算(10年間=3,650日)</p><p>本体価格:25,300円</p><p>25,300円 ÷ 3,650日 = 6.9円</p><p>1回の使用で、6.9円(小数点第一を四捨五入)</p><p><br /></p><p>できることとしては、</p><p>①スマホアプリで施錠・解錠②オートロック③ハンズフリー解錠とシンプルですが、</p><p>毎日のちょっとした便利に対する対価としては、十分に価値があると思います。</p><p><br /></p><p>反応が遅い・動作しないといった口コミも読みましたが、</p><p>今のところオートロックも動作し、ハンズフリー解錠も問題ありません。</p><p>iPhone、Apple Watchどちらからも動作良好です。</p><p><br /></p><p>以下は開封・取り付けです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_eJPPes03QmV5H3wAoGWbjILACHxA2h-dpzEjE7KU4wRc2h9B8m8U7Ut2N0Y9mNYPB15Zf6mgvdzdBvMJWzvbProPkvoX8OfRulwm0c1xPihJZTgtnSyKM9rEGxv4a6r8m4Q45ggZs5BC7tnU-Y3SOcx6ADJr34mLICIH6XW8sQoudGzJieUu1UfkuA/s4032/IMG_3735.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_eJPPes03QmV5H3wAoGWbjILACHxA2h-dpzEjE7KU4wRc2h9B8m8U7Ut2N0Y9mNYPB15Zf6mgvdzdBvMJWzvbProPkvoX8OfRulwm0c1xPihJZTgtnSyKM9rEGxv4a6r8m4Q45ggZs5BC7tnU-Y3SOcx6ADJr34mLICIH6XW8sQoudGzJieUu1UfkuA/s320/IMG_3735.JPG" width="320" /></a></div><p>【キュリオロック】付属品は充実しています。</p><p>・本体</p><p>・電池(CR123A)×2本</p><p>・サタムーンホルダー(S/M/L)</p><p>・高さ調節プレート(大/小)</p><p>・固定用ネジ</p><p>・本機用両面テープ</p><p>・開閉センサー</p><div>・開閉センサー用の両面テープ</div><div><p></p><p>・取扱説明書、スタートガイト</p><p>【キュリオハブ】</p><p>・本体</p><p>・リファレンスガイド</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDBV3YyPNjq8kd0a8lMYwU-qBcIHHdG5j5mUD2jJF1P7iX_LgHBZUKp_9fbNQw7X8980NaIv3K_M8GaX5XNHm2eN-aw6rRx8kRV0Zk2wqyzMWF-30fmMHJ7QboR8hRu2O7A50kdvfAnxeMfTeib-Tbw_tpUpkqqnlnszn-UNc3IqhPmW9iHkMyUMX8Q/s4032/IMG_3787.JPG" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br /></a></div><p>【取り付け】</p><p>スタートガイドを読んで進めていきます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyeW97yGAkGegD3jH8Q2ORdcFn1pV7I5NfX5a2SP2CBMjKIVWc7Pr6cb9-jxSC_axS6c-cssYf_GqDpCZKG2TMwHY4UxiWLIkMaXDYk5BqhHjFn27a5lt7L5nP992jEhIgUy9-fkIBQZq1hQ1kjHVwxNt8waksHEGeAy2CJTLsiBetU_jwnsj4pQLAfg/s4032/IMG_3738.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyeW97yGAkGegD3jH8Q2ORdcFn1pV7I5NfX5a2SP2CBMjKIVWc7Pr6cb9-jxSC_axS6c-cssYf_GqDpCZKG2TMwHY4UxiWLIkMaXDYk5BqhHjFn27a5lt7L5nP992jEhIgUy9-fkIBQZq1hQ1kjHVwxNt8waksHEGeAy2CJTLsiBetU_jwnsj4pQLAfg/s320/IMG_3738.JPG" width="240" /></a></div><p><br /></p><p>玄関ドアのサタムーンに合うよう今回はつまみホルダーSサイズを使用しました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRuBz38Cha8wGzZbrog_v0zvw79iZwIMaQVTiPKLXjU391EGlt1q3PGpK0AA66itfzFv6FldjiWHUFtKAD3mWynEyiVHbjbmvqeUsD7R92pBc__qm2n-M-TTIRweN_V6o_2uLPktYA9SgBKJetn5SRP8p43EUQWggf_Rh8xhbqM87tqvDrTVkQXKadDQ/s4032/IMG_3739.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRuBz38Cha8wGzZbrog_v0zvw79iZwIMaQVTiPKLXjU391EGlt1q3PGpK0AA66itfzFv6FldjiWHUFtKAD3mWynEyiVHbjbmvqeUsD7R92pBc__qm2n-M-TTIRweN_V6o_2uLPktYA9SgBKJetn5SRP8p43EUQWggf_Rh8xhbqM87tqvDrTVkQXKadDQ/s320/IMG_3739.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p>つまみホルダーを取り付けた本体をドアに仮あてし、つまみが空回りしないか、ひっかかりなく回せるか確認します。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5HBpB5Mdj5-NtEOM3cHEEqSJ5-vCaIFigslXaMIVOW0sb2YnZnX-z4KE3ZGxeEpykNb8dN7MY99gQ2Z3LRfmcwkh3yFRndmnx6Dr6yH-brgIPZix5Bqgq0djMXgLlnNHHApH8Wmb5-aXYuDIjunCBDW9XNPa-2O4wKrZ7UHKwhWYy11K56mui3QC8Eg/s4032/IMG_3742.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5HBpB5Mdj5-NtEOM3cHEEqSJ5-vCaIFigslXaMIVOW0sb2YnZnX-z4KE3ZGxeEpykNb8dN7MY99gQ2Z3LRfmcwkh3yFRndmnx6Dr6yH-brgIPZix5Bqgq0djMXgLlnNHHApH8Wmb5-aXYuDIjunCBDW9XNPa-2O4wKrZ7UHKwhWYy11K56mui3QC8Eg/s320/IMG_3742.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p>次に電源を入れるのですが、電池を入れるだけでOKです。</p><p>2本目を入れてすぐに電源が入るようなので、LEDが赤→青の順に点灯し、確認音が1回鳴るまでは一瞬でした。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjE_ovMnkzrir7n0_sQz5JL_6swBRSribzD5h_04u4EqNXKGGO5Kyb385HAtzF3wfjS4tRETVYfYnurP3LyuE3dA9eSMFert_q5Kg7kx_ZP5sGVLsMHpHRCr1s_sQqqU9FMfFnqAdyNZinucow1xS6uECgzThj1vin6hRPVewn5DUYvfhncY-iVou4Q/s4032/IMG_3767.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjE_ovMnkzrir7n0_sQz5JL_6swBRSribzD5h_04u4EqNXKGGO5Kyb385HAtzF3wfjS4tRETVYfYnurP3LyuE3dA9eSMFert_q5Kg7kx_ZP5sGVLsMHpHRCr1s_sQqqU9FMfFnqAdyNZinucow1xS6uECgzThj1vin6hRPVewn5DUYvfhncY-iVou4Q/s320/IMG_3767.JPG" width="240" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf_ar6dOPDYYaJVW6Q533z9t6vf02R7-KWw9obI-nA4UwJlz8Pp4MkHqRG_X9N9ObfeRQQYq7xFRPj81OFF4YoMo2tzfy4jEdV2CXQbPkDnBINPUtnteEzcH6-e6m0gToWKVAtkYMLVlj3YvgZyzxgjHwvh5Fc24X1HjL4sC6Hwttr3sxJTA_Sbim1Yw/s4032/IMG_3769.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf_ar6dOPDYYaJVW6Q533z9t6vf02R7-KWw9obI-nA4UwJlz8Pp4MkHqRG_X9N9ObfeRQQYq7xFRPj81OFF4YoMo2tzfy4jEdV2CXQbPkDnBINPUtnteEzcH6-e6m0gToWKVAtkYMLVlj3YvgZyzxgjHwvh5Fc24X1HjL4sC6Hwttr3sxJTA_Sbim1Yw/s320/IMG_3769.JPG" width="320" /></a></div><p><br /></p><p>電源を入れた後は、本体に両面テープをつけドアに本体を張り付けます。</p><p>開閉センサーもドア枠に張り付けて設置完了です。</p><p>今回は高さ調整をしていないので、ドライバーは使用せずに設置できました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpwPY88oeIrhQVFQXey85SNgZcQvunO0Tx3tosbZ4Cq28WFJ-IefKmKXZ8gybVmZtYXGPykNkPFWL0CWp_UosEav9mLJ0maBp-YhZ633PPC8YfoMwUB3mZBQwe1f8jx_7zDrOfxbmbcBXlZ-6Ls33nAdHh7SH4bAaIKXVDZOS5ZVwjvQwwvpA3A9XWuA/s4032/IMG_3780.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpwPY88oeIrhQVFQXey85SNgZcQvunO0Tx3tosbZ4Cq28WFJ-IefKmKXZ8gybVmZtYXGPykNkPFWL0CWp_UosEav9mLJ0maBp-YhZ633PPC8YfoMwUB3mZBQwe1f8jx_7zDrOfxbmbcBXlZ-6Ls33nAdHh7SH4bAaIKXVDZOS5ZVwjvQwwvpA3A9XWuA/s320/IMG_3780.JPG" width="240" /></a></div><br /><p>キュリオハブは、コンセントに挿し電源ボタンを押すだけです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOaScX592Y8LHpE8eZMr90aSTLxaDvUwLmRAXvNoZyMF8BaNxO4PJ7k775OtdYRrLZ2J603aaQZvXexCC5MEr4jhnctR3BfXnJH3t2uF14QPS3KHcbsDNTRpU4bBVuh-zYMkGg_ZJIlA-AWlejnHLKopwEs7iGr2UX8AkU8WbjnPqH52vGYJlge3A3Jg/s4032/IMG_3791.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOaScX592Y8LHpE8eZMr90aSTLxaDvUwLmRAXvNoZyMF8BaNxO4PJ7k775OtdYRrLZ2J603aaQZvXexCC5MEr4jhnctR3BfXnJH3t2uF14QPS3KHcbsDNTRpU4bBVuh-zYMkGg_ZJIlA-AWlejnHLKopwEs7iGr2UX8AkU8WbjnPqH52vGYJlge3A3Jg/s320/IMG_3791.JPG" width="240" /></a></div><br /><p>設置後、少なくとも私の使用しているiPhoneでは、</p><p>解錠のタイミングはハッキリとはわかりませんが、</p><p>エレベーターで4階まであがり、ドアにつくまでには解錠されています。</p><p>キュリオロックのアプリについても起動2~3秒で、問題なく解錠・施錠できています。</p><p><br /></p><p>オートロックもエレベーターに乗り込むまでには施錠の音がしています。</p><p><br /></p><p>総じて使い始めてよかったと思える製品でした。</p><div><br /></div><p><br /></p></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-67613526368408515012022-12-27T18:46:00.002+09:002023-04-12T14:11:27.646+09:00オープンデータの人口情報をPowerBIに地図に表現するまで | ライタス株式会社<style>
/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
body {
font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif);
font-size: var(--vscode-markdown-font-size, 14px);
padding: 0 26px;
line-height: var(--vscode-markdown-line-height, 22px);
word-wrap: break-word;
}
#code-csp-warning {
position: fixed;
top: 0;
right: 0;
color: white;
margin: 16px;
text-align: center;
font-size: 12px;
font-family: sans-serif;
background-color:#444444;
cursor: pointer;
padding: 6px;
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
}
#code-csp-warning:hover {
text-decoration: none;
background-color:#007acc;
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
}
body.scrollBeyondLastLine {
margin-bottom: calc(100vh - 22px);
}
body.showEditorSelection .code-line {
position: relative;
}
body.showEditorSelection .code-active-line:before,
body.showEditorSelection .code-line:hover:before {
content: "";
display: block;
position: absolute;
top: 0;
left: -12px;
height: 100%;
}
body.showEditorSelection li.code-active-line:before,
body.showEditorSelection li.code-line:hover:before {
left: -30px;
}
.vscode-light.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(0, 0, 0, 0.15);
}
.vscode-light.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(0, 0, 0, 0.40);
}
.vscode-light.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
.vscode-dark.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 255, 255, 0.4);
}
.vscode-dark.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 255, 255, 0.60);
}
.vscode-dark.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
.vscode-high-contrast.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 160, 0, 0.7);
}
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 160, 0, 1);
}
.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
img {
max-width: 100%;
max-height: 100%;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:focus,
input:focus,
select:focus,
textarea:focus {
outline: 1px solid -webkit-focus-ring-color;
outline-offset: -1px;
}
hr {
border: 0;
height: 2px;
border-bottom: 2px solid;
}
h1 {
padding-bottom: 0.3em;
line-height: 1.2;
border-bottom-width: 1px;
border-bottom-style: solid;
}
h1, h2, h3 {
font-weight: normal;
}
table {
border-collapse: collapse;
}
table > thead > tr > th {
text-align: left;
border-bottom: 1px solid;
}
table > thead > tr > th,
table > thead > tr > td,
table > tbody > tr > th,
table > tbody > tr > td {
padding: 5px 10px;
}
table > tbody > tr + tr > td {
border-top: 1px solid;
}
blockquote {
margin: 0 7px 0 5px;
padding: 0 16px 0 10px;
border-left-width: 5px;
border-left-style: solid;
}
code {
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
font-size: 1em;
line-height: 1.357em;
}
body.wordWrap pre {
white-space: pre-wrap;
}
pre:not(.hljs),
pre.hljs code > div {
padding: 16px;
border-radius: 3px;
overflow: auto;
}
pre code {
color: var(--vscode-editor-foreground);
tab-size: 4;
}
/** Theming */
.vscode-light pre {
background-color: rgba(220, 220, 220, 0.4);
}
.vscode-dark pre {
background-color: rgba(10, 10, 10, 0.4);
}
.vscode-high-contrast pre {
background-color: rgb(0, 0, 0);
}
.vscode-high-contrast h1 {
border-color: rgb(0, 0, 0);
}
.vscode-light table > thead > tr > th {
border-color: rgba(0, 0, 0, 0.69);
}
.vscode-dark table > thead > tr > th {
border-color: rgba(255, 255, 255, 0.69);
}
.vscode-light h1,
.vscode-light hr,
.vscode-light table > tbody > tr + tr > td {
border-color: rgba(0, 0, 0, 0.18);
}
.vscode-dark h1,
.vscode-dark hr,
.vscode-dark table > tbody > tr + tr > td {
border-color: rgba(255, 255, 255, 0.18);
}
</style>
<style>
/* Tomorrow Theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
color: #8e908c;
}
/* Tomorrow Red */
.hljs-variable,
.hljs-template-variable,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
.hljs-deletion {
color: #c82829;
}
/* Tomorrow Orange */
.hljs-number,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params,
.hljs-meta,
.hljs-link {
color: #f5871f;
}
/* Tomorrow Yellow */
.hljs-attribute {
color: #eab700;
}
/* Tomorrow Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet,
.hljs-addition {
color: #718c00;
}
/* Tomorrow Blue */
.hljs-title,
.hljs-section {
color: #4271ae;
}
/* Tomorrow Purple */
.hljs-keyword,
.hljs-selector-tag {
color: #8959a8;
}
.hljs {
display: block;
overflow-x: auto;
color: #4d4d4c;
padding: 0.5em;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
</style>
<style>
/*
* Markdown PDF CSS
*/
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif, "Meiryo";
padding: 0 12px;
}
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
border-radius: 3px;
overflow-x: auto;
white-space: pre-wrap;
overflow-wrap: break-word;
}
pre:not(.hljs) {
padding: 23px;
line-height: 19px;
}
blockquote {
background: rgba(127, 127, 127, 0.1);
border-color: rgba(0, 122, 204, 0.5);
}
.emoji {
height: 1.4em;
}
code {
font-size: 14px;
line-height: 19px;
}
/* for inline code */
:not(pre):not(.hljs) > code {
color: #C9AE75; /* Change the old color so it seems less like an error */
font-size: inherit;
}
/* Page Break : use <div class="page"/> to insert page break
-------------------------------------------------------- */
.page {
page-break-after: always;
}
</style>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
<body>
<script>
mermaid.initialize({
startOnLoad: true,
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
? 'dark'
: 'default'
});
</script>
<p>代表の箕谷です。
成り行きでオープンデータに関する会合や、イベントに一時参加することが多かった時期がありますが、最近ご無沙汰している感じでちょっと浦島太郎です。
弊社は八王子市に本店がありますので、八王子市の人口データを地図にプロットしてみようというお題です。その時の記録を以下に残してみようと思います。</p>
<h1 id="%E7%AC%AC1%E7%AB%A0-%E4%BD%9C%E6%A5%AD%E6%96%B9%E9%87%9D%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%99%E3%82%8B">第1章 作業方針を検討する</h1>
<p>まずは、お題目からどのような方法で解決できるかを検討します。
今回は「八王子市の地区別人口分布をPowerBIで表現する」をゴールにしようと思います。
PowerBIの概要等は、本記事では割愛しまして、データをどのように取り込めるのか、地図上にマッピングするためにどのような作業が必要なのかというところから紹介します。</p>
<p>作業方針としては、以下のようになるかなと思います。</p>
<ul>
<li>地区別人口データの収集</li>
<li>PowerBIで取り込めるデータへの整形</li>
<li>地図マッピングに必要な緯度経度情報の収集</li>
<li>PowerBIへの取り込みとデータリンク付け</li>
<li>ダッシュボード完成</li>
</ul>
<h1 id="%E7%AC%AC2%E7%AB%A0-%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E5%8F%8E%E9%9B%86">第2章 データソースの収集</h1>
<h2 id="%E7%AC%AC1%E7%AF%80-%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%81%82%E3%82%8B%E3%81%A8%E3%81%93%E3%82%8D%E3%82%92%E6%8E%A2%E3%81%99">第1節 データのあるところを探す</h2>
<p>まずはデータがないと始まりませんが、人口データが公開されている場所を調べます。</p>
<p>一般的には総務省統計局から取得することになると思うのですが、推計値や都道府県レベルのデータになってしまうので、ちょっと扱いにくいです。</p>
<p>https://www.stat.go.jp/data/jinsui/</p>
<p>八王子市では、オープンデータを公開していて、町丁別世帯数及び人口が公開されていますが、各区画の人数で合算されているので、いまいち使いにくいです。</p>
<p>https://www.city.hachioji.tokyo.jp/hachiouji/jinko/004/index.html</p>
<p>年齢別データも公開されているので、こちらからGETしてくることにします。
https://www.city.hachioji.tokyo.jp/hachiouji/jinko/003/p030701.html</p>
<p>ここからデータを取得します。
今回は完全自動化は目指していませんので、とりあえず最新のExcel ファイルをGETしてくることにします。</p>
<p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI5j_KqiJXu08pIbEkc_AET0ZzNNPEsGBmxaBpOdzKdO1fpe-rLvMJtGDQg20Iq4iuCJeWdBhXWtNK5vOms-8RC2sg1xWBq-NuORWVLpm3i0ujQHaE7_VawQyto-d_0NTP62AdnhqifPWpTX2kLvy8svE5TpmvzGQaq5880u-DZ6Wli0tp22TOO2gtsQ/s1185/population-hachioji.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="696" data-original-width="1185" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI5j_KqiJXu08pIbEkc_AET0ZzNNPEsGBmxaBpOdzKdO1fpe-rLvMJtGDQg20Iq4iuCJeWdBhXWtNK5vOms-8RC2sg1xWBq-NuORWVLpm3i0ujQHaE7_VawQyto-d_0NTP62AdnhqifPWpTX2kLvy8svE5TpmvzGQaq5880u-DZ6Wli0tp22TOO2gtsQ/s320/population-hachioji.PNG" width="320" /></a></div><br /></p>
<h2 id="%E7%AC%AC2%E7%AF%80-%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%84%E5%BD%A2%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B">第2節 データを使いやすい形に変換する</h2>
<p>とってきたExcelになっているので、データとしては何とか処理できると思いますが、PowerBIで使うには、データの配置が悪すぎるので、データとして使いやすい形式(1行1データ)に修正していきます。</p>
<p>年齢別データは、"なぜか"隠しシートになっている"データ"あるので、これを料理していきます。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE6MHvqJUZasMgM7upg1LW_1Dw8pQmm1kptoAQa1yvid1XLOC87SFedTUsAgpHde4_n6E54yprMGOdjiiPYVvAszZRi1bfWyPPo8jdg2Pr8LnGklSixc9U7UswVSiCpZxg4XATVNEW6G1BFYxuu6qBe84d2blEhuOj2DkS1LfzbQirrAPyKZbVHLSXiQ/s1184/population-hachioji-hidden.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="705" data-original-width="1184" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE6MHvqJUZasMgM7upg1LW_1Dw8pQmm1kptoAQa1yvid1XLOC87SFedTUsAgpHde4_n6E54yprMGOdjiiPYVvAszZRi1bfWyPPo8jdg2Pr8LnGklSixc9U7UswVSiCpZxg4XATVNEW6G1BFYxuu6qBe84d2blEhuOj2DkS1LfzbQirrAPyKZbVHLSXiQ/s320/population-hachioji-hidden.PNG" width="320" /></a></div><br /></p>
<p>さすがにここはVBAで実行していくしかなかったので、力業で解決していきます。</p>
<p><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17A1drTiV2vBoVT42t0Vod6jXTd73T2MpmUMeD20h3wNW6KSuQJNSS-Nx3Skea13K9-YsY8roBdIeSBSTFWTlzvcvhxj7KDWA4LCZU9Ct8FkaZmBp1ZNtlgoI6KMKH0mCbE5by3HjML3dzeho5SOjrIyrrsSGBSt0SkFkYX_CfXWNzQh7BRVbKBwdTA/s691/clean-population-data.PNG" style="display: block; padding: 1em 0; text-align: center;"><img alt="" border="0" data-original-height="653" data-original-width="691" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17A1drTiV2vBoVT42t0Vod6jXTd73T2MpmUMeD20h3wNW6KSuQJNSS-Nx3Skea13K9-YsY8roBdIeSBSTFWTlzvcvhxj7KDWA4LCZU9Ct8FkaZmBp1ZNtlgoI6KMKH0mCbE5by3HjML3dzeho5SOjrIyrrsSGBSt0SkFkYX_CfXWNzQh7BRVbKBwdTA/s320/clean-population-data.PNG" width="320" /></a></div></p>
<p>1列目に町名を残しているのは、あとで地図にマッピングするためです。</p>
<h2 id="%E7%94%BA%E5%90%8D%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E7%B7%AF%E5%BA%A6%E7%B5%8C%E5%BA%A6%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B">町名に対応する緯度経度を取得する</h2>
<p>いわゆるジオコーディングですが、弊社取引先の情報試作室相良様謹製のジオコーディングツールを使ってみたいと思います。
このジオコーディングは、ローカルでもPythonで稼働できるという優れものですが、今回は公開されているAPI経由でコマンドラインベースで取得しようと思います。</p>
<p><a href="https://www.info-proto.com/jageocoder/" target="_blank">https://www.info-proto.com/jageocoder/</a></p>
<p>まずは町名一覧は、町丁別世帯数及び人口のデータソースからとってくることにして、PowerShellのシェルを使って取得します。
PowerShellに、以下コマンドを実行すると緯度を取得できます。</p>
<pre><code>SHELL> $res = Invoke-RestMethod -Method Get -Uri "https://jageocoder.info-proto.com/geocode?addr=東京都八王子市"
SHELL> $res.node.x
139.316075
SHELL> $res.node.y
35.66657
</code></pre>
<p>これをうまく繰り返せば取得できそうだということで、こんなシェルを組んでみます。</p>
<pre><code>$fileName = "city.txt"
$file = (Get-Content -Encoding utf8 $fileName) -as [string[]]
$geoURL = "https://jageocoder.info-proto.com/geocode?addr=東京都八王子市"
$Datas=@()
foreach ($line in $file) {
$Data = New-Object PSObject | Select-Object city, lot, lat
$Data.city = $line
$query = $geoURL + $line
$tlot = Invoke-RestMethod -Method Get -Uri $query
$Data.lat = $tlot.node.x
$Data.lot = $tlot.node.y
$Datas += $Data
}
$OutputFilename = "geo.csv"
$Datas | Export-Csv $OutputFilename -Encoding Default
</code></pre>
<p>Google APIを使うパターンはこちらが参考になると思います。
https://www.northdetail.co.jp/blog/1478/</p>
<h1 id="%E7%AC%AC3%E7%AB%A0-powerbi%E3%81%A7%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B">第3章 PowerBIでダッシュボードを作成する</h1>
<h2 id="%E7%AC%AC1%E7%AF%80-%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF">第1節 データ取り込み</h2>
<p>PowerBIでデータを取り込んでいきます。
この辺は、基本的な使い方になろうかと思いますので割愛します。</p>
<h2 id="%E7%AC%AC2%E7%AF%80-%E7%94%B7%E5%A5%B3%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8B%E3%82%89%E5%90%88%E8%A8%88%E8%A1%8C%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B">第2節 男女データから合計行を作成する</h2>
<p>この章も割愛しますが、クイックメジャーで作成するのが楽だと思います。</p>
<h2 id="%E7%AC%AC3%E7%AF%80-%E7%94%BA%E5%90%8D%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A8%E7%B7%AF%E5%BA%A6%E7%B5%8C%E5%BA%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%95%E3%81%9B%E3%82%8B">第3節 町名データと緯度経度データをリンクさせる</h2>
<p>まずはリレーションを張っていきます。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhErEc4MSxD5WW0RwpozB2YYMzWeLireS0sStOyKdwStin7O31ZSPximaTf3TMp4Fz8nv4K3Ftrp0XDTIm3hH87i1dzSJR_26kpTX_vQAnvcCiQpI1XJ0SrrrBFSlTqp8FooAgOZY4nF1nW9lOrTVqkG9jXeYb4RAVzvVFbWyTnIkqFbiybb0EZi072lA/s695/relationship-addr.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="583" data-original-width="695" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhErEc4MSxD5WW0RwpozB2YYMzWeLireS0sStOyKdwStin7O31ZSPximaTf3TMp4Fz8nv4K3Ftrp0XDTIm3hH87i1dzSJR_26kpTX_vQAnvcCiQpI1XJ0SrrrBFSlTqp8FooAgOZY4nF1nW9lOrTVqkG9jXeYb4RAVzvVFbWyTnIkqFbiybb0EZi072lA/s320/relationship-addr.PNG" width="320" /></a></div><br />
<p>タイトル行がいい加減なのはご愛敬ですが、住所名称と緯度経度の値が紐づけばOKです。
紐づかない場合は、データが重複していたり(1敗)、町名の数字が全角になっていたり(1敗)しているので、変換していきながら調整していきます。
私の場合は、サクラエディタで一括置換を活用しながら対応していましたが、VSCodeとかで調整してもいいと思いますし、元データから抜いてくるときにVBAとかで調整してもいいと思います。</p>
<h2 id="%E7%AC%AC4%E7%AF%80-%E5%9C%B0%E5%9B%B3%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B">第4節 地図タイルにデータを設定する</h2>
<p>ここまで来てやっとメインディッシュですが、地図タイルの使い方で結構苦労しました。
地図ビジュアルには、「マップ」と「塗り分け地図」の2種類がありますが、基本的な使い方は(たぶん)一緒です。
ただ、「塗り分け地図」のほうは、市レベルまでなら行けそうなのですが、町名データになったときに追従してくれず、今回作成したーデータ以外に郵便番号データと紐づけたものが必要になってくるかもしれません。</p>
<p>https://learn.microsoft.com/ja-jp/power-bi/visuals/power-bi-visualization-filled-maps-choropleths?tabs=powerbi-desktop</p>
<p>設定は単純なんですが、こんな感じです。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYXpqaejdNPgwvbI282uOI0K7nNp5AW9TqdadAxK1ClPQbEKxfCyfxRLGX_662q8Lg70T1_hpJuE9iFi3jxxElBqLccK5_XjgZf6q38xVF0u7Dom5bZrYO-BmEMhNTlROUIjg3hd6Jvj4TneOb2naUfJHx-NkXQiH3Zz97x5mJpxG1G_VAgikaPJVNjA/s332/map-setting.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="332" data-original-width="180" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYXpqaejdNPgwvbI282uOI0K7nNp5AW9TqdadAxK1ClPQbEKxfCyfxRLGX_662q8Lg70T1_hpJuE9iFi3jxxElBqLccK5_XjgZf6q38xVF0u7Dom5bZrYO-BmEMhNTlROUIjg3hd6Jvj4TneOb2naUfJHx-NkXQiH3Zz97x5mJpxG1G_VAgikaPJVNjA/s320/map-setting.PNG" width="173" /></a></div><br /></p>
<p>デフォルトはバブル表示なので、いまいち感ありますが、マウスオーバーするとデータが見える分便利かもしれません。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilZ_gEp4cc2XkuyPSKo0IPOejDy-YgPqTtv2Nog-xYoq18idC3f22OfqYE5Gi6r1I61CXCFp_-zWEVS-WxtveKSjTC0tWafn2gP1_537kb9AigttGj58YjfmVJnkagRZKm-XPCt-R2t7fLvYCBGLW7uDpZuRjBd9Mvft503grvG9ZBzJYBECKlV3wb0w/s590/map-bubble.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="439" data-original-width="590" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilZ_gEp4cc2XkuyPSKo0IPOejDy-YgPqTtv2Nog-xYoq18idC3f22OfqYE5Gi6r1I61CXCFp_-zWEVS-WxtveKSjTC0tWafn2gP1_537kb9AigttGj58YjfmVJnkagRZKm-XPCt-R2t7fLvYCBGLW7uDpZuRjBd9Mvft503grvG9ZBzJYBECKlV3wb0w/s320/map-bubble.PNG" width="320" /></a></div>
<p>ヒートマップにすると、少し傾向がつかみやすいかもしれません。
ただ、この場合は、マウスオーバーさせてもデータは出てこなくなります。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJJ0UkQsVmUj1ojPKGCap00upVOk1X6ge5EoUWFVP3Zg0JnguVyG96zIE6Do9rw_BfPj1oWq8i3RUphMWF8d0Ac4E7mlW0pvshGLA_1fCbwlL16pP_kKNxtcgmAQmL2_uEUcx_FI_OJa3euLfHmAvyPpXqyHom_0Zl7p0XTB-sMQVI3KqGVY5sQkSAtw/s567/map-heatmap.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="417" data-original-width="567" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJJ0UkQsVmUj1ojPKGCap00upVOk1X6ge5EoUWFVP3Zg0JnguVyG96zIE6Do9rw_BfPj1oWq8i3RUphMWF8d0Ac4E7mlW0pvshGLA_1fCbwlL16pP_kKNxtcgmAQmL2_uEUcx_FI_OJa3euLfHmAvyPpXqyHom_0Zl7p0XTB-sMQVI3KqGVY5sQkSAtw/s320/map-heatmap.PNG" width="320" /></a></div><br />
<h1 id="%E7%AC%AC4%E7%AB%A0-%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%AE%E6%84%9F%E6%83%B3">第4章 作ってみての感想</h1>
<p>オープンデータの取り回しは、プログラム的に回避したところが悔しいですが、クレンジングが必要という意味では、いまのところやむなしというのが現実であるということを改めて実感しました。</p>
<p>とはいえ、それっぽいデータが地図に乗るのは、見ていて楽しいので、やっぱりオープンデータは地図ありきになる傾向があるのもうなずけます。</p>
<p>今回はPower BIを使ったというところですが、Tableauとかでも当然似たようなことができるはずなので、得意なBIツールで遊んでみてはいかがでしょうか。</p>
<h3 id="%E5%8F%82%E8%80%83-%E3%83%87%E3%83%BC%E3%82%BF%E3%82%AF%E3%83%AC%E3%83%B3%E3%82%B8%E3%83%B3%E3%82%B0%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E6%B4%BB%E7%94%A8">[参考] データクレンジングツールの活用</h3>
<p>今回は結局使っていないのですが、データクレンジングツールというものが世の中にあります。</p>
<p>Alteryxは知り合いのデータサイエンティストもおすすめしていたので、機会があれば使ってみたいと思っています。</p>
<p>https://help.alteryx.com/ja</p></p></p></p></body>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-11509325311037749242022-07-21T10:00:00.001+09:002022-07-21T10:00:00.161+09:00AWS環境削除をしました | ライタス株式会社<div><div>こんにちは。ライタス株式会社の藤田です。</div><div><br /></div></div>今回は、顧客の使用していないAWS環境の削除を行った際の流れなどを<div>備忘録も兼ねブログに残したいと思います。 </div><div><br /></div><div> 【前提】 </div><div>・顧客が現在全く使用していない環境 </div><div>・使用している機能等が一切不明 </div><div><br /></div><div>【目的】 </div><div>① 費用が掛かり続けているサービスを全て停止 </div><div>② AWS自体を削除 </div><div><br /></div><div><br /></div><div>削除にあたり、ルートユーザーアカウント※が必要となるのですが</div><div>(※IAMのAdmin権限ではない) </div><div>ルートユーザーのパスワードを失念したとのこと、ログイン画面の「パスワードをお忘れですか?」から再設定しました。</div><div><br /></div><div><br /></div><div><b>●請求ダッシュボードで金額がかかっている項目確認 </b></div><div><br /></div><div>無事にサインイン後、
まず確認するのは請求がかかっている項目から攻めます。 </div><div>右上サインインアカウントから「請求ダッシュボード」で確認。 </div><div><br /></div><div><br /></div><div>今回、以下の項目の設定削除・設定変更を行っていきます。</div><div> </div><div> <b>EC2(Elastic Compute Cloud) </b></div><div><b> Elastic Load Balancing</b></div><div><b> ECR</b></div><div><b> VPC</b></div><div><b> Route53</b></div><div><b> Secret
Manager</b></div><div><b> AWS Support (Developer) </b></div><div><br /></div><div><br /></div><div>
今回は全部止めるので、片っ端から行きます。 </div><div><br /></div><div><br /></div><div><b>●(EC2)ElasticIP 削除</b></div><div><br /></div><div>公式ページを参照に実施します。</div><div>削除と書きましたが、正しくは「Elastic IP アドレスの関連付けを解除する」と言う様です。</div><div>参照:<a href="https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-releasing" target="_blank">AWS公式ページ</a> </div><div><br /></div><div><br /></div><div><div><b>●EC2インスタンス削除</b></div><div><br /></div><div>これは一筋縄ではいきませんでした。</div><div>正しく関連しているものを解除していかないと、エラーが出てインスタンスの終了ができません。</div><div><br /></div><div>まずはEC2インスタンス自体にかかっている終了保護などを解除します。</div><div><br /></div><div>そしていったん以下の順番でかかっている金額が高い設定を解除していきました。</div><div><br /></div><div> →ロードバランサー</div><div> →NAT Gateway</div><div> →EC2インスタンスを一旦全て削除</div><div><br /></div><div>この後別の作業を行っていたのですが、削除したはずのEC2があることに気づきました。<br /><div>そのあと削除を2回ほど実施しましたが、消したインスタンスがよみがえるので</div><div>調べてみたところ、Auto Scaling設定が入っていて、EC2の削除が完全にできない様になっていた模様。</div></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIIH5uVNA-OjvqwU1_X_8fweZ0K2z15TdXQpc3amQQLH3pd0TEo1yZh_nch_CT8p1N4vTeLY709RDgA_Zs-hmv4KkG-YAbs2OgxhQaQe-R2R7epeUEehse18QoN0NnMkcZR5-l_cbRWjYzR28wFYynNUawg_eoANlFm7uBv0e76lT9_EbUQulWBae6wA/s2202/2%20ElacticIP%E8%A7%A3%E6%94%BE%E4%B8%8D%E5%8F%AF.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1093" data-original-width="2202" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIIH5uVNA-OjvqwU1_X_8fweZ0K2z15TdXQpc3amQQLH3pd0TEo1yZh_nch_CT8p1N4vTeLY709RDgA_Zs-hmv4KkG-YAbs2OgxhQaQe-R2R7epeUEehse18QoN0NnMkcZR5-l_cbRWjYzR28wFYynNUawg_eoANlFm7uBv0e76lT9_EbUQulWBae6wA/w388-h193/2%20ElacticIP%E8%A7%A3%E6%94%BE%E4%B8%8D%E5%8F%AF.png" width="388" /></a></div></div><div><br /></div><div>まさに削除しても、ゾンビの様によみがえってくる設定でした。</div><div><br /></div><div>参照:<a href="https://www.suzu6.net/posts/169-ec2-zombie/" target="_blank">EC2のインスタンスを停止しても勝手に新しくインスタンスが起動する</a></div><div><br /></div><div>参照サイトを見つつ、Auto Scaling削除完了。</div></div><div>しばらく様子を見ましたが、インスタントは削除されたままになりました。</div><div><br /></div><div><br /></div><div><div><b>●VPC削除</b></div><div><br /></div><div>次はVPCの削除です。</div><div>紐づいている設定が多く、地味にやることが多かったですが、</div><div>削除エラー画面が出て外していく設定がわかりやすかったので作業としては割ととシンプルでした。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwsFbC9ia0EtAm7oJnIskhHRKi2wa1P9mHr1yKPnxxeu66MRKW77Lsv0jpRkMS-qN0t0J9QktwWVHBJQGhd_CvzKT2pMyH25rOeEaYlPL45Dbg_fYZ-b7Jp5iKyNTGjiGTqMtt4YGCtnyi9pRFC37qO88L0xIIjpIcwt-qzGF_amy9ZaMZUHK5catIiQ/s2198/3%20VPC%E5%89%8A%E9%99%A4%E3%82%A8%E3%83%A9%E3%83%BC.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1482" data-original-width="2198" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwsFbC9ia0EtAm7oJnIskhHRKi2wa1P9mHr1yKPnxxeu66MRKW77Lsv0jpRkMS-qN0t0J9QktwWVHBJQGhd_CvzKT2pMyH25rOeEaYlPL45Dbg_fYZ-b7Jp5iKyNTGjiGTqMtt4YGCtnyi9pRFC37qO88L0xIIjpIcwt-qzGF_amy9ZaMZUHK5catIiQ/w339-h229/3%20VPC%E5%89%8A%E9%99%A4%E3%82%A8%E3%83%A9%E3%83%BC.png" width="339" /></a></div><div><br /></div><div> →NAT Gateway削除</div><div> →Internet Gateway VPCからデタッチ</div><div> →VPC削除完了</div><div> →DHCPオプションセット 残っていたので削除</div><div><br /></div><div><br /></div><div><b>●Route53 </b></div><div><br /></div><div>ホストゾーンの削除を行います。</div><div>こちらは普通に「削除」で消そうと思ってもエラーが出ました。</div><div>「Resource Record Setをすべて削除してから」と出ます。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGPbv_ytdOB1NmMgNdHP3Z0TJkdX_thdPUzaoiKIongAvVy9wNYmM9NUqOawFGZ-Iu6gOUS1si9g0jjwPWgulHOPmG4ShqeNOhwgxta-6GOkchDguyTkBHhHz6vDszXul2LrSoFyqGwcUTh-caOq4XlxLygfkNeqhKgtJm5_uiSEfV3GDUBUrwulPYTg/s995/5%20hostzone.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="80" data-original-width="995" height="49" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGPbv_ytdOB1NmMgNdHP3Z0TJkdX_thdPUzaoiKIongAvVy9wNYmM9NUqOawFGZ-Iu6gOUS1si9g0jjwPWgulHOPmG4ShqeNOhwgxta-6GOkchDguyTkBHhHz6vDszXul2LrSoFyqGwcUTh-caOq4XlxLygfkNeqhKgtJm5_uiSEfV3GDUBUrwulPYTg/w609-h49/5%20hostzone.png" width="609" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>そのため以下のサイトを参照して削除を実施しました。</div><div><br /></div><div> 参照:<a href="https://zenn.dev/ie333/articles/8da6c87b0857b2" target="_blank">AWS パブリックホストゾーンの削除</a></div><div> </div><div><br /></div><div><b>●Secret Manager</b></div><div><br /></div><div>こちらは少しトリッキーで、画面通りに通常削除だと待期期間7日かかります。</div><div>即時削除をしたい場合はCLI使用になります。</div><div><br /></div><div>以下ページを参照し、即時削除を実施しました。</div><div><br /></div><div>参照:</div><div><a href="https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/manage_delete-secret.html" target="_blank">公式ページ - シークレットの削除</a></div><div><a href="https://dev.classmethod.jp/articles/delete-secrets-manager-secret-without-a-recovery-window/" target="_blank">AWS Secrets Managerシークレットを即時削除できるようになりました</a></div><div> </div><div>※マルチラインテキストの注意が出ていた際はコマンドラインの改行に注意。</div><div><br /></div><div><br /></div><div><b>●AWS Support (Developer)</b></div><div><br /></div><div>AWS Support プランなるものにも入っていたため、公式ページを参照に、</div><div>無料のものにプラン変更することで有料プランを解約します。</div><div><br /></div><div>参照:<a href="https://aws.amazon.com/jp/premiumsupport/knowledge-center/cancel-support-plan/" target="_blank">AWS Support プランをキャンセルするにはどうすればよいですか?</a></div><div><br /></div><div><br /></div><div>その後、細かいIAMアカウントまわりの設定は変更せずそのままで、</div><div><br /></div><div><a href="https://aws.amazon.com/jp/premiumsupport/knowledge-center/close-aws-account/" target="_blank">公式ページ - アカウントを解約</a><br /></div><div><br /></div><div>アカウント削除 完了 !!!</div></div><div><br /></div><div><br /></div><div>総括しますと、</div><div>細かく設定を色々入れていたようで、引っかかるところもたくさんありましたが、</div><div>AWSのつくりやプランなど改めて色々見ることができたので、</div><div>とっても参考になりました。</div><div><br /></div><div>何かに引っかかってこのページを見た方の参考になることを祈っております。</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-87915773756686764442022-03-08T13:37:00.001+09:002022-03-08T13:37:28.868+09:00VMware ESXiのパッチのアップデート手順 | ライタス株式会社<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>VMware</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta keywords="">
<style>
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #24292e;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,
sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
.dark, .solarizedDark {
color: #FFF;
}
details {
display: block;
}
summary {
display: list-item;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline-width: 0;
}
[type='checkbox'] {
box-sizing: border-box;
padding: 0;
}
* {
box-sizing: border-box;
}
input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #0366d6;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
strong {
font-weight: 600;
}
hr:before {
content: '';
display: table;
}
hr:after {
clear: both;
content: '';
display: table;
}
td,
th {
padding: 0;
}
details summary {
cursor: pointer;
}
p {
margin-bottom: 10px;
margin-top: 0;
}
ol ol,
ul ol {
list-style-type: lower-roman;
}
ol ol ol,
ol ul ol,
ul ol ol,
ul ul ol {
list-style-type: lower-alpha;
}
dd {
margin-left: 0;
}
code,
pre {
font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier,
monospace;
font-size: 12px;
}
input::-webkit-inner-spin-button,
input::-webkit-outer-spin-button {
-webkit-appearance: none;
appearance: none;
margin: 0;
}
&:before {
content: '';
display: table;
}
&:after {
clear: both;
content: '';
display: table;
}
> :first-child {
margin-top: 0 !important;
}
> :last-child {
margin-bottom: 0 !important;
}
a:not([href]) {
color: inherit;
text-decoration: none;
}
blockquote {
margin: 0;
border-left: 0.25em solid #dfe2e5;
color: #6a737d;
padding: 0 1em;
}
blockquote,
dl,
ol,
p,
pre,
table,
ul {
margin-bottom: 16px;
margin-top: 0;
}
blockquote > :first-child {
margin-top: 0;
}
blockquote > :last-child {
margin-bottom: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 600;
line-height: 1.25;
margin-bottom: 16px;
margin-top: 24px;
}
h1,
h2 {
border-bottom: 1px solid #eaecef;
padding-bottom: 0.3em;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
h2 {
font-size: 1.5em;
}
h3 {
font-size: 1.25em;
}
h4 {
font-size: 1em;
}
h5 {
font-size: 0.875em;
}
h6 {
color: #6a737d;
font-size: 0.85em;
}
ol,
ul {
padding-left: 2em;
}
ol ol,
ol ul,
ul ol,
ul ul {
margin-bottom: 0;
margin-top: 0;
}
li {
word-wrap: break-all;
}
li > p {
margin-top: 16px;
}
li + li {
margin-top: 0.25em;
}
dl {
padding: 0;
}
dl dt {
font-size: 1em;
font-style: italic;
font-weight: 600;
margin-top: 16px;
padding: 0;
}
dl dd {
margin-bottom: 16px;
padding: 0 16px;
}
table {
border-collapse: collapse;
border-spacing: 0;
display: block;
overflow: auto;
width: 100%;
}
table th {
font-weight: 600;
}
table td,
table th {
border: 1px solid #dfe2e5;
padding: 6px 13px;
}
table tr {
background-color: #fff;
border-top: 1px solid #c6cbd1;
}
table tr:nth-child(2n) {
background-color: #f6f8fa;
}
img {
border-style: none;
background-color: #fff;
box-sizing: content-box;
max-width: 100%;
}
img[align='right'] {
padding-left: 20px;
}
img[align='left'] {
padding-right: 20px;
}
code {
background-color: rgba(27, 31, 35, 0.05);
border-radius: 3px;
font-size: 85%;
margin: 0;
padding: 0.2em 0.4em;
}
p code,
li code
{
padding: 2px;
border-width: 1px;
border-style: solid;
border-radius: 5px;
}
pre {
word-wrap: normal;
}
pre > code {
background: transparent;
border: 0;
font-size: 100%;
margin: 0;
padding: 0;
white-space: pre;
word-break: normal;
}
.highlight {
margin-bottom: 16px;
}
.highlight pre {
margin-bottom: 0;
word-break: normal;
}
.highlight pre,
pre {
background-color: #f6f8fa;
border-radius: 3px;
font-size: 85%;
line-height: 1.45;
overflow: auto;
padding: 16px;
}
pre code {
background-color: transparent;
border: 0;
display: inline;
line-height: inherit;
margin: 0;
max-width: auto;
overflow: visible;
padding: 0;
word-wrap: normal;
}
kbd {
background-color: #fafbfc;
border: 1px solid #d1d5da;
border-bottom-color: #c6cbd1;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #c6cbd1;
color: #444d56;
display: inline-block;
font: 11px SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier,
monospace;
line-height: 10px;
padding: 3px 5px;
vertical-align: middle;
}
:checked + .radio-label {
border-color: #0366d6;
position: relative;
z-index: 1;
}
.task-list-item {
list-style-type: none;
}
.task-list-item + .task-list-item {
margin-top: 3px;
}
.task-list-item input {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
hr {
box-sizing: content-box;
background: transparent;
overflow: hidden;
background-color: #e1e4e8;
border: 0;
height: 0.25em;
margin: 24px 0;
padding: 0;
border-bottom: 1px solid #eee;
}
.dark p code,
.dark li code
{
background-color: rgba(255,255,255,0.12);
border-color: rgba(255,255,255,0.3);
color: #03C588;
}
.auto p code,
.auto li code
{
background-color: #F9F9F9;
border-color: rgba(0,0,0,0.26);
color: #03C588;
}
.light p code,
.light li code
{
background-color: #F9F9F9;
border-color: rgba(0,0,0,0.26);
color: #03C588;
}
.sepia p code,
.sepia li code
{
background-color: #efe8d6;
border-color: rgba(0,0,0,0.26);
color: #F77942;
}
.solarizedDark p code,
.solarizedDark li code
{
background-color: rgba(255,255,255,0.12);
border-color: rgba(255,255,255,0.3);
color: #36abe3;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css">
</head>
<body>
<p>お世話になります。 田所です。</p>
<p>弊社では案件毎に様々なテスト環境を用意するために事務所にESXi(7.0)のPCがあります。</p>
<p>ですが、ESXiから結構クリティカルな脆弱性が見つかったみたいで、弊社でもアップデートが必要になりました。</p>
<p>今回は脆弱性対応のためESXiのバージョンアップデートを実施しましたので方法をまとめさせていただきます。</p>
<p>また、今回の手順は無償版によるCLIでの手作業のアップデート作業内容となります。</p>
<ul>
<li>脆弱性ESXiに関する参考: <a href="https://news.mynavi.jp/techplus/article/20220217-2274342/">VMware ESXiやWorkstationに緊急の脆弱性、すぐにアップデートを</a></li>
</ul>
<h1>手順</h1>
<h3>1. パッチファイルの入手</h3>
<p>以下のサイトから脆弱性に対応したパッチファイル(zip)をDLします。
<a href="https://my.vmware.com/ja/group/vmware/patch#search">https://my.vmware.com/ja/group/vmware/patch#search</a></p>
<p><strong>※My VMware アカウントにログインが必要です</strong></p>
<p>今回は <a href="https://news.mynavi.jp/techplus/article/20220217-2274342/">脆弱性に関する記事</a>を元に7.0の</p>
<ul>
<li>VMware-ESXi-7.0U2e-19290878-depot<ul>
<li>ビルド番号: 19290878</li>
<li>バージョン: 7.0</li>
</ul></li>
</ul>
<p>をDLしました。</p>
<h3>2. パッチファイルのアップロード</h3>
<p>ローカルにDLしたパッチファイルをVMwareにアップロードします。</p>
<p>アップロード先はどこでもいいですが、今回はdatastore1ストレージに「アップデート」フォルダを作成し、この内にいれました。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi-QErjFighq0Lg46OwRK_TsVmDkNLo2QXarvQcZnCHKH1AkjSQwYW6ILj-jscnBVmBgRIc0VazBJ4M9tLwqqAWhAM_kqExaaFD05l0Uo-tHpY4CKvGLw3h0mZ_LXXFz3biMi5_5Mw98Hs8TTWZlPTXcvTQtL9eBRrTSgs6rrHAM_nsDrn7cpT4LfeLFw=s1914" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="732" data-original-width="1914" src="https://blogger.googleusercontent.com/img/a/AVvXsEi-QErjFighq0Lg46OwRK_TsVmDkNLo2QXarvQcZnCHKH1AkjSQwYW6ILj-jscnBVmBgRIc0VazBJ4M9tLwqqAWhAM_kqExaaFD05l0Uo-tHpY4CKvGLw3h0mZ_LXXFz3biMi5_5Mw98Hs8TTWZlPTXcvTQtL9eBRrTSgs6rrHAM_nsDrn7cpT4LfeLFw=s320"/></a></div>
</p>
<h3>3. メンテナンスモード切替</h3>
<p>全ての仮想マシンをシャットダウンして、トップページのアクションから「メンテナンスモードへの切替」を選択します。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgfudL-o6b0fTrEpkleoqkOikDnPJUUJO86OhiEAeMr-1NjeCWNGkvd4pZuUMu7Jgb2BEbDG5oElnLTb4Ddr0jcMDPhWuHB5GSetCKc5PgaOgLjdfhXzruU8-Az3mTQVAy0X4cnJut6X4GN16Sb_5kQmYtOmPI5j0xkUtB8txJ06jkspMX3vIqfGQ-Qmw=s1228" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="452" data-original-width="1228" src="https://blogger.googleusercontent.com/img/a/AVvXsEgfudL-o6b0fTrEpkleoqkOikDnPJUUJO86OhiEAeMr-1NjeCWNGkvd4pZuUMu7Jgb2BEbDG5oElnLTb4Ddr0jcMDPhWuHB5GSetCKc5PgaOgLjdfhXzruU8-Az3mTQVAy0X4cnJut6X4GN16Sb_5kQmYtOmPI5j0xkUtB8txJ06jkspMX3vIqfGQ-Qmw=s320"/></a></div>
</p>
<p>切り替わると状態が「メンテナンスモード」になります。</p>
<p>
</p>
<h3>4. SSH有効化</h3>
<p>適当な場所で右クリックして「サービス」から「SSHの有効化」を設定します。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgDaRhX95VzUSQy6-7i2zoMBMFGmNTD5ctrJpikY59n5Sw4xd6LBQTaZFgewLa5Iy1kE05w7vUIVUFLwQ-iu00hqlXPrqrAQVqIMNV8M6rkesLzOeljvZXCaAZUKFixcn3UcwMJF4tXTBoL0lL6qVzgSl00o5j8fVRRm03CjGPPwmFhtqDsZYG7pg8How=s1338" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="489" data-original-width="1338" src="https://blogger.googleusercontent.com/img/a/AVvXsEgDaRhX95VzUSQy6-7i2zoMBMFGmNTD5ctrJpikY59n5Sw4xd6LBQTaZFgewLa5Iy1kE05w7vUIVUFLwQ-iu00hqlXPrqrAQVqIMNV8M6rkesLzOeljvZXCaAZUKFixcn3UcwMJF4tXTBoL0lL6qVzgSl00o5j8fVRRm03CjGPPwmFhtqDsZYG7pg8How=s320"/></a></div>
</p>
<p>以下のような警告がでていれば有効化できています。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg5Dh1NOFsKxIPNzFSgmbr_FgsrLnT7eZDw8b5lEndYrHVe8VpBHYrm58cZ9HQ3TlCAP5k3IJmmw-ZJdPQJIXvp5SGfWbMPPM81R34fnTyxCt2hSeMfkzd1PYKiNnuxCfZboFaYusPj1Kig5X8BrE1qRQKz6XO6w8sM6tPqQ6FASbuEBCWdP-JEG5QuAA=s836" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="264" data-original-width="836" src="https://blogger.googleusercontent.com/img/a/AVvXsEg5Dh1NOFsKxIPNzFSgmbr_FgsrLnT7eZDw8b5lEndYrHVe8VpBHYrm58cZ9HQ3TlCAP5k3IJmmw-ZJdPQJIXvp5SGfWbMPPM81R34fnTyxCt2hSeMfkzd1PYKiNnuxCfZboFaYusPj1Kig5X8BrE1qRQKz6XO6w8sM6tPqQ6FASbuEBCWdP-JEG5QuAA=s320"/></a></div>
</p>
<h3>5. SSHでサーバーへ入る</h3>
<p>teratermなりコマンドなりでサーバーへ入ります。</p>
<p>ユーザーとパスワードはESXiのログイン情報と同じのはずです。</p>
<h3>6. アップデート準備</h3>
<p>まずアップロードしたパッチファイルがある確認します。</p>
<p><code>/vmfs/volumes</code>にストレージ(datastore1)があるはずです。</p>
<pre class="cm-s-ambiance CodeMirror"><code>[root@localhost:~] ls -l /vmfs/volumes/datastore1/アップデート/
total 381952
-rw-r--r-- 1 root root 390952695 Mar 7 09:38 VMware-ESXi-7.0U2e-19290878-depot.zip
</code></pre>
<p>確認できたら</p>
<p><code> esxcli software sources profile list -d <パッチファイル></code>でパッチファイルの内容を確認できます。</p>
<pre class="cm-s-ambiance CodeMirror"><code>[root@localhost:~] esxcli software sources profile list -d /vmfs/volumes/datastore1/アップデート/VMware-ESXi-7.0U2e-19290878-depot.zip
Name Vendor Acceptance Level Creation Time Modification Time
----------------------------- ------------ ---------------- ------------------- -----------------
ESXi-7.0U2e-19290878-standard VMware, Inc. PartnerSupported 2022-02-15T00:00:00 2022-02-15T00:00:00
ESXi-7.0U2e-19290878-no-tools VMware, Inc. PartnerSupported 2022-02-15T00:00:00 2022-01-31T07:40:31
</code></pre>
<p>standardとno-toolsがありますがどちらを適応するべきかは<code>esxcli software profile get</code>コマンドで確認できます。</p>
<pre class="cm-s-ambiance CodeMirror"><code>[root@localhost:~] esxcli software profile get
(Updated) VMware-ESXi-7.0U2a-17867351-standard
Name: (Updated) VMware-ESXi-7.0U2a-17867351-standard
Vendor: VMware, Inc.
...続く
</code></pre>
<p>冒頭に<code>Name: (Updated) VMware-ESXi-7.0U2a-17867351-standard</code>とありstandardで良いことがわかりました。</p>
<h3>6. アップデート実行</h3>
<p>esxcli software profile update -d <パッチファイル> -p <プロファイル名></p>
<p>今回の場合は以下のように入力します。</p>
<pre class="cm-s-ambiance CodeMirror"><code>esxcli software profile update -d /vmfs/volumes/datastore1/アップデート/VMware-ESXi-7.0U2e-19290878-depot.zip -p ESXi-7.0U2e-19290878-standard
</code></pre>
<p>しばらく待ち、終了するとリザルトが出力されます</p>
<pre class="cm-s-ambiance CodeMirror"><code>Update Result
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
...続く
</code></pre>
<h3>7. 再起動</h3>
<p>以下のコマンドで再起動します。</p>
<pre class="cm-s-ambiance CodeMirror"><code>esxcli system shutdown reboot -r "Update version 7.0"
</code></pre>
<h3>8. 確認</h3>
<p>再起動が完了したらWebからアクセスしてバージョンが変わっているか確認します。</p>
<p><strong>※有効化していたSSHは再起動後に無効化されています。</strong></p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgoIb7_MXgh5SX5aDfKLnpScy9gtJcfhD2j_RE8LIR3JysgTdXVi9Q807Dq--Pnz-5akhYTobGMy_ugPmevGVgAVKHGyfEbLrzaNCFAvJWrfdriwfho8AmSbSU_PKwoxGjlp2mNRdI7uzBLFrfcI-SWym_genHbeQR_1jvOo3c4RrfDf8PueA3nL58_tA=s644" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="157" data-original-width="644" src="https://blogger.googleusercontent.com/img/a/AVvXsEgoIb7_MXgh5SX5aDfKLnpScy9gtJcfhD2j_RE8LIR3JysgTdXVi9Q807Dq--Pnz-5akhYTobGMy_ugPmevGVgAVKHGyfEbLrzaNCFAvJWrfdriwfho8AmSbSU_PKwoxGjlp2mNRdI7uzBLFrfcI-SWym_genHbeQR_1jvOo3c4RrfDf8PueA3nL58_tA=s320"/></a></div>
</p>
<p>無事、目的の<code>19290878</code>になっています。</p>
<p>後はメンテナンスモードを終了し、仮想マシンを起動したら完了です!!</p>
</body>
</html>
ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-12300765126540159252022-01-26T14:44:00.001+09:002022-01-26T14:44:33.408+09:00Microsoft 365のメール自動転送失敗?への対応 | ライタス株式会社遅ればせながら、明けましておめでとうございます。<div><br /></div><div>弊社ブログには初登場となります、藤田です。</div><div><br /></div><div>昨年から引きつづき、弊社主軸事業である医療向けIT関連で忙しくさせて頂いております社内ですが、</div><div><br /></div><div><div>弊社クライアント様から、メールアドレスの内1つにて、</div><div>数か月前から受信できていない、また受信しても内容が閲覧不可の状態である旨のご連絡がありまして…</div><div><br /></div><div>このメールアドレスが含まれているグループメールにて、確かにメールが返ってきてしまっていることを確認しました。</div><div><br /></div><div>「Delivery has failed to these recipients or groups: xxx @ xxx .jp」</div><div>「Your message wasn't delivered because the recipient's email provider rejected it.」</div><div><br /></div><div><br /></div><div>メールのソースを確認し、Microsoft 365のメール自動転送で失敗しているのではないかとあたりをつけ、</div><div>今回、対応方法を検索して実行してみました。</div></div><div><br /></div><div><br /></div><div><b><span style="font-size: medium;">【対応内容】</span></b></div><div><b>Microsoft 365にて、外部へのメール自動転送を許可する設定(outbound spam filtering)を作成します。</b></div><div><br /></div><div><br /></div><div><div>まず、</div><div>Microsoft 365 管理センター > すべての管理センター > セキュリティ </div><div>と選択し、Microsoft 365 Defender のホーム画面を開きます。</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjr0alYFPo-DBxXxcuE3fl682e_GZ6y4AC1l_cQQTggIKn0mG3UJKSLeeg4OSVP4wYdjqvqbVRBS3w_q96Cdx56aQ1HVIqB1eefhIux-mfJ0g6FPHj2JGK1HIF-70Nj4Uq95bIAGyhrOumXqNwnH-7lZeqEJQBJEIlwUipE_3OzmRlS0mkmZRp3HvN5kg=s2321" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1613" data-original-width="2321" height="345" src="https://blogger.googleusercontent.com/img/a/AVvXsEjr0alYFPo-DBxXxcuE3fl682e_GZ6y4AC1l_cQQTggIKn0mG3UJKSLeeg4OSVP4wYdjqvqbVRBS3w_q96Cdx56aQ1HVIqB1eefhIux-mfJ0g6FPHj2JGK1HIF-70Nj4Uq95bIAGyhrOumXqNwnH-7lZeqEJQBJEIlwUipE_3OzmRlS0mkmZRp3HvN5kg=w496-h345" width="496" /></a></div><div><br /></div><div><div>次に、 ポリシーとルール > 脅威ポリシー > スパム対策ポリシー </div><div>と選択すると、以下の画面表示になりました。</div></div><div> ※一番上の「自動転送許可」が今回設定したものです。</div><div><br /></div><div>「ポリシーを作成」をクリックし、Outboundを選択すると、</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhEXU2_iU4vj7H4hvvOR4lYi9X4XD7gdrn2o8TyJ-HbT7IGlvFFJcijcxXS5XmEB8lRa4YO38er0Yaot-BbnP6kOE0ID8jElyjRjovxhylD3wiPhbq_SCr4dxB7br7OU5tu2ZrtgLgHi9c_kgOzlVmppWXVsQYbrIHlCOg-aVJveQmTbA4d2leEL-0-Ew=s1473" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="997" data-original-width="1473" height="332" src="https://blogger.googleusercontent.com/img/a/AVvXsEhEXU2_iU4vj7H4hvvOR4lYi9X4XD7gdrn2o8TyJ-HbT7IGlvFFJcijcxXS5XmEB8lRa4YO38er0Yaot-BbnP6kOE0ID8jElyjRjovxhylD3wiPhbq_SCr4dxB7br7OU5tu2ZrtgLgHi9c_kgOzlVmppWXVsQYbrIHlCOg-aVJveQmTbA4d2leEL-0-Ew=w489-h332" width="489" /></a></div><div><br /></div>ポリシーの設定画面が開くので設定を作成します。 今回名前は「自動転送許可」としました。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgALOmCsxzgLbm4a5kkH_JXzLQRwLMaxGcj1wRORj1f8HN_5fd7oyFM-hdLwd0XUgZEP8YYCj01Dpy1FWivEjARmEp3RNs2UMwhwUP352PNVQEQzTyQlTYAmC8ksdKxCWDnRQofEHZJnGR36sHTdXg8hUWk8f13zToAhLpKcTRljZDB5fsIQxg2n1CVmg=s2321" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1615" data-original-width="2321" height="339" src="https://blogger.googleusercontent.com/img/a/AVvXsEgALOmCsxzgLbm4a5kkH_JXzLQRwLMaxGcj1wRORj1f8HN_5fd7oyFM-hdLwd0XUgZEP8YYCj01Dpy1FWivEjARmEp3RNs2UMwhwUP352PNVQEQzTyQlTYAmC8ksdKxCWDnRQofEHZJnGR36sHTdXg8hUWk8f13zToAhLpKcTRljZDB5fsIQxg2n1CVmg=w487-h339" width="487" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>ユーザー、グループ、およびドメイン の画面では、ユーザーとドメインを追加。</div><div>送信の保護設定では、 [メッセージの上限に達したユーザーに適用される制限] を 処理なし、アラートのみ に変更しました。</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiHHL4dUYnnH_Vo4BLCjjao4bY6m1QVPasDlRjVia3STVsEa2KJd17pbolF1pLXBy4vIDZ_oonlXE8DlAq4NWkb5Sa0EAz17V2Ibw5T9xrTtAfVryGabar8mhc2jyrE3SR7ncABO-CZGOKkatIcG3Li9dqvdP4R5HoD9ovfWQX1fy0JUkJ7ioS_nHBD1g=s2321" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1616" data-original-width="2321" height="348" src="https://blogger.googleusercontent.com/img/a/AVvXsEiHHL4dUYnnH_Vo4BLCjjao4bY6m1QVPasDlRjVia3STVsEa2KJd17pbolF1pLXBy4vIDZ_oonlXE8DlAq4NWkb5Sa0EAz17V2Ibw5T9xrTtAfVryGabar8mhc2jyrE3SR7ncABO-CZGOKkatIcG3Li9dqvdP4R5HoD9ovfWQX1fy0JUkJ7ioS_nHBD1g=w499-h348" width="499" /></a></div><br /></div><div><br /></div><div>ページを進み、内容をレビュー画面で確認し、作成!</div><div><br /></div><div>しばらく待つと、設定が反映されました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgMC5aTRPgAtPQCEZNXscZuW0rYGwkGpuM7ymrGIbgLpTYpaqymCRVriCfH2TXGfa3sNf7wSrn9uASAM9niP5Iow2e5H3pLuxNEMyt1wRNxM8Wcdt6iM0y5v8R6m7HOb2hhgNXuSRP71wK7zKY5Nut4XrGVcOwtIoKHerKaWrd-doDKu0k_JUfc7C7DkA=s2321" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1572" data-original-width="2321" height="343" src="https://blogger.googleusercontent.com/img/a/AVvXsEgMC5aTRPgAtPQCEZNXscZuW0rYGwkGpuM7ymrGIbgLpTYpaqymCRVriCfH2TXGfa3sNf7wSrn9uASAM9niP5Iow2e5H3pLuxNEMyt1wRNxM8Wcdt6iM0y5v8R6m7HOb2hhgNXuSRP71wK7zKY5Nut4XrGVcOwtIoKHerKaWrd-doDKu0k_JUfc7C7DkA=w505-h343" width="505" /></a></div><br /><div><br /></div><div>試しに該当メールアドレスが含まれているグループメールにてメール送信してみます…</div><div><br /></div><div>失敗・・・</div><div><br /></div><div>時間をおいてもエラーメールが返ってきてしまいます。</div><div><br /></div><div><< 対応続く >></div><div><br /></div><div><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /><div><br /></div><div><br /></div></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-62760987551127678672022-01-21T15:13:00.032+09:002022-01-21T16:56:30.069+09:00Surface Pro 8 使用感レビュー | ライタス株式会社<p class="MsoNormal">こんにちは。ライタスお手伝いの青井です。最近は代表箕谷さんのいろんなお手伝いをするため出現しております。これからちょくちょく出現するのでよろしくお願いします。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">さて、ライタスにいる人は皆<span lang="EN-US">Surface</span>で仕事をしており、偶然ですが私も<span lang="EN-US">Surface</span>を使ってお仕事をしております。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal">そんな中、先日長年使っていた<span lang="EN-US">Surface Pro4</span>のバッテリーが逝ってしまい使えなくなってしまいました。<br /><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">思い切って、発売したばかりの<span lang="EN-US">Surface Pro 8</span>にリプレースしてみましたので、せっかくなので製品レビューをしてみました。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<h2 style="text-align: left;"><span style="font-size: large;"><span lang="EN-US"><o:p>大きくなった</o:p></span>Surface Pro8 重量もアップ</span></h2>
<p class="MsoNormal"><span lang="EN-US">Surface Pro8</span>はおっきくなって重くなりました。。。比べてみるとよくわかります。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj9N0DgdIS2s99bZ7cAR0CfMLffrI87Mbnb2rNNX_8nZss-V3kcAhMYL6_F_LgVUuy4QCVO_XN4oN_aZItMou2f9REbT6URfGOGlyoWZCH0hpiaWHmON0__iYJDu_bTA7IS3wRNuql3K3TgpjezXAm9_MgN1ts90rnP8YkUvBtBGBHKh9i6m7OOp64_uw=s2048" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1152" data-original-width="2048" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEj9N0DgdIS2s99bZ7cAR0CfMLffrI87Mbnb2rNNX_8nZss-V3kcAhMYL6_F_LgVUuy4QCVO_XN4oN_aZItMou2f9REbT6URfGOGlyoWZCH0hpiaWHmON0__iYJDu_bTA7IS3wRNuql3K3TgpjezXAm9_MgN1ts90rnP8YkUvBtBGBHKh9i6m7OOp64_uw=s320" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><span lang="EN-US">Surface Pro 8</span>は、タイプカバーを付けていなくても、<span lang="EN-US"> 891g</span>の質量があります。<span lang="EN-US">Surface Pro 7</span>は<span lang="EN-US">i3</span>と<span lang="EN-US">i5: 775g</span>で<span lang="EN-US">i7</span>は<span lang="EN-US">790g</span>なので<span lang="EN-US">100g</span>以上重くなっています。もうタブレット単体としては重いです。片手で持ちながら~って用途には適していません。まぁもともと<span lang="EN-US">surface</span>がそのような使い方をしている人も少ないかもしれませんが。。。<span lang="EN-US"><o:p></o:p></span><p></p>
<p class="MsoNormal">ただ、<span lang="EN-US">Surface</span>本体<span lang="EN-US">+</span>タイプカバー<span lang="EN-US">+</span>ペンの合計質量は<span lang="EN-US">1187g</span>と、モバイルノート<span lang="EN-US">PC</span>としては一般的な質量となっています。カバンの中に入れて持ち運ぶ分には、問題ありません。軽い<span lang="EN-US">PC</span>をご希望の場合は<span lang="EN-US">ThinkPad X1 Carbonとの比較検討になるかと思います</span>。</p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><h2 style="text-align: left;"><span style="font-size: large;">ディスプレイが13インチに 外部接続の仕様変更に注意</span></h2>
<p class="MsoNormal">ただ、ちょっと大きくなった分ディスプレイも<span lang="EN-US">12.3</span>インチから<span lang="EN-US">13</span>インチと若干大きくなりました。画面比も<span lang="EN-US">3:2</span>(<span lang="EN-US">2880×1920</span>ドット)なので使いやすいです。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal">それとハードウェア仕様が大きく変わり、<span lang="EN-US">DisplayPort</span>、<span lang="EN-US">USB-A</span>、<span lang="EN-US">microSD</span>カードスロットも廃止となりました。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span> </p><p class="MsoNormal"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgh9wLNeLlDHWf1OqkacYcZflUGMcsrle7xv11TChS5rfu6jWdIS3OGURPpd40UYg5vQFliOEmCz0Z5wvKzDAmss5Nj6npYqfjHj1QnVZ9pXWsTMLQ2RR-saNNNFArpKnJBescp43FOOIcBQGSD3XtFa4iOZ7J04x45hKoc_tffzaTlYXTs4MvYo5EDmw=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="2268" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgh9wLNeLlDHWf1OqkacYcZflUGMcsrle7xv11TChS5rfu6jWdIS3OGURPpd40UYg5vQFliOEmCz0Z5wvKzDAmss5Nj6npYqfjHj1QnVZ9pXWsTMLQ2RR-saNNNFArpKnJBescp43FOOIcBQGSD3XtFa4iOZ7J04x45hKoc_tffzaTlYXTs4MvYo5EDmw=s320" width="180" /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgrt45onayvpt4J_-4ew9BY-PG493CgyD2NbPYWYlOuRjgn_6v0VdNb2-7-Eq2A8NhNTiyzsmgsQxy1CmVtNa5fzoq9cjIjjrw3LgequYDPOT9W0PUrI2aokVnNxMsuIwwi_e0jC8fPUsnqLv5hbN9PUZRNInDHZnuf-uaI_tb2JRAmNd2xB9ICgRdGjA=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="2268" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgrt45onayvpt4J_-4ew9BY-PG493CgyD2NbPYWYlOuRjgn_6v0VdNb2-7-Eq2A8NhNTiyzsmgsQxy1CmVtNa5fzoq9cjIjjrw3LgequYDPOT9W0PUrI2aokVnNxMsuIwwi_e0jC8fPUsnqLv5hbN9PUZRNInDHZnuf-uaI_tb2JRAmNd2xB9ICgRdGjA=s320" width="180" /></a></div><br /> <p></p>
<p class="MsoNormal">右側には移動してきた電源ボタンと、<span lang="EN-US">USB-C</span>コネクタ二つと<span lang="EN-US">Surface connect</span>の端子があり右側にはイヤホン端子と移動してきた電源ボタンがあります。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span>これは<span lang="EN-US">USB-C</span>が台頭してきた象徴ですね。<span lang="EN-US">USB-C</span>があれば十分になってきたのも事実なので、反対意見も多いとは思いますが、私は良いアップデートと思っております。<span lang="EN-US">(DisplayPort</span>からの変換ケーブルすべてが無駄になったのは悲しいですが。。。<span lang="EN-US">)</span> </p><p class="MsoNormal">いやいや、<span lang="EN-US">USB-A</span>使うよ!って人は<span lang="EN-US">Surface USB-C Travel Hub</span>で変換するといいと思います。<span lang="EN-US">Travel Hub</span>は<span lang="EN-US">USB-C</span>→<span lang="EN-US">USB-A</span>だけではなく、<span lang="EN-US">HDMI</span>、<span lang="EN-US">VGA</span>にも変換できますし<span lang="EN-US">LAN</span>コネクタもついてきます。便利なので一緒に買うといいと思います。</p><p class="MsoNormal">たまにキャンペーンで一緒に買うと安くなることがあります。ただ、私は<span lang="EN-US">Amazon</span>でポチりました。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://www.amazon.co.jp/dp/B088CK5F66/">https://www.amazon.co.jp/dp/B088CK5F66/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span></p><h2 style="text-align: left;"><span style="font-size: large;">本体M.2 <span lang="EN-US">SSD</span>が交換可能に</span> </h2>
<p class="MsoNormal"><span lang="EN-US">microSD</span>カードスロットはなくなってしまいましたが、本体<span lang="EN-US">SSD</span>が交換可能になりました。容量足りなくなったら変えるのもありです。まぁクラウドにデータ置いちゃえばそんなに容量もいらないと思います。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal">交換しちゃうと保証が<span lang="EN-US">NG</span>になってしまいますので、要注意です。<span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal"><br /></p>
<p class="MsoNormal"><span face="メイリオ, "Hiragino Kaku Gothic ProN", Meiryo, "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ Pro W3", "MS PGothic", "MS UI Gothic", Helvetica, Arial, sans-serif" style="background-color: white; color: #333333; font-size: small;">PC Watch - 「Surface Pro 8」購入記。SSDを換装してお手頃価格で1TBを実現</span></p><p class="MsoNormal"><span lang="EN-US"><o:p> <a href="https://pc.watch.impress.co.jp/docs/column/kaimono/1374217.html">https://pc.watch.impress.co.jp/docs/column/kaimono/1374217.html</a></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><h2 style="text-align: left;"><span style="font-size: large;">タイプカバーの仕様変更に注意 </span></h2>
<p class="MsoNormal">一番大きな変更点としてはキーボードカバーの端子変更です。そのため<span lang="EN-US">Pro7</span>まで使えたキーボードが使えなくなりました。買いなおしです。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><br /></p>
<p class="MsoNormal">左が新しいキーボード、右が<span lang="EN-US">Pro7</span>までのキーボードです。端子ががっつり変わっております。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjSxDeFgElME-cLcDh2bs19uza3gBKehYeWenHwuETXqWsavM_QMknwqST1CuDeYtmUdvuX0fhm_jbRZs9Ygl3He3WtQhKhOu5cM7wKLVkqLt-MqOqMhHceoSiZfCK1K8023oHh_IwssCBNkUrdpSAZ1w5EXbzo1cBCFijDDzphWvlztw89VATzyfAWkQ=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2268" data-original-width="4032" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEjSxDeFgElME-cLcDh2bs19uza3gBKehYeWenHwuETXqWsavM_QMknwqST1CuDeYtmUdvuX0fhm_jbRZs9Ygl3He3WtQhKhOu5cM7wKLVkqLt-MqOqMhHceoSiZfCK1K8023oHh_IwssCBNkUrdpSAZ1w5EXbzo1cBCFijDDzphWvlztw89VATzyfAWkQ=s320" width="320" /></a></div><span lang="EN-US"><o:p> </o:p></span><p></p>
<p class="MsoNormal">それぞれをアップにしてみるとこんな感じです。</p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><div class="separator" style="clear: both; text-align: center;"><span lang="EN-US"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgEYecqi91-_5rvZONOH5lXE5Mn--HaUTikRrjqDyOEVc2ueYxxWKL2Hsmu6ghNB-f75xD_OUS7KjV_bWsL0MSv3EKRiC0deUZuKsg5P3ErsApjlJIKAM088ccKfA5dmZ6Bb0CDKF6u1o-Ked7nHHVC4AirZbWDnsI5xWzEd_PMwewTJ_vmZMtiKFFTzg=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2268" data-original-width="4032" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEgEYecqi91-_5rvZONOH5lXE5Mn--HaUTikRrjqDyOEVc2ueYxxWKL2Hsmu6ghNB-f75xD_OUS7KjV_bWsL0MSv3EKRiC0deUZuKsg5P3ErsApjlJIKAM088ccKfA5dmZ6Bb0CDKF6u1o-Ked7nHHVC4AirZbWDnsI5xWzEd_PMwewTJ_vmZMtiKFFTzg=s320" width="320" /></a></span></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span lang="EN-US"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiPsvnE95RrEPPtxWKecfxi28B9Y5LaXJyhh_7dd2DZGH8_E0i0wYl21lz1t2zPI6xaGV0K3dYwdEGf99ACUbnKCUoRALLR17VMRrV848UEP0zfi5VOCFWoOiN_98YJHKJXtMSTam0DTKeooJTIEsuiJ87QJJGlX6RHfuDWcoDbKAlOof9z2EXMI21uFA=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2268" data-original-width="4032" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEiPsvnE95RrEPPtxWKecfxi28B9Y5LaXJyhh_7dd2DZGH8_E0i0wYl21lz1t2zPI6xaGV0K3dYwdEGf99ACUbnKCUoRALLR17VMRrV848UEP0zfi5VOCFWoOiN_98YJHKJXtMSTam0DTKeooJTIEsuiJ87QJJGlX6RHfuDWcoDbKAlOof9z2EXMI21uFA=s320" width="320" /></a></span></div><div class="separator" style="clear: both; text-align: center;"><span lang="EN-US"><br /> <span style="text-align: left;"> </span></span></div><p></p>
<p class="MsoNormal"><span lang="EN-US">Surface</span>のキーボードカバーはコバルトブルーを使っていて、結構気に入っていましたのでこれは地味にショックでした。そのため、現在のラインナップで近いと思ったアイスブルーを購入してみました。思ったより淡い色で個人的にはちょっと残念。。。また、車輪を見てもわかる通りペンが収納で切るようになりました。しかも、ここに置くとペンの充電できるのはありがたいですね!以前は画面の横に磁石でくっつくタイプで、よく落としていました。今度は落ちることはないので良いアップデートだと思います!ペン使わないけど。。。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><h2 style="text-align: left;"><span style="font-size: large; font-weight: 700;">充電は電力(ワット数)変更</span></h2>
<p class="MsoNormal">充電は相変わらず<span lang="EN-US">Surface Connect</span>ポートで変更なしです。また、<span lang="EN-US">USB-C</span>充電も可能です。ただ、ワット数が変更になっていて、変圧器に仕様変更があった模様です。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhD0U4p9vlNU9LhlhafMlVwCIs7EyCs6MENVdCMvnk5xCf7ybONyoZH0t85uH59jhDxvcF3VX6wYTnEGBdre1Kmt5JAO_SV-BK3ZBpllWGEQJPZ_N2S_HPQ5j-mDCUcv6-GZxsP-BqBqGKr55jAUeUhnA5SHyRPpDd_6JWb35aGRi99dCeCX8DLAy5WBw=s2016" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2016" data-original-width="1134" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEhD0U4p9vlNU9LhlhafMlVwCIs7EyCs6MENVdCMvnk5xCf7ybONyoZH0t85uH59jhDxvcF3VX6wYTnEGBdre1Kmt5JAO_SV-BK3ZBpllWGEQJPZ_N2S_HPQ5j-mDCUcv6-GZxsP-BqBqGKr55jAUeUhnA5SHyRPpDd_6JWb35aGRi99dCeCX8DLAy5WBw=s320" width="180" /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj_5IgueyBzUT9M_gPVZ98TWN8SPk0wRblU8iW9i-c3TYSzXMH6cILBmH3plZqBKLqo96YNuyV75GCfG7bYEaS-YBRf68JWzvN5YqEVlldK0JQTI2QfyHg0fsnLk8_EMkFX5lh-E4AtVsao9rJWwJdPA5mHDGiXMOY461o5bKGE3GVmPj15cEPFG26rLA=s2016" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2016" data-original-width="1134" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEj_5IgueyBzUT9M_gPVZ98TWN8SPk0wRblU8iW9i-c3TYSzXMH6cILBmH3plZqBKLqo96YNuyV75GCfG7bYEaS-YBRf68JWzvN5YqEVlldK0JQTI2QfyHg0fsnLk8_EMkFX5lh-E4AtVsao9rJWwJdPA5mHDGiXMOY461o5bKGE3GVmPj15cEPFG26rLA=s320" width="180" /></a></div><br /><p class="MsoNormal"><br /></p><p class="MsoNormal">Pro 4は44Wだったんで、<span lang="EN-US">Anker Nano II 65W</span>+<span lang="EN-US">Sisyphy Surface PD</span>を使って充電していました。Pro 8に変更してから、どうやら電圧が<span lang="EN-US">65Wになっているらしく、給電するときに低速警告メッセージが発生するようになりました。</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhgYNzbIdgcGylLF-l-4iJZyVkPdQjOHgy2jOaJLC4WTsbmlhfOLPmm-zlWYdEqGzYpti-XOx69XWyCLrgX09_x2sKTV6r7YeStLryZs6y8J4Wj_mILno5TTnRb7KfoSuSyJakjbtSwHAeAUbzlbEQyJm9M-9P6MtoIuSsurOH1A6j0CrM02gnQnkqEhg=s740" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="260" data-original-width="740" height="112" src="https://blogger.googleusercontent.com/img/a/AVvXsEhgYNzbIdgcGylLF-l-4iJZyVkPdQjOHgy2jOaJLC4WTsbmlhfOLPmm-zlWYdEqGzYpti-XOx69XWyCLrgX09_x2sKTV6r7YeStLryZs6y8J4Wj_mILno5TTnRb7KfoSuSyJakjbtSwHAeAUbzlbEQyJm9M-9P6MtoIuSsurOH1A6j0CrM02gnQnkqEhg=s320" width="320" /></a></div><br /><p class="MsoNormal">今は<span lang="EN-US">USB-C</span>直で充電しています。電圧落ちない<span lang="EN-US">Connect</span>ポート変換ケーブルあったら教えてもらえると嬉しいです。</p><p class="MsoNormal">Anker Nano II 65Wは、USB-PD電源として軽くて小さくて、お勧めです。</p><p class="MsoNormal"><a href="https://www.amazon.co.jp/dp/B08X11GD52">https://www.amazon.co.jp/dp/B08X11GD52</a></p><p class="MsoNormal"><br /></p>
<h2 style="text-align: left;"><span style="font-size: large;">総論:(重量が)重くなるけど、それ以外は満足(慣れ?)</span></h2>
<p class="MsoNormal">仕事の都合上、<span lang="EN-US">Surface Pro 4(</span>壊れたのと別のマシン<span lang="EN-US">)</span>と同時使用しておりますが、持ち心地は旧マシンのほうがよかった気がします。便利になると大きくなるのは仕方ないのかな。。。これは頑張って慣れていきます。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">といった感じで思ったことをつらつら書いていきました。気が向いたら<span lang="EN-US">Windows10</span>から<span lang="EN-US">Windows11</span>に変わったことで良かったこと、悪かったことも書いていこうかと思います。気が向いたらですが。。。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">ライタス株式会社では今回ご紹介した<span lang="EN-US">Surface Pro 8</span>はもちろんのこと、様々な<span lang="EN-US">IT</span>機器の購入から導入まで承っております。新たに<span lang="EN-US">IT</span>機器及びシステムを導入したいといったことがあれば、お気軽にお問い合わせフォームまたは担当者までご連絡ください。<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><br />ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-62343795692284192942022-01-17T11:58:00.005+09:002022-01-17T11:58:31.935+09:00SQL 文から ER 図を自動生成してくれる SchemaSpy を docker-compose でやってみた | ライタス株式会社<meta name="viewport" content="width=device-width, initial-scale=1">
<meta keywords="">
<style>
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #24292e;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,
sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
.dark, .solarizedDark {
color: #FFF;
}
details {
display: block;
}
summary {
display: list-item;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline-width: 0;
}
[type='checkbox'] {
box-sizing: border-box;
padding: 0;
}
* {
box-sizing: border-box;
}
input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #0366d6;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
strong {
font-weight: 600;
}
hr:before {
content: '';
display: table;
}
hr:after {
clear: both;
content: '';
display: table;
}
td,
th {
padding: 0;
}
details summary {
cursor: pointer;
}
p {
margin-bottom: 10px;
margin-top: 0;
}
ol ol,
ul ol {
list-style-type: lower-roman;
}
ol ol ol,
ol ul ol,
ul ol ol,
ul ul ol {
list-style-type: lower-alpha;
}
dd {
margin-left: 0;
}
code,
pre {
font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier,
monospace;
font-size: 12px;
}
input::-webkit-inner-spin-button,
input::-webkit-outer-spin-button {
-webkit-appearance: none;
appearance: none;
margin: 0;
}
&:before {
content: '';
display: table;
}
&:after {
clear: both;
content: '';
display: table;
}
> :first-child {
margin-top: 0 !important;
}
> :last-child {
margin-bottom: 0 !important;
}
a:not([href]) {
color: inherit;
text-decoration: none;
}
blockquote {
margin: 0;
border-left: 0.25em solid #dfe2e5;
color: #6a737d;
padding: 0 1em;
}
blockquote,
dl,
ol,
p,
pre,
table,
ul {
margin-bottom: 16px;
margin-top: 0;
}
blockquote > :first-child {
margin-top: 0;
}
blockquote > :last-child {
margin-bottom: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 600;
line-height: 1.25;
margin-bottom: 16px;
margin-top: 24px;
}
h1,
h2 {
border-bottom: 1px solid #eaecef;
padding-bottom: 0.3em;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
h2 {
font-size: 1.5em;
}
h3 {
font-size: 1.25em;
}
h4 {
font-size: 1em;
}
h5 {
font-size: 0.875em;
}
h6 {
color: #6a737d;
font-size: 0.85em;
}
ol,
ul {
padding-left: 2em;
}
ol ol,
ol ul,
ul ol,
ul ul {
margin-bottom: 0;
margin-top: 0;
}
li {
word-wrap: break-all;
}
li > p {
margin-top: 16px;
}
li + li {
margin-top: 0.25em;
}
dl {
padding: 0;
}
dl dt {
font-size: 1em;
font-style: italic;
font-weight: 600;
margin-top: 16px;
padding: 0;
}
dl dd {
margin-bottom: 16px;
padding: 0 16px;
}
table {
border-collapse: collapse;
border-spacing: 0;
display: block;
overflow: auto;
width: 100%;
}
table th {
font-weight: 600;
}
table td,
table th {
border: 1px solid #dfe2e5;
padding: 6px 13px;
}
table tr {
background-color: #fff;
border-top: 1px solid #c6cbd1;
}
table tr:nth-child(2n) {
background-color: #f6f8fa;
}
img {
border-style: none;
background-color: #fff;
box-sizing: content-box;
max-width: 100%;
}
img[align='right'] {
padding-left: 20px;
}
img[align='left'] {
padding-right: 20px;
}
code {
background-color: rgba(27, 31, 35, 0.05);
border-radius: 3px;
font-size: 85%;
margin: 0;
padding: 0.2em 0.4em;
}
p code,
li code
{
padding: 2px;
border-width: 1px;
border-style: solid;
border-radius: 5px;
}
pre {
word-wrap: normal;
}
pre > code {
background: transparent;
border: 0;
font-size: 100%;
margin: 0;
padding: 0;
white-space: pre;
word-break: normal;
}
.highlight {
margin-bottom: 16px;
}
.highlight pre {
margin-bottom: 0;
word-break: normal;
}
.highlight pre,
pre {
background-color: #f6f8fa;
border-radius: 3px;
font-size: 85%;
line-height: 1.45;
overflow: auto;
padding: 16px;
}
pre code {
background-color: transparent;
border: 0;
display: inline;
line-height: inherit;
margin: 0;
max-width: auto;
overflow: visible;
padding: 0;
word-wrap: normal;
}
kbd {
background-color: #fafbfc;
border: 1px solid #d1d5da;
border-bottom-color: #c6cbd1;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #c6cbd1;
color: #444d56;
display: inline-block;
font: 11px SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier,
monospace;
line-height: 10px;
padding: 3px 5px;
vertical-align: middle;
}
:checked + .radio-label {
border-color: #0366d6;
position: relative;
z-index: 1;
}
.task-list-item {
list-style-type: none;
}
.task-list-item + .task-list-item {
margin-top: 3px;
}
.task-list-item input {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
hr {
box-sizing: content-box;
background: transparent;
overflow: hidden;
background-color: #e1e4e8;
border: 0;
height: 0.25em;
margin: 24px 0;
padding: 0;
border-bottom: 1px solid #eee;
}
.dark p code,
.dark li code
{
background-color: rgba(255,255,255,0.12);
border-color: rgba(255,255,255,0.3);
color: #03C588;
}
.auto p code,
.auto li code
{
background-color: #F9F9F9;
border-color: rgba(0,0,0,0.26);
color: #03C588;
}
.light p code,
.light li code
{
background-color: #F9F9F9;
border-color: rgba(0,0,0,0.26);
color: #03C588;
}
.sepia p code,
.sepia li code
{
background-color: #efe8d6;
border-color: rgba(0,0,0,0.26);
color: #F77942;
}
.solarizedDark p code,
.solarizedDark li code
{
background-color: rgba(255,255,255,0.12);
border-color: rgba(255,255,255,0.3);
color: #36abe3;
}
</style>
<p>お世話になります。 田所です。</p>
<p>弊社は開発をすることは基本はないのですが、データベース周りを扱うことはよくあります。</p>
<p>最近、こんな連絡がありました。</p>
<blockquote>
<p>DB設計をしてみたのでテーブル内容、リレーション等不備がないか確認をお願いします。
添付ファイル: DB.sql</p>
</blockquote>
<p>添付の中を確認しますと、、</p>
<pre class="cm-s-ambiance CodeMirror"><code>CREATE TABLE product (
category INT NOT NULL, id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)
) ENGINE=INNODB;
......
...........続く
</code></pre>
<p>なるほど、わからん。</p>
<p>SQL文だけではさすがにしんどいですよね。</p>
<p>なのでSQL文からER図を作成してくれる<a href="https://github.com/schemaspy/schemaspy">Schemaspy</a>を使ってみました。</p>
<p>どうやらSchemaspyはJavaベースで動いて、MYSQL等のデータベースへアクセスして情報を取得し、最終的なレポートを静的なHTMLで生成してくれるものみたいですね。</p>
<p>手順として以下のような感じになります。</p>
<ol>
<li>JavaとMySQLをインストール</li>
<li>MySQLにSQL文をマイグレート</li>
<li>Schemaspyを実行</li>
</ol>
<p>うーん、、、なかなか面倒そうだし、ってことなので使い回しも考えてDocker化しちゃいます!</p>
<p>参考記事</p>
<ul>
<li><a href="https://qiita.com/ap8322/items/b93dfb2ff29b026ffa72">まだ ER 図の管理で消耗してるの? SchemaSpy で ER 図を自動生成して管理する</a></li>
</ul>
<h1>構成</h1>
<ul>
<li>構成図</li>
</ul>
<p>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css"><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgs9wpFlI3DaI-Hi9sv0pjkONSQT6LxcFN39kdC-vKhkq5Oka0i6iOhQMRHhsGVjdGdU6obvKzj7mHQM-rsAQAh7zDBe_jLYHlTTzLLG-PBjqyxUMse5UWts_u4HK0owJJOsz_znuNrr9pGT7cy2wG3tx8uAXgRj-hwZ8V84GVkSBU_Ml5YvjCT7Hkz4w=s756" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="481" data-original-width="756" src="https://blogger.googleusercontent.com/img/a/AVvXsEgs9wpFlI3DaI-Hi9sv0pjkONSQT6LxcFN39kdC-vKhkq5Oka0i6iOhQMRHhsGVjdGdU6obvKzj7mHQM-rsAQAh7zDBe_jLYHlTTzLLG-PBjqyxUMse5UWts_u4HK0owJJOsz_znuNrr9pGT7cy2wG3tx8uAXgRj-hwZ8V84GVkSBU_Ml5YvjCT7Hkz4w=s320"/></a></div>
</p>
<ul>
<li>ファイル構成</li>
</ul>
<pre class="cm-s-ambiance CodeMirror"><code>SchemaSpy/
├── README.md
├── Dockerfile
├── docker-compose.yml
├── mysql
│ └── table.sql // xxxx.sql と拡張子がsqlになっているSQL文のファイルを配置する
└── output // このフォルダにHTML,CSS,JSが生成される
</code></pre>
<p>Dockerイメージにはschemaspy/schemaspy:snapshotのイメージがあるので使いました。</p>
<p>しかし実行の際にmysql-connector-javaのバージョンが低いため失敗するので新しいmysql-connector-javaを入れています。</p>
<p>参考記事: <a href="https://qiita.com/ngyuki/items/4efa0734e8d8582bfc16">Docker でサクッと MySQL 8 から ER 図を作成する</a></p>
<p><code>Dockerfile</code></p>
<pre class="cm-s-ambiance CodeMirror"><code>FROM schemaspy/schemaspy:snapshot
USER root
RUN apk update && \
apk add mysql-client && \
mkdir -p drivers && \
apk add --update openssl && \
wget -P /tmp https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.16.tar.gz && \
tar xvzf /tmp/mysql-connector-java-8.0.16.tar.gz -C /tmp && \
cp /tmp/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar /drivers/. && \
rm -rf /tmp/mysql-connector-java-8.0.16*
</code></pre>
<p>docker-composeは若干の工夫が必要で、
先にschemaspyコンテナが起動するとMySQLへの接続エラーとなるため、
MySQLが正常に接続できるようになるのを確認したらschemaspyコンテナを起動させます。</p>
<p>そのためMySQLコンテナにヘルスチェック項目を、
schemaspyコンテナにはdepends_onでcondition: service_health、
とすることでMySQLのヘルスチェックが成功した後、schemaspyコンテナを起動します。</p>
<p><a href="https://hub.docker.com/_/mysql">MySQLコンテナの公式</a>に<strong>/docker-entrypoint-initdb.dに.sqlファイルを配置したらこれらをインポートする</strong>と書いてあるのでこれを利用してマウントさせています。</p>
<p><code>docker-compose.yml</code></p>
<pre class="cm-s-ambiance CodeMirror"><code>version: "2"
services:
db:
image: mysql:8
container_name: "mysql"
volumes:
- ./mysql:/docker-entrypoint-initdb.d
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=SCHEMASPY_DATABASE
ports:
- 3306:3306
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u root -proot || exit 1
schemaspy:
build:
context: .
container_name: "schemaspy"
environment:
- MYSQL_ROOT_PASSWORD=root
volumes:
- ./output:/output
depends_on:
db:
condition: service_healthy
command: -t mysql -host db:3306 -db SCHEMASPY_DATABASE -u root -p root -s SCHEMASPY_DATABASE
</code></pre>
<h1>実行</h1>
<h3>1. mysql フォルダに拡張子が.sql の SQL ファイルを配置する</h3>
<p> 今回はサンプルとして<a href="https://dev.mysql.com/doc/refman/5.6/ja/create-table-foreign-keys.html">MySQL 公式の SQL 文</a>をtable.sqlという名前で配置しています。</p>
<p> ※<strong>SQL文には<code>CREATE DATABASE</code>の記載はせず<code>CREATE TABLE</code>のみ記載してください。</strong></p>
<h3>2. コマンド実行: <code>docker-compose build</code></h3>
<p>mysql-connector-java-8.0.16.tar.gzがリンクぎれになってエラーになった場合は最新のものを取得してください。</p>
<p>参考: <a href="https://www.mysql.com/jp/products/connector/">https://www.mysql.com/jp/products/connector/</a></p>
<h3>3. コマンド実行: <code>docker-compose up</code></h3>
<p>まずMySQLが立ち上がります。</p>
<pre class="cm-s-ambiance CodeMirror"><code>xxxx@DESKTOP-xxxxx:~/schemaspy$ docker-compose up
[+] Running 2/2
⠿ Container mysql Created 0.1s
⠿ Container schemaspy Created 0.1s
Attaching to mysql, schemaspy
mysql | 2022-01-14 10:29:42+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
mysql | 2022-01-14 10:29:42+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql | 2022-01-14 10:29:42+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
mysql | 2022-01-14 10:29:43+00:00 [Note] [Entrypoint]: Initializing database files
......
........続く
mysql | 2022-01-14T10:30:00.672640Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
mysql | 2022-01-14T10:30:00.672703Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.27' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
</code></pre>
<p>準備ができ、そのまま少し待つとSchemaSpyが起動します。</p>
<pre class="cm-s-ambiance CodeMirror"><code>schemaspy | Using drivers:mysql-connector-java-8.0.16.jar
schemaspy | ____ _ ____
schemaspy | / ___| ___| |__ ___ _ __ ___ __ _/ ___| _ __ _ _
schemaspy | \___ \ / __| '_ \ / _ \ '_ ` _ \ / _` \___ \| '_ \| | | |
schemaspy | ___) | (__| | | | __/ | | | | | (_| |___) | |_) | |_| |
schemaspy | |____/ \___|_| |_|\___|_| |_| |_|\__,_|____/| .__/ \__, |
schemaspy | |_| |___/
schemaspy |
schemaspy | 6.1.1-SNAPSHOT
schemaspy |
schemaspy | SchemaSpy generates an HTML representation of a database schema's relationships.
schemaspy | SchemaSpy comes with ABSOLUTELY NO WARRANTY.
schemaspy | SchemaSpy is free software and can be redistributed under the conditions of LGPL version 3 or later.
schemaspy | http://www.gnu.org/licenses/
schemaspy |
schemaspy | INFO - Starting Main v6.1.1-SNAPSHOT on 28ae269f727b with PID 1 (/usr/local/lib/schemaspy/schemaspy-6.1.1-SNAPSHOT.jar started by root in /)
schemaspy | INFO - The following profiles are active: default
schemaspy | INFO - Started Main in 1.523 seconds (JVM running for 2.257)
schemaspy | INFO - Starting schema analysis
mysql | mbind: Operation not permitted
...................
schemaspy exited with code 0
</code></pre>
<p>無事終了したら Ctrl + C でコンテナを終了させます。</p>
<pre class="cm-s-ambiance CodeMirror"><code>^CGracefully stopping... (press Ctrl+C again to force)
[+] Running 2/2
⠿ Container schemaspy Stopped 3.1s
⠿ Container mysql Stopped 2.0s
canceled
</code></pre>
<h3>4. output フォルダに HTML,CSS,JS が生成される</h3>
<p>ホスト側のoutputフォルダにファイルが生成されています!</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgQYzY0YQX4RGivJ_HaK7ERs23d59xCviLHMFjdi-DUrzL6vXyOj3TPpIQWsUYBdfTP4sz-aJhbhoajkucdUi--X9WUrs-aC2Zaum4T3XM3H29uIoQAAYaur4bAwz8miw-WST2cdSoSwQZeXOFdiZL8a6uMdyxE0yFgNVk_dgNAspkZgMRebsZ7GPya3w=s884" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="535" data-original-width="884" src="https://blogger.googleusercontent.com/img/a/AVvXsEgQYzY0YQX4RGivJ_HaK7ERs23d59xCviLHMFjdi-DUrzL6vXyOj3TPpIQWsUYBdfTP4sz-aJhbhoajkucdUi--X9WUrs-aC2Zaum4T3XM3H29uIoQAAYaur4bAwz8miw-WST2cdSoSwQZeXOFdiZL8a6uMdyxE0yFgNVk_dgNAspkZgMRebsZ7GPya3w=s320"/></a></div>
</p>
<p>この中にあるIndex.htmlファイルを開きます。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhshzkylApivX6Ht6suTHLxZa1DlNnkpHDODlM7mmwYsdmazzhOoNfCbr_MC7JRv5pKDaovpSUFoxReIduqSFR0QS1e5mIpcKyJyMxv82cqyFnHLFVZ51CqErNYFLLuWeEUFWkqjpqu403xD6jLgIzVT_qbK6SZIacco4hXWZZw1lX8qFMaW4pKOJwmcg=s1916" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="844" data-original-width="1916" src="https://blogger.googleusercontent.com/img/a/AVvXsEhshzkylApivX6Ht6suTHLxZa1DlNnkpHDODlM7mmwYsdmazzhOoNfCbr_MC7JRv5pKDaovpSUFoxReIduqSFR0QS1e5mIpcKyJyMxv82cqyFnHLFVZ51CqErNYFLLuWeEUFWkqjpqu403xD6jLgIzVT_qbK6SZIacco4hXWZZw1lX8qFMaW4pKOJwmcg=s320"/></a></div>
</p>
<p>問題なくみれました!</p>
<p>上にある「Relationships」をからER図を確認してみます。</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh9ZdX59c5ghEhBOF2gGOtF-wjvW1xO0Gsu5GFaffrm54Pn6EcosqulMOae75_KpTXvX0BCcb82978MjX6WSqX94EDcT8HOZQD5Oj8G7onHhNWJUumyU7GqgYCtRzzcflxE9FmdvpLclTY3mv41aEn0vkDiuQ7XrDF8oikA_Aadr5l5DJgmJ23SR66yhw=s1365" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="595" data-original-width="1365" src="https://blogger.googleusercontent.com/img/a/AVvXsEh9ZdX59c5ghEhBOF2gGOtF-wjvW1xO0Gsu5GFaffrm54Pn6EcosqulMOae75_KpTXvX0BCcb82978MjX6WSqX94EDcT8HOZQD5Oj8G7onHhNWJUumyU7GqgYCtRzzcflxE9FmdvpLclTY3mv41aEn0vkDiuQ7XrDF8oikA_Aadr5l5DJgmJ23SR66yhw=s320"/></a></div>
</p>
<p>いい感じにER図作らています!</p>
<p>今回のソースはGitHubにも上げています。</p>
<p>使いまわしが効くので便利です!</p>
<hr>
<p>ご参考までに!</p>
<p><a href="https://github.com/tadokoroshoma/schemaspy_docker_compose">https://github.com/tadokoroshoma/schemaspy_docker_compose</a></p>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-79654762996607966722021-06-09T16:06:00.003+09:002021-06-09T16:06:32.786+09:00AWS EC2(Amazon Linux 2 AMI)でよく行う設定をシェルスクリプトにしてみました | ライタス株式会社お世話になります。 新入社員の<b>田所</b>です。<br />
<br />
最近AWSでの構築のお仕事が重なり、「これ前もやった設定だな・・・」なんてことをSSHで設定する度に感じました。<br /><br />
なので最低限これはレシピとして持っておいて正解かな?っていう内容をシェルスクリプトにしてみました。<br />
Amazon Linux 2 AMIでの方法ですのでご了承ください。<br />
また、これだけではCloudWatch等サービスとの連携はできず、<b>適切なIAMロールをEC2に適応する必要があります。</b><br />
今回はEC2側の設定のみです。<br />
※あくまで参考程度にして頂き、細かい設定は各環境に合わせて変更、運用してください。<br>
<br />
今回は下記のような設定をスクリプトにしています。<br />
<ul>
<li>日本時間に設定</li>
<li>CloudWatchAgentのインストール、起動</li>
<li>ec2-userのロック、新規ユーザーの作成</li>
<li>CloudWatchLogsのインストール、設定、起動</li>
</ul>
<br>
↓が作成したものです。
<br /><br />
<pre class="prettyprint">
#!/bin/bash
# =====①アップデート======
yum -y update
# =====②インスタンス名を環境変数に定義しておく======
echo "export INSTANCE_NAME='product-ec2-web-1a'" >> /etc/profile
source /etc/profile
# =====③日本時間に設定======
cp -p /usr/share/zoneinfo/Japan /etc/localtime
cat << EOF > /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true
EOF
# =====④amazon-cloudwatch-agentの設定======
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s
# =====⑤新規ユーザーを作成し、ec2-userを使用不可にする======
USER_NAME="new_user"
groupadd -g 1010 $USER_NAME
useradd -u 1010 -g 1010 -G 10 $USER_NAME
echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
cp -R -p /home/ec2-user/.ssh/ /home/$USER_NAME/.ssh/
chown -R $USER_NAME:$USER_NAME /home/$USER_NAME/.ssh/
usermod -s /bin/false ec2-user
# =====⑥CloudwatchLogsの設定======
yum install -y awslogs
cat << 'EOF' > /etc/awslogs/awscli.conf
[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1
EOF
# Logsに送信するログの定義
cat << 'EOF' > /etc/awslogs/awslogs.conf
[general]
state_file = /var/lib/awslogs/agent-state
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = EC2-syslog-/var/log/messages
[/var/log/cron]
datetime_format = %b %d %H:%M:%S
file = /var/log/cron
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = EC2-syslog-/var/log/cron
[/var/log/secure]
datetime_format = %b %d %H:%M:%S
file = /var/log/secure
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = EC2-syslog-/var/log/secure
[/var/log/yum.log]
datetime_format = %b %d %H:%M:%S
file = /var/log/yum.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = EC2-syslog-/var/log/yum.log
EOF
sed -i "s/{instance_id}/$INSTANCE_NAME/g" /etc/awslogs/awslogs.conf
systemctl start awslogsd.service
systemctl enable awslogsd.service
</pre>
<br /><br />
<h2>補足</h2><br />
<ul>
<li>
②インスタンス名を環境変数に定義しておく
<ul>
複数のインスタンス識別しやすくするため環境変数に任意の名前を設定しています。(⑥で使用します)<br />
</ul>
</li>
<li>
④amazon-cloudwatch-agentの設定
<ul>
今回は設定ファイルの指定をしていません。設定をカスタマイズして設定ファイルを生成するには
<pre class="prettyprint">sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard</pre>
で対話形式で設定ファイルを生成できます。<br />
↓公式ドキュメント<br />
<a href="https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html" target="blank">https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html</a><br /><br />
また、生成された設定ファイルはコマンド実行時に下記のようにファイル指定する必要がありますのでご注意ください。
<pre class="prettyprint">sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path</pre>
↓公式ドキュメント<br />
<a href="https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html" target="blank">https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html</a><br />
</ul>
</li>
<li>
⑤新規ユーザーを作成し、ec2-userを使用不可にする
<ul>
ec2インスタンスはデフォルトユーザーとしてec2-userを生成しますが、セキュリティ的には使用しないことが良いとされていますので、ec2-userをロックし、代わりの新規ユーザー(例ではnew-user)を作成します。<br />
今後は作成したユーザーでSSH接続できるようになります。
<br>
<pre class="prettyprint">echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers</pre>
上記コマンドについてはパスワード確認無しで管理者権限のコマンドを実行できてしまいますので、運用にはご注意ください。<br />
</ul>
</li>
<li>
⑥CloudwatchLogsの設定
<ul>
/etc/awslogs/awslogs.confでどのログファイルを送信するのか定義します。<br />
書き方の詳細は↓公式ドキュメントを参考<br />
<a href="https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html" target="blank">https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html</a><br /><br />
今回は最低限見れるべき状態にしておきたい[/var/log/messages],[/var/log/cron],[/var/log/secure],[/var/log/yum.log]に絞っています。<br />
webサーバー(apache等)を稼働させている場合はそのログファイルも追加します。<br />
<pre class="prettyprint">sed -i "s/{instance_id}/$INSTANCE_NAME/g" /etc/awslogs/awslogs.conf</pre>
上記コマンドは①で定義した環境変数INSTANCE_NAMEの値をログストリーム名にしています。<br />
こうすることで、CloudWatchLogsで確認すると
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCcnBLp2vDauXz4ULbozCvQLPkGQDTMwFaQa6oqTrtGyAPBsR7xEcQGHmbxYwDHsg69V1xWcLrxk_NfAUvwZWxJvJDpKGvwlUuWmAi_0p2wrt58E4eoPjr_8GkSPILWQuEZ93bjRzFT8it/s763/%25E7%2584%25A1%25E9%25A1%258C.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="659" data-original-width="763" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCcnBLp2vDauXz4ULbozCvQLPkGQDTMwFaQa6oqTrtGyAPBsR7xEcQGHmbxYwDHsg69V1xWcLrxk_NfAUvwZWxJvJDpKGvwlUuWmAi_0p2wrt58E4eoPjr_8GkSPILWQuEZ93bjRzFT8it/s320/%25E7%2584%25A1%25E9%25A1%258C.png" width="320" /></a></div>
このようにインスタンスを一目で識別できます。<br />
</ul>
</li>
</ul>
<hr />
最後このスクリプトをEC2起動設定の「ステップ 3: インスタンスの詳細の設定」の「高度な詳細」の「ユーザーデータ」に張り付けるだけで一気に構築時に実行してくれます。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgglDNaKaokWX-1JR49wEZzZ17iotW33NWQt9Xk11ogFC_kZrdqv5HB6CblT-_m_mUfNXE_4Gz4DxXHZriYuLx2QPptHAbPfqVgtOJpTfWQuVm37DRDg_BiLZ3t9SSzE07hGUvBqowpkbys/s857/2%25E7%2584%25A1%25E9%25A1%258C.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="358" data-original-width="857" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgglDNaKaokWX-1JR49wEZzZ17iotW33NWQt9Xk11ogFC_kZrdqv5HB6CblT-_m_mUfNXE_4Gz4DxXHZriYuLx2QPptHAbPfqVgtOJpTfWQuVm37DRDg_BiLZ3t9SSzE07hGUvBqowpkbys/s320/2%25E7%2584%25A1%25E9%25A1%258C.png" width="320" /></a></div>
別の方法としてAnsibleとかで構成管理をすることも可能ですが、他で流用しにくいので、<br />
今回のようにシェルスクリプトで持っておいてユーザーデータに流しこむ方が個人的には好きです!!<br />
Terraformではユーザーデータを使用できるので、これをそのまま使えますね!<br /><br />
<br />では、これからも精進致します!
</ul></ul>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com1tag:blogger.com,1999:blog-4490000306155762182.post-86945441325770860922021-05-11T15:21:00.002+09:002021-05-11T15:21:14.365+09:00AWS リセラー登録により、ディスカウント販売が可能となりました | ライタス株式会社この度、ダイワボウ情報システム様との連携により、AWSのリセラー販売が可能となりましたので、お知らせいたします。
AWSリセラー販売は、これからAWSを利用しようとしている方だけでなく、すでにAWSを利用されている方も移行することができます。
また、請求書払い、円払いにて取り扱いが可能です。
詳細については、弊社問い合わせ窓口よりお問い合わせください。ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com1tag:blogger.com,1999:blog-4490000306155762182.post-40545757961566801622020-11-30T12:40:00.002+09:002020-11-30T12:40:33.106+09:00サテライト会場のある会議における設営方法 | ライタス株式会社<div>ライタス代表の箕谷です。</div>新型コロナウィルスの関係で、オンライン会議の引き合いを多数いただいております。<div><br /></div><div>オンライン会議の環境作成には、いろいろと工夫方法が展開されてきており、数人クラスの会議では、ほぼ問題なく実施されているように見受けられます。</div><div>ただ、大人数が参加する会議(総会など)の開催のノウハウについては、まだ浸透していないのではないかと思います。</div><div><br /></div><div>たまたまの機会を頂いて、別室で別会場のあるパターンの会議を設置運営させていただきましたので、参考までに事例報告したいと思います。<br /><br /></div><div>両隣内扉でつながっているの広めの部屋を2つ使いまして、会場を設営しています。(イメージ図は次の通り<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBsuwKoo-pT59lbjadaoao28xYrGRQbbTwoT7c7wUqS3sWcedfEIa1EJOeWqc2bEHZnigfDMohXUOKtujM9R3yhTSVYPlwJ42j-5xJOw7lA9rM9zWCXjc2_rVM7i3Vmn8ZiDBOCGveiYD6/s1184/%25E9%2585%258D%25E4%25BF%25A1%25E6%25A6%2582%25E7%2595%25A5%25E5%259B%25B31.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="902" data-original-width="1184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBsuwKoo-pT59lbjadaoao28xYrGRQbbTwoT7c7wUqS3sWcedfEIa1EJOeWqc2bEHZnigfDMohXUOKtujM9R3yhTSVYPlwJ42j-5xJOw7lA9rM9zWCXjc2_rVM7i3Vmn8ZiDBOCGveiYD6/s320/%25E9%2585%258D%25E4%25BF%25A1%25E6%25A6%2582%25E7%2595%25A5%25E5%259B%25B31.png" width="320" /></a></div></div>仕様したシステムや機材の概略は以下の通りです。<div><br /></div>
<table border="1">
<tbody><tr><th>場所</th><th>概要</th></tr>
<tr><td>会議システム</td><td>Google Meet</td></tr>
<tr><td rowspan="4">メイン会場PC</td><td>ノートPC</td></tr>
<tr><td>Jabra SPEAK 510 (BlueTooth接続)</td></tr>
<tr><td>キャプチャーボード HSV323 (USB接続)</td></tr>
<tr><td>ビデオカメラ HC-VX870 (HDMI接続)</td></tr>
<tr><td rowspan="4">別室PC</td><td>ノートPC</td></tr>
<tr><td>マイクスピーカー YVC-330</td></tr>
<tr><td>プロジェクター BENQ MH550</td></tr>
<tr><td>スクリーン PRS-Y90HD</td></tr>
</tbody></table><br /><div>
各機器の接続方法については、マニュアル参照としてここでは記載しません。
</div><div>手順としては、各PCに機材を接続して、各部屋にあるノートPCからGoogle Meetの同じ会議に参加すれば出来上がりです。</div><div>接続するときに、カメラや音声の接続デバイスに注意すれば、取り急ぎの環境はできると思います。</div><div><br /></div><div>会議を運営する上で、注意しないといけない点がいくつかありましたので、記載しておきます。</div><div><br /></div><div>・部屋が隣だと、マイクが音を拾ってしまいエコーが発生してしまう</div><div>・別室側には係員を配置して、質問等があったときに連携する必要がある</div><div>・別室発言者は、マイクの前でマイクをオンにするか、メイン会場に行く必要がある</div><div>・カメラは録画モードにしておかないと、省電力モードになってしまい画面が落ちてしまう</div><div>・Jabraの音が拾える範囲は3mが限度なので、発言者が変わる場合は、Jabraを移動させる必要がある(他のPCで展開しても回避できるが、ハウリングに注意)</div><div>・Jabraのボタンが運んでいるうちにボタンを押してしまい、モードがおかしくなる</div><div><div><br /></div></div><div>事前に検証していたので、そこまで本番ではトラブルなく運営できました。</div><div>また、会議が長丁場になって心配していたJabraの電源は、3時間ぐらい給電なしで耐えられたのが、ナレッジとしては収穫でした。</div><div><br /></div><div>また、この方式であれば、遠隔地にいる参加者も参加できるということで、今回も遠方の方が数名参加されました。</div><div><br /></div><div>機材費はそこそこ費用が掛かるものの、ノートPCを除くと30万円以内には収まるはずなのと、</div><div>その後のWeb会議にも使えるはずなので、そこまで悪い投資ではないと思います。</div><div><br /></div><div>以上、事例報告でした。</div><div><br /></div><div>弊社では機材調達から、このような運営の支援なども実施しております。</div><div>お問い合わせは弊社HPよりお寄せください。</div><div><br /></div><div><br /></div><div><br /></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-66584634735798413962020-11-24T20:18:00.001+09:002021-04-20T11:36:46.502+09:00Dockerコンテナ化させたHLSのwebストリーミング配信環境構築(さくらのクラウド,Centos, Nginx,FFmpeg,docker) | ライタス株式会社こんにちわ。<br />
<span style="border-bottom: 1px solid black;"><b>10月より新入社員として入社しました田所です。</b></span><br />
<br />
今回もストリーミングサーバーネタです!<br>
今回は前回構築したffmpegとnginxを使ったHLSでwebストリーミング配信環境をDockerでコンテナにまとめて、
どこでも簡単に環境を構築できるようにしちゃいます(^^♪<br>
前回の記事↓<br>
<a href="https://blog.litus.co.jp/2020/11/hlsflashplayerwebcentos-nginxffmpeg.html" target="_blank" rel="noopener noreferrer">
https://blog.litus.co.jp/2020/11/hlsflashplayerwebcentos-nginxffmpeg.html
</a><br><br>
さて、今回もコンテナ化するにあたってアーキテクト図を書きます!<br>
参考記事↓<br>
<a href="https://blog.soushi.me/entry/2017/02/17/135834/" target="_blank" rel="noopener noreferrer">https://blog.soushi.me/entry/2017/02/17/135834/</a><br><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg17oZY-tqRTYmLuMW4SH-4av3ZBSfsBufBaTm2lk_BUcRcokpH0mbkzaA8YRb0k_xZWiGCYw-Zqkh1PCf_cF-p0Qvybq2SWPGWzRJDAJWAZq8gfrUxj-EOZKIDA7zewx9M7mxYtPxczt2s/s962/%25E3%2582%25A2%25E3%2583%25BC%25E3%2582%25AD%25E3%2583%2586%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%2588.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="521" data-original-width="962" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg17oZY-tqRTYmLuMW4SH-4av3ZBSfsBufBaTm2lk_BUcRcokpH0mbkzaA8YRb0k_xZWiGCYw-Zqkh1PCf_cF-p0Qvybq2SWPGWzRJDAJWAZq8gfrUxj-EOZKIDA7zewx9M7mxYtPxczt2s/s320/%25E3%2582%25A2%25E3%2583%25BC%25E3%2582%25AD%25E3%2583%2586%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%2588.jpg"/></a></div>
基本は前回のcentos上で構築したもののと同じにするのですが、下記の通りコンテナならではの構成に若干変更しました。<br>
<ul>
<li>RTMP→HLS変換するコンテナとweb配信するコンテナで分割</li>
<li>二つのコンテナをdocker-composeでまとめて起動、停止可能</li>
<li>hls配信に必要なm3u8ファイル等はdockerボリューム上に置き、コンテナ間で共有させる</li>
</ul>
<h2>なんだかモダンでかっこいい!!(笑)</h2><br><br>
今回はローカル環境にDockerを入れてローカル上で構築を確認できたら、まるっと本番に移します。<br>
というわけで本日の作業は環境構築含め以下の内容で進めていきます<br>
<ul>
<li>Docker for windowsをインストール(起動確認まで)</li>
<li>Dockerfile、docker-compose.yml等必要なファイルを作成</li>
<li>ローカルでイメージをビルド→コンテナ起動→確認</li>
<li>さくらのクラウド(CentOS)上で起動→確認</li>
</ul>
<br>
<hr>
<h2 style="background-color: yellow; font-weight: bold;">1.Docker for windowsをインストール</h2>
※Windows10 Pro 64bitでのDockerインストールした手順について記述しています。<br>
参考記事↓<br>
<a href="https://www.public.ne.jp/2020/06/02/%E3%80%90docker%E3%80%91%E7%AC%AC9%E5%9B%9E%E3%80%80windows-10-pro-%E3%81%B8-docker-desktop-for-windows-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/" target="_blank" rel="noopener noreferrer">https://www.public.ne.jp/2020/06/02/%E3%80%90docker%E3%80%91%E7%AC%AC9%E5%9B%9E%E3%80%80windows-10-pro-%E3%81%B8-docker-desktop-for-windows-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/</a><br>
<a href="https://docs.docker.jp/docker-for-windows/install.html" target="_blank" rel="noopener noreferrer">https://docs.docker.jp/docker-for-windows/install.html</a><br><br><br>
<h3><b>Hyper-Vを有効化</b></h3><br>
[コントロール パネル] > [プログラムと機能] > [Windowsの機能の有効化または無効化] > [Hyper-V]にチェック<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgROykCrz8YFxX6aioLdH_j5jHQQRFBYm-W-_28UPxz7i8J7wZRiAqXp33zBWZ4ZuhBVYqwrGeLhrAdaRyP55zSSQgnRapzBpTGjvJGn_XhMb8tKILcM4UW12rmsZLMhtESp7OiE5RbZ4kb/s413/%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2591%25E3%2583%258D.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="367" data-original-width="413" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgROykCrz8YFxX6aioLdH_j5jHQQRFBYm-W-_28UPxz7i8J7wZRiAqXp33zBWZ4ZuhBVYqwrGeLhrAdaRyP55zSSQgnRapzBpTGjvJGn_XhMb8tKILcM4UW12rmsZLMhtESp7OiE5RbZ4kb/s320/%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2591%25E3%2583%258D.png"/></a></div>
変更後に再起動が必要<br>
<h3><b>Docker Desktop for Windowsをインストール</b></h3><br>
↓Docker Hubにインストーラーがあるので「Get Docker」をクリックしてダウンロード<br>
<a href="https://hub.docker.com/editions/community/docker-ce-desktop-windows/">https://hub.docker.com/editions/community/docker-ce-desktop-windows/</a><br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPrxsn68oA1Qtc9qCSAPZYJ5c9158kuIuHrWnZ0AcaprlqNKu48XtRh0zlKnigrAGQQ5hwcHpIgNWo9RAFIu9Iv7CBiOUf-BHveQuM2n7tDWhm8kIovRgRvPm4GRaEgvHwA4drghFRIj45/s1297/get.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="451" data-original-width="1297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPrxsn68oA1Qtc9qCSAPZYJ5c9158kuIuHrWnZ0AcaprlqNKu48XtRh0zlKnigrAGQQ5hwcHpIgNWo9RAFIu9Iv7CBiOUf-BHveQuM2n7tDWhm8kIovRgRvPm4GRaEgvHwA4drghFRIj45/s320/get.png"/></a></div>
ダウンロードが完了したら実行し、ポチポチと押して進めていきます(※基本OKを押してインストールまで終わらして問題ないので、割愛)<br>
完了したら再起動します<br>
再起動後は自動でDockerが起動する(はず)のでタスクトレイからDockerが起動していることを確認する。<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1o3dKDcg8ckmgtMilSpczUhxlrBZs1dhI0v5o7ciGJeGq-mRRhae9IKGJL3DxXQXfsaYCtLmyO9s0wVDsgDrFqDuCIGN_F5eaTHmRuh6E4Uqp2XyBZloTHAhuc2hfrmBb8Lj962WrNRz8/s252/%25E7%25A2%25BA%25E8%25AA%258D.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="121" data-original-width="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1o3dKDcg8ckmgtMilSpczUhxlrBZs1dhI0v5o7ciGJeGq-mRRhae9IKGJL3DxXQXfsaYCtLmyO9s0wVDsgDrFqDuCIGN_F5eaTHmRuh6E4Uqp2XyBZloTHAhuc2hfrmBb8Lj962WrNRz8/s320/%25E7%25A2%25BA%25E8%25AA%258D.png"/></a></div>
<h3><b>起動確認</b></h3><br>
コマンドプロンプト(またはpowershell)でDockerとdocker-composeバージョン確認<br>
<pre class="prettyprint">> docker version
Client: Docker Engine - Community
Cloud integration: 1.0.2
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:00:27 2020
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:07:04 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
</pre>
docker-compose の確認<br>
<pre class="prettyprint">> docker-compose --version
docker-compose version 1.27.4, build 40524192
</pre>
<b>完璧です!</b><br>
お試しでHello Worldを出力するだけのコンテナを実行してみます!<br>
<pre class="prettyprint">> docker run --rm hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
</pre>
※--rm オプションで実行後にコンテナを自動で削除するようにしています。<br>
上記のようなメッセージが出力されたら成功です。<br>
ついでに「docker run -it ubuntu bashでubuntuコンテナ起動してみてね。」って言っているのでやってみましょう。<br>
<pre class="prettyprint">
> docker run -it --rm ubuntu bash
root@703f8d0cae30:/#
</pre>
※ここも--rmつけて停止後にコンテナを破棄するようにしています。<br>
起動したubuntuコンテナ内にbashで操作できるようになりました。<br>
一応OSの確認。<br>
<pre class="prettyprint">
root@703f8d0cae30:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
</pre>
「exit」コマンド or 「Ctrl + D」でコンテナから抜け出せます。<br>
セットアップ完了です!<br>
超簡単にDockerを構築できました!<br><br>
<br>
<hr>
<h2 style="background-color: yellow; font-weight: bold;">2.Dockerfile、docker-compose.yml等必要なファイルを作成</h2>
ファイル構成は以下の通りとしました。<br>
<pre class="prettyprint">
streamserver/
├─ rtmp/
| ├─ Dockerfile
| └─ nginx.conf
├─ web/
| ├─ Dockerfile
| ├─ index.html
| └─ nginx.conf
└─ docker-compose.yml
</pre><br>
各ファイル内容は以下の通りです。<br>
<b>
<li>
streamserver/docker-compose.yml
</li>
</b>
<pre class="prettyprint">
version: "3"
services:
rtmp_ffmpg:
build:
context: ./rtmp
volumes:
- hls:/var/www/vhosts/live_stream
ports:
- 1935:1935
web:
build:
context: ./web
volumes:
- hls:/var/www/vhosts/live_stream
- ./web/index.html:/usr/share/nginx/html/index.html
depends_on:
- rtmp_ffmpg
ports:
- 80:80
volumes:
hls:
</pre>
ポイントは<b>volumesでhlsというdockerボリュームを作成し、rtmp_ffmpgとwebコンテナで共有している点です。</b><br>
このhlsボリュームにffmpegがコンバートしたhlsファイルが置かれるようにします<br><br>
<b>
<li>
streamserver/rtmp/Dockerfile
</li>
</b>
<pre class="prettyprint">
FROM tiangolo/nginx-rtmp:latest
COPY nginx.conf /etc/nginx/nginx.conf
RUN apt-get -y update \
&& apt install -y ffmpeg \
&& mkdir -p /var/www/vhosts/live_stream \
&& chmod -R o+rwx /var
</pre>
tiangolo/nginx-rtmpというイメージを拝借しています。<br>
このイメージ単体で<a href="https://blog.litus.co.jp/2020/10/centosnginx.html" target="_blank" rel="noopener noreferrer">初回構築したときのような</a>
RTMPでのストリーミング配信が可能です。<br>
これに更にffmpegを追加インストールし、rtmp/nginx.confをコンテナ内にコピーしています。<br>
ちみなに<br>
<pre class="prettyprint">
&& mkdir -p /var/www/vhosts/live_stream \
&& chmod -R o+rwx /var
</pre>
この部分はffmpegがhlsファイルを吐き出すディレクトリを作成しています。更にパーミッションを変更しています。<br>
※パーミッションが変更されていないとコンテナ起動時にffmpegにPermission Deniedと怒られました。<br>
docker-compose.ymlにコンテナ間で共有するディレクトリとして指定しているのが原因と思われます。
<br><br>
<b>
<li>
streamserver/rtmp/nginx.conf
</li></b>
<pre class="prettyprint">
worker_processes auto;
rtmp_auto_push on;
events {}
rtmp {
server {
listen 1935;
allow play all;
access_log /var/log/nginx/rtmp_access.log;
application live1 {
live on;
exec ffmpeg -i rtmp://localhost/live1/$name -async 1 -vsync cfr -acodec copy -c:v libx264 -b:v 128K -f flv rtmp://localhost/live2/$name_low;
}
application live2 {
live on;
hls on;
hls_path /var/www/vhosts/live_stream;
hls_variant _low BANDWIDTH=300000;
}
}
}
</pre>
1935ポートでRTMPを受け付けて、ffmpegが/var/www/vhosts/live_streamにhlsファイルを吐き出す旨を書いています。<br>
<br><br>
<b>
<li>
streamserver/web/Dockerfile
</li>
</b>
<pre class="prettyprint">
FROM nginx:latest
RUN apt-get -y update \
&& mkdir -p /var/www/vhosts/live_stream \
&& chmod -R 777 /var
COPY nginx.conf /etc/nginx/nginx.conf
COPY index.html /usr/share/nginx/html/index.html
</pre>
webサーバーのnginxコンテナイメージを使用しています<br>
コンテナ間の共有ディレクトリとして/var/www/vhosts/live_streamを作成し、<br>
nginx.confとindex.htmlをコンテナ内にコピーさせています。<br>
<br><br>
<b>
<li>
streamserver/web/index.html
</li></b>
<br /><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: grey;"><</span><span style="color: #569cd6;">html</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">head</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">title</span><span style="color: grey;">></span>HLS Test<span style="color: grey;"></</span><span style="color: #569cd6;">title</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">link</span> <span style="color: #9cdcfe;">href</span>=<span style="color: #ce9178;">"https://vjs.zencdn.net/7.4.1/video-js.css"</span> <span style="color: #9cdcfe;">rel</span>=<span style="color: #ce9178;">"stylesheet"</span><span style="color: grey;">></span></div><div> <span style="color: grey;"></</span><span style="color: #569cd6;">head</span><span style="color: grey;">></span></div><br /><div> <span style="color: grey;"><</span><span style="color: #569cd6;">body</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">video-js</span> <span style="color: #9cdcfe;">id</span>=<span style="color: #ce9178;">example-video</span> <span style="color: #9cdcfe;">width</span>=<span style="color: #ce9178;">640</span> <span style="color: #9cdcfe;">height</span>=<span style="color: #ce9178;">360</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">"vjs-default-skin"</span> <span style="color: #9cdcfe;">controls</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">source</span> <span style="color: #9cdcfe;">src</span>=<span style="color: #ce9178;">"http://「IPアドレス」/live_stream/「OBSストリームキー」_low.m3u8"</span> <span style="color: #9cdcfe;">type</span>=<span style="color: #ce9178;">"application/x-mpegURL"</span><span style="color: grey;">></span></div><div> <span style="color: grey;"></</span><span style="color: #569cd6;">video-js</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">script</span> <span style="color: #9cdcfe;">src</span>=<span style="color: #ce9178;">"https://vjs.zencdn.net/7.4.1/video.js"</span><span style="color: grey;">></</span><span style="color: #569cd6;">script</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">script</span><span style="color: grey;">></span></div><div> <span style="color: #569cd6;">var</span> <span style="color: #9cdcfe;">player</span> = <span style="color: #dcdcaa;">videojs</span>(<span style="color: #ce9178;">'example-video'</span>);</div><div> <span style="color: grey;"></</span><span style="color: #569cd6;">script</span><span style="color: grey;">></span></div><div> <span style="color: grey;"></</span><span style="color: #569cd6;">body</span><span style="color: grey;">></span></div><div><span style="color: grey;"></</span><span style="color: #569cd6;">html</span><span style="color: grey;">></span></div></div>
<br>
「IPアドレス」と「OBSストリームキー」は各自で書き換えてください。<br>
ローカル上で動きを確認する場合はIPアドレスは「localhost」でよろしいかと思います。<br>
<br><br>
<b>
<li>
streamserver/web/nginx.conf
</li></b>
<pre class="prettyprint">
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html/;
index index.html index.htm;
}
location /live_stream {
types {
application/vnd.apple.mpegurl m3u8;
}
root /var/www/vhosts/;
}
}
}
</pre>
webサーバーとして80番ポートで受け付けています。<br>
<br>
<b>
準備が整いました!!
</b><br>
<br>
<hr>
<h2 style="background-color: yellow; font-weight: bold;">3.ローカルでイメージをビルド→コンテナ起動→確認</h2>
とりあえずローカル上での挙動確認のため、obsの配信設定はlocalhostに配信するように設定を変更しておきます。<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGW0In3S94dW8f6-QrPjLq7i0cjzkRp322vv78l3GwP0ADH5dQdt6TqUbg27S-pkX2FSu8-BTV-MR7YGB5k_Ya0cSg08EaP10-vwliBtBN_UTZpI2tn2CqtLAZxA2gzu95dzV4osZL8avv/s981/obs.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="750" data-original-width="981" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGW0In3S94dW8f6-QrPjLq7i0cjzkRp322vv78l3GwP0ADH5dQdt6TqUbg27S-pkX2FSu8-BTV-MR7YGB5k_Ya0cSg08EaP10-vwliBtBN_UTZpI2tn2CqtLAZxA2gzu95dzV4osZL8avv/s320/obs.png"/></a></div>
さっそくイメージをビルドします。<br>
docker-compose.ymlがあるstreamserverディレクトリまでpowershellやコマンドプロンプトで移動し、以下のコマンドを実行します。<br>
<pre class="prettyprint">
> docker-compose build
</pre>
時間がかかるのでしばらく待ちます。<br>
終了したらイメージ一覧を確認します<br>
<pre class="prettyprint"> > docker-compose images
REPOSITORY TAG IMAGE ID CREATED SIZE
streamserver_nginx latest ef56cc44a48e 34 minutes ago 156MB
streamserver_rtmp_ffmpg latest f373c5e5f450 47 minutes ago 1.06GB
nginx latest daee903b4e43 5 days ago 133MB
tiangolo/nginx-rtmp latest e2efd1d48936 3 months ago 850MB
</pre>
4つイメージがあれば成功です!! <br>
ではビルドしたイメージを起動します! <br>
docker-compose.ymlがあるstreamserverディレクトリで以下を実行<br>
<pre class="prettyprint">> docker-compose up -d
Creating network "streamserver_default" with the default driver
Creating streamserver_rtmp_ffmpg_1 ... done
Creating streamserver_nginx_1 ... done
</pre>
起動しているか確認します<br>
<pre class="prettyprint">> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
741416b21ea2 streamserver_nginx "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp streamserver_nginx_1
83d8673c3580 streamserver_rtmp_ffmpg "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:1935->1935/tcp streamserver_rtmp_ffmpg_1
</pre>
STATUSが2つともUPとなっているので問題なさそうです! <br>
まずはwebサーバーが起動しているか確認します<br>
ブラウザからlocalhostにアクセスします。<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnRW4JpAQBrg8UNkBv7vqMUmaVPGpNTxXKmzwdqPMQ97jPvUdbMy7d2vXnCNuoUqvZfq_8FY19UH0W1k74mKQOwnlXaUAlZnJQXt0sP687VIHrA_QN_an7GFSQ9c8ovmvRk3INFKju4PWG/s654/web.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="464" data-original-width="654" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnRW4JpAQBrg8UNkBv7vqMUmaVPGpNTxXKmzwdqPMQ97jPvUdbMy7d2vXnCNuoUqvZfq_8FY19UH0W1k74mKQOwnlXaUAlZnJQXt0sP687VIHrA_QN_an7GFSQ9c8ovmvRk3INFKju4PWG/s320/web.png"/></a></div>
問題なさそうです! <br>
続いてOBSでlocalhostに向けて配信を開始します! <br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKxxaVYB-1qBOGCAv6o20uL0psa2mLNsmb890XYgKjvlQo_lrtPgI3eUmitfUa2_4-c0Ue6p4REmfa5s-GAIrTC7xjO__wmVY6vzSHvTuFmDt-L1-Sjp5aKSJMCDsxj3Ei1zGLhzTsOt7U/s1081/%25E9%2585%258D%25E4%25BF%25A1.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="757" data-original-width="1081" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKxxaVYB-1qBOGCAv6o20uL0psa2mLNsmb890XYgKjvlQo_lrtPgI3eUmitfUa2_4-c0Ue6p4REmfa5s-GAIrTC7xjO__wmVY6vzSHvTuFmDt-L1-Sjp5aKSJMCDsxj3Ei1zGLhzTsOt7U/s320/%25E9%2585%258D%25E4%25BF%25A1.png"/></a></div>
上手くいってそうです!!<br>
再度localhostにアクセスすると...<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhojEdQvLp0VP4eU4eC6dL8qDM3wcJ_SVU49xJ-CojHDy9nOSmi7n5aXtxUgVaX1xB0WUmof5bZlRx2nrLA1Zp_ZhyD0Vr7hKC6ddqzWWJ6eMI4a0uEMiURds0llOP9QZfrEZYSR6QMSyRO/s675/web2.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="464" data-original-width="675" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhojEdQvLp0VP4eU4eC6dL8qDM3wcJ_SVU49xJ-CojHDy9nOSmi7n5aXtxUgVaX1xB0WUmof5bZlRx2nrLA1Zp_ZhyD0Vr7hKC6ddqzWWJ6eMI4a0uEMiURds0llOP9QZfrEZYSR6QMSyRO/s320/web2.png"/></a></div>
<h3>きたー!!!!(^_-)-☆</h3>
問題なく見れています! <br>
コンテナをまとめて終了させる際は<br>
<pre class="prettyprint">
> docker-compose down
</pre>
でコンテナが破棄されます。<br>
<br>
<hr>
<h2 style="background-color: yellow; font-weight: bold;">4.さくらのクラウド(CentOS)上で起動→確認</h2>
環境は前回までで構築したインスタンスをそのまま使います。<br>
作業としてはsshでサーバーへ接続してdockerとdocker-composeをインストールするだけですね<br>
sshで接続するまでの工程は割愛します(詳細は<a href="https://blog.litus.co.jp/2020/10/centosnginx.html" target="blank">前々回の記事参照</a>)<br>
参考記事↓<br>
<a href="https://qiita.com/subretu/items/549bc720165004bca3c3" target="_blank" rel="noopener noreferrer">https://qiita.com/subretu/items/549bc720165004bca3c3</a><br>
以下のコマンドを実行し、インストールする。<br>
<pre class="prettyprint">
#dockerインストール
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
#Docker Composeインストール
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
</pre>
これでエラーがなければバージョンが表示されるはずです<br>
<pre class="prettyprint">
docker --version
docker-compose --version
</pre>
続いてローカルで作ったstreamserverディレクトリをサーバーの中へコピーします<br>
teratermであればフォルダをzipとかに圧縮してドラッグ&ドロップします<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqWo_1tV55Hi5xY1s9Eu0-mquEMxv_FiEnpwfOnoCcc7BsdzQR6bJYkZQi57TtJfVuaVEV1rTF1_AuP2kYDUiBKeZuOT23GcJbDtwJxHJ4_wBt8i2sXIPGK2BMV6Ir353uTUSfcoYs-BFW/s967/tera.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="445" data-original-width="967" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqWo_1tV55Hi5xY1s9Eu0-mquEMxv_FiEnpwfOnoCcc7BsdzQR6bJYkZQi57TtJfVuaVEV1rTF1_AuP2kYDUiBKeZuOT23GcJbDtwJxHJ4_wBt8i2sXIPGK2BMV6Ir353uTUSfcoYs-BFW/s320/tera.png"/></a></div>
SCPを選んでコピー先を指定します。(今回はホームディレクトリ(~)) <br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwGX-PWnVfv90JHTkfZ3F_PPOpoVez_XtCY83urpZ7iOV5TDTJDYLvcfFDZ6wrlqe0pFjXODcGFEK9olkpIlPU6AxvXPk2lSaqG2PrZ40Fpctwz1gGUxMHSv9C_ZedcTOUINT82UEqwblC/s566/scp2.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="540" data-original-width="566" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwGX-PWnVfv90JHTkfZ3F_PPOpoVez_XtCY83urpZ7iOV5TDTJDYLvcfFDZ6wrlqe0pFjXODcGFEK9olkpIlPU6AxvXPk2lSaqG2PrZ40Fpctwz1gGUxMHSv9C_ZedcTOUINT82UEqwblC/s320/scp2.png"/></a></div>
解凍<br>
<pre class="prettyprint">
> cd ~
> ls
streamServer.zip
> unzip streamServer.zip
> ls
streamServer streamServer.zip
</pre>
<b>
※web/index.htmlの「IPアドレス」、「OBSストリームキー」は適宜vimやnanoを使って変更してください<br>
※OBS設定で配信先をサーバーURLに変更しておいてください<br>
</b>
では、本題!! <br>
解凍したディレクトリへ入って起動させます! <br>
<pre class="prettyprint">
> cd ~/streamServer
> docker-compose up -d
Creating network "streamserver_default" with the default driver
Creating streamserver_rtmp_ffmpg_1 ... done
Creating streamserver_nginx_1 ... done
</pre>
2つのコンテナが起動し、Doneと出力されたら完了です<br>
<br>
ブラウザでサーバーへアクセス<br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU3XLpNWKkzKGQ95LI_YYnUtXwzPfGZYP9MY45BY9EgfkWMch24_IPxNNDJJN17DiMLzcXc7GA1cP6xUWS2RWVPHvkt4OqsnlYP1EZLY9QQLnHV6IpShCEx1Oq9_DSs8HOgPHBadogohv0/s654/%25E6%259C%25AC%25E7%2595%25AAweb.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="464" data-original-width="654" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU3XLpNWKkzKGQ95LI_YYnUtXwzPfGZYP9MY45BY9EgfkWMch24_IPxNNDJJN17DiMLzcXc7GA1cP6xUWS2RWVPHvkt4OqsnlYP1EZLY9QQLnHV6IpShCEx1Oq9_DSs8HOgPHBadogohv0/s320/%25E6%259C%25AC%25E7%2595%25AAweb.png"/></a></div>
webサーバーコンテナは無事動いています。<br>
ではOBSで配信を行います! <br>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQWwUODk5MthlZTIOsACxjKGMiX8R2jHDitujNzJXgwnGmgS-XSOXrQMytuVk1MALWGv3AzKG7ziZ2eEHgwjVRzKR5lp4pvep8cu1Uu_LO9m1a3VNV3yl3ZLeV9No0fOZbbOVak3mMP1ke/s675/%25E6%259C%25AC%25E7%2595%25AAweb2.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="464" data-original-width="675" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQWwUODk5MthlZTIOsACxjKGMiX8R2jHDitujNzJXgwnGmgS-XSOXrQMytuVk1MALWGv3AzKG7ziZ2eEHgwjVRzKR5lp4pvep8cu1Uu_LO9m1a3VNV3yl3ZLeV9No0fOZbbOVak3mMP1ke/s320/%25E6%259C%25AC%25E7%2595%25AAweb2.png"/></a></div>
やったーーーーー!!! <br>
これで無事Dockerで環境構築できました! <br>
<br>
<hr>
<br>
<h2>
今後の課題、目標等
</h2>
<ul>
<li>
前回に引き続き遅延はかなりのあるので最小限にできるよう改善する
</li>
<li>
docker-composeではなく、ECS、EKS、kubernetes等のコンテナオーケストレーションツールで実装してみる
</li>
</ul>
<br>
これからも精進いたします!!😉<br>
それでは。<br>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-69685806423454251662020-11-09T18:28:00.007+09:002020-11-13T14:33:51.961+09:00HLSでFlashPlayerを使用しないwebストリーミング配信環境の構築(さくらのクラウド,Centos, Nginx,FFmpeg) | ライタス株式会社こんにちわ。<br />
<span style="border-bottom: 1px solid black;"><b>10月より新入社員として入社しました田所です。</b></span><br />
<br />
前回記事にしました、さくらのクラウド上で構築したストリーミングサーバーを更に進化させていきたい思います!!<br />
前回のストリーミングサーバーの構築記事↓<br />
<a href="https://blog.litus.co.jp/2020/10/centosnginx.html">https://blog.litus.co.jp/2020/10/centosnginx.html</a>
<br /><br /><br />
前回構築したストーリングサーバーでは再生するにはFlashPlayerが必要でした。<br />
FlashPlayerは2020年にサポート終了することもありますし、Chromeでは再生するにはいちいち許可したりする必要があり、なるだけ使用は避けたい、というところで終了しました。<br />
なので今回はこの<b>RTMPを使用したストリーミングサーバーを生かしつつ、FlashPlayerを使用しないでストリーミング配信できる環境に進化させます!</b><br />
具体的には<b>HLS (HTTP Live Streaming)</b>というプロトコルを使用します。<br />
↓参考記事<br />
<a href="https://engineer.dena.com/posts/2018.12/knowledge-for-livestreaming/" target="blank">
https://engineer.dena.com/posts/2018.12/knowledge-for-livestreaming</a><br />
.m3u8っていう拡張子のデータに映像を記録したプレイリストがはいってるわけですね。<br />
なるほど、なるほど。この.m3u8の配信映像データがあれば、いい感じにwebで動画を再生できるというわけ<br />
例のごとく前例はもちろんたくさんありました。<br />
<a href="https://ffmpeg.org/" target="blank">FFmpeg</a>というライブラリを使います。<br />
こいつをNginxと組み合わせることで
PCからRTMP配信→Nginx経由でFFmpegに.m3u8のデータを生成してもらう→.m3u8データを再生するJavaScriptコードが入ったHTMLを配置(Nginxのwebサーバー)<br />
って感じです。<br />
というわけで今回もイメージを作成↓<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8EK01C2kB2RNdryybA87RUNRxGljUjP0XQzCCBZp3qAVptqKiihj1RUjZHkSOZtFpqxh7Dz0_xI7F_ffWHTQZAfainS0OdSTMLvhvwE8tKiffIRhyWvm-IREoTYIjD8_P1PZgsri2T4v0/s1069/ffmpeg.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="311" data-original-width="1069" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8EK01C2kB2RNdryybA87RUNRxGljUjP0XQzCCBZp3qAVptqKiihj1RUjZHkSOZtFpqxh7Dz0_xI7F_ffWHTQZAfainS0OdSTMLvhvwE8tKiffIRhyWvm-IREoTYIjD8_P1PZgsri2T4v0/s400/ffmpeg.png" width="400" /></a></div>
基本は前回のさくらのクラウドの環境をそのまま使って<br />
<ul>
<li>FFmpegをインストール</li>
<li>nginx.conf書き換え(FFmpegを実行する旨等記載)</li>
<li>htmlファイルの書き換え</li>
</ul>
これらの追加作業をするだけです。<br />
<br />
今回の参考にさせていただいた記事<br />
<a href="https://qiita.com/khagi/items/b99f5a36846d9ab65daa" target="blank">https://qiita.com/khagi/items/b99f5a36846d9ab65daa</a><br />
<a href="https://qiita.com/nabeyaki/items/9ddece8231af8e691c3a" target="blank">https://qiita.com/nabeyaki/items/9ddece8231af8e691c3a</a><br />
<h1>さっそく行きましょう!!</h1>
<hr />
<h2 style="background-color: yellow; font-weight: bold;">1.FFmpegをインストール</h2>
前回の記事の通りさくらクラウドのサーバーにSSHで入った所から始めます<br />
<br /><br />
<b>FFmpegをダウンロード</b><br />
<a href="https://www.johnvansickle.com/ffmpeg/" target="blank">FFmpeg Static Builds</a>
<pre class="prettyprint">cd /usr/local/share/
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-arm64-static.tar.xz
tar Jxf ffmpeg-git-arm64-static.tar.xz
</pre>
<br />
<b>ffmpegをインストール</b><br />
<pre class="prettyprint">ln -s /usr/local/share/ffmpeg-git-arm64-static.tar.xz/ffmpeg /usr/bin/ffmpeg
</pre>
シンボリックリンクを作成して、コマンドで実行できるようにしている<br />
<br />
<b>ffmpeg確認</b><br />
<pre class="prettyprint">ffmpeg -version
</pre>
正常にインストールされていればバージョン情報がみれる<br />
これでFFmpegのインストールは終了です<br />
<hr />
<h2 style="background-color: yellow; font-weight: bold;">2.nginx.conf書き換え</h2>
<b>vimで編集</b><br />
<pre class="prettyprint">vim /etc/nginx/nginx.conf
</pre>
下記のように設定しました。<br />
<pre class="prettyprint">rtmp {
server {
listen 1935;
allow play all;
access_log /var/log/nginx/rtmp_access.log;
application live1 {
live on;
exec ffmpeg -i rtmp://localhost/live1/$name -async 1 -vsync cfr -acodec copy -c:v libx264 -b:v 128K -f flv rtmp://localhost/live2/$name_low;
}
application live2 {
live on;
hls on;
hls_path /var/www/vhosts/live_stream;
hls_variant _low BANDWIDTH=300000;
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /live_stream {
types {
application/vnd.apple.mpegurl m3u8;
}
root /var/www/vhosts/;
}
}
}
</pre>
rtmpのlive2内の<br />
<pre class="prettyprint">hls_path /var/www/vhosts/live_stream;
</pre>
このディレクトリ内にFFmpegが頑張ってコンバートしたデータが入ってくれます。
なのでこのディレクトリがない場合は作成しておきます。
<pre class="prettyprint">mkdir -p /var/www/vhosts/live_stream
</pre>
これでnginxの設定は終了です。<br /><br />
<b>Nginx起動</b>
<pre class="prettyprint">/usr/sbin/nginx
</pre>
この時点でOBSで配信を開始すれば/var/www/vhosts/live_streamにFFmpegが作った.m3u8等が生成されていることを確認します。<br />
OBSの設定は前回の記事のままで問題ありません。<br />
「配信開始」を押します。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIGkLtFFFUAopAaMf5a9On3pGGixXgmDWbD1TK6qZ9MjV6_DyUjqVuLadTmf_24FiXAYE3zGqok2KyxM5k9uoTkqaKqgzdVZ595L8IitMYSnSJcTxV1sftNvBF6PxexL3Gj98vvVDKV1f3/s1117/OBS.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="739" data-original-width="1117" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIGkLtFFFUAopAaMf5a9On3pGGixXgmDWbD1TK6qZ9MjV6_DyUjqVuLadTmf_24FiXAYE3zGqok2KyxM5k9uoTkqaKqgzdVZ595L8IitMYSnSJcTxV1sftNvBF6PxexL3Gj98vvVDKV1f3/s400/OBS.png" width="400" /></a></div>
エラー警告もなく、右下が緑になっていればサーバーに接続ができています。<br />
ではサーバー側で/var/www/vhosts/live_streamをのぞいてみます。<br />
<pre class="prettyprint">[root@ホスト名 ~]# ls /var/www/vhosts/live_stream/
test.m3u8 test_low-28.ts test_low-29.ts test_low-30.ts test_low-31.ts test_low.m3u8
</pre>
無事、hls配信に必要なデータが生成されています。<br />
※ちなみにファイル名の「test」の部分はOBSの配信設定のストリームキーの値です。<br />
<hr />
<h2 style="background-color: yellow; font-weight: bold;">3.htmlファイルの書き換え</h2><div><div><b>headタグ</b></div><div><br /></div><div><link href="http s://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet"></link></div><div><br /></div><div><b>bodyタグ</b></div><div><br /></div><div><source src="http://サーバーグローバルIPアドレス/live_stream/test_low.m3u8" type="application/x-mpegURL"></source></div><div></video-js></div><div><script src="https://vjs.zencdn.net/7.4.1/video.js"></script></div><div><script></div><div> var player = videojs('example-video');</div><div></script></div><div><br /></div></div><div><br /></div><div><br /></div>
※「サーバーグローバルIPアドレス」、「test_low.m3u8」の部分は自身の環境に沿って書き換えてください<br />
これでwebからアクセスすればみれるはずです。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPvRfNWN4rx6eaX9hlLZg7os9vFw38WWhFLrxGWZgWRGaBFPgL3TMj2BQvRn62uPZ7Uz4k7zUtl8r6JgOtEvroQueZKghgEGdtrZEZNRSey-KOZt1DLy5H9tduyg5OCBOg8J01DqYJvbDK/s1446/%25E7%2594%25BB%25E9%259D%25A2.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="831" data-original-width="1446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPvRfNWN4rx6eaX9hlLZg7os9vFw38WWhFLrxGWZgWRGaBFPgL3TMj2BQvRn62uPZ7Uz4k7zUtl8r6JgOtEvroQueZKghgEGdtrZEZNRSey-KOZt1DLy5H9tduyg5OCBOg8J01DqYJvbDK/s320/%25E7%2594%25BB%25E9%259D%25A2.png" width="320" /></a></div>
<h1>完璧!!!</h1>
再生ボタンをワンポチで動画が見れます(^^<br /><br /><br /><br />
<h1>が、遅延がヤバイ(笑)</h1>
30秒くらいの遅延が確認できました(汗)<br />
<br /><br />
症状の原因に下記の可能性があるかと思います。<br />
<ul>
<li><b>FFmpeg自体が重たい</b><br />
topコマンド実行したら<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_45jh5JOI2vtNtjlp-nEqFppf8kzIxrdEnQlhycu_cfPOxc1NQr8O4sLknDB3QehxhPmV2ahDc8Rf_asXyxQbX-Rsfkl-b3W4hqoxjgitaCJ56gubcUMoMxqT0NntiwFk1g3jq4RgGkAG/s923/top.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="229" data-original-width="923" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_45jh5JOI2vtNtjlp-nEqFppf8kzIxrdEnQlhycu_cfPOxc1NQr8O4sLknDB3QehxhPmV2ahDc8Rf_asXyxQbX-Rsfkl-b3W4hqoxjgitaCJ56gubcUMoMxqT0NntiwFk1g3jq4RgGkAG/s400/top.png" width="400" /></a></div>
FFmpegさんのCPU使用率120%越えでむせび泣いてました(笑)<br />
→他に軽いソフトがあれば検討
</li>
<li><b>ひとつのサーバーでNginxがRTMPとWeb両方を担っているのがキツい</b><br /><br />
→RTMPとWebの役割を分けて行うと改善するかも??
</li>
<li><b>サーバースペック的にストリーミング配信自体がきつい</b><br /><br />現在のさくらのクラウドサーバーのスペックは 仮想コア: 2, メモリ: 4GB<br />
→スケールアップで改善するかも??<br />
</li>
<li><b>設定が悪い(OBS,Nginx,FFmpeg)</b><br />
→OBSのビットレートやキーフレーム,FFmpegの実行コマンドのパラメーター等を変えると改善するかも??
</li>
</ul>
等が考えられそうです。<br />
<b><h2>次回は色んな方法を模索し負荷を減らして遅延の少ない配信を目指します</h2></b><br />
後Dockerコンテナ化してどこでも簡単に使いまわせるようにしてみたいと思います<br />
これからも精進いたします!!😉<br />
それでは。<br />
<script>
document.querySelectorAll('.html_code').forEach(function (elem) {
elem.textContent = elem.innerHTML.trim();
});
</script>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-18053607659268271132020-10-29T14:03:00.013+09:002021-04-20T11:34:21.268+09:00さくらのクラウドにCentOS、Nginxを使い、ストリーミングサーバーを構築してライブ配信したい | ライタス株式会社こんにちわ。<br />
<span style="border-bottom: 1px solid black;"><b>10月より新入社員として入社しました田所です。</b></span><br />
<br />
入社して1か月が経とうとしています。 まだまだ分からないことだらけで参っております。
さて、今回も初学者の私目線で業務で学んだことをまとめていきます😘
<br /><br /><br />
今回やりたいことは記事のタイトルの通りで
<ol style="list-style: none;">
<li><b>さくらのクラウドを使って</b></li>
<li><b>CentOSに</b></li>
<li><b>Nginxを入れて</b></li>
<li><b>OBSでPCの画面を配信</b></li>
</ol>
ってだけです。<br />
<br /><br /><br />
<span style="border-bottom: 1px solid red; color: red; font-weight: bold;">
PCの画面をwebページで配信して閲覧できる様にします。
</span>
<br />
Youtubeの非公開とか限定公開のライブ配信みたいな感じです。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwYGJDVTKtzzNQ4c4JOyMcDPQCjhA-JwvAIZERqiu33s-yr_t64DRKyyGtgZ8AcuBtcSfTIE5NJe2xO4aH3-3oblO1j2mz29dLD7uWbwi86DMp11K2GJSOedJxk_pIsb4T-oDhDN9kmllo/s673/%25E3%2582%25A2%25E3%2583%25BC%25E3%2582%25AD%25E3%2583%2586%25E3%2582%25AF%25E3%2583%2588.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="356" data-original-width="673" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwYGJDVTKtzzNQ4c4JOyMcDPQCjhA-JwvAIZERqiu33s-yr_t64DRKyyGtgZ8AcuBtcSfTIE5NJe2xO4aH3-3oblO1j2mz29dLD7uWbwi86DMp11K2GJSOedJxk_pIsb4T-oDhDN9kmllo/s400/%25E3%2582%25A2%25E3%2583%25BC%25E3%2582%25AD%25E3%2583%2586%25E3%2582%25AF%25E3%2583%2588.jpg" width="400" /></a></div>
と、いうわけでざっくりですがアーキテクト図に落とし込んでみました。<br />
絵に書くとなんかわかった気になれます(知らんけど)<br />
<br /><br />
今回RTMPという通信プロトコルで配信します。<br />
RTMPの基礎的知識は↓で学びました<br />
<a href="https://ygoto3.com/posts/live-streaming-and-rtmp-for-frontend-engineers/">https://ygoto3.com/posts/live-streaming-and-rtmp-for-frontend-engineers/</a><br />
※RTMPはTCPらしいです。(知らんかった)<br />
<br />
ひとつずつ確実に消化していきます!!<br />
※今回は実施しませんが、キャプチャボードを使って別の端末画面(PCのBIOSやゲーム等)をキャプチャして配信もできます(また記事にします)<br />
<br />
<b>
ではいきましょう!!
</b>
<br />
<hr />
<h2 style="background-color: yellow; font-weight: bold;">1.サーバー(さくらのクラウド)を立てる</h2>
AWSなら触ったことあるんですが(実はAWS SAA持ち)、さくらのサーバーは一切使ったことなかったのでここもまとめておきます。<br />
基本的にAWSでイメージすれば特に問題なくクリアできました。<br />
↓こちらを参考にしました↓<br />
<a href="https://mebee.info/2019/11/09/post-3567/" target="_blank">https://mebee.info/2019/11/09/post-3567/</a>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmNoaeX9jTBphOMmPmlOMU7CHwwGwHpHeDb5uY2dEinsCsWVAF-T07qREK5Xc11EcgCCHbVDBt3zFqi-8Vc4pSwfpxrMOjm-HLEcstnsHe9eZLkmwYW4xhGgTgLJCKySDw3DzMENIqyeNG/s1262/%25E3%2581%2595%25E3%2581%258F%25E3%2582%25891.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="434" data-original-width="1262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmNoaeX9jTBphOMmPmlOMU7CHwwGwHpHeDb5uY2dEinsCsWVAF-T07qREK5Xc11EcgCCHbVDBt3zFqi-8Vc4pSwfpxrMOjm-HLEcstnsHe9eZLkmwYW4xhGgTgLJCKySDw3DzMENIqyeNG/s400/%25E3%2581%2595%25E3%2581%258F%25E3%2582%25891.png" width="400" /></a></div>
<br /><br />
さくらのクラウドのコンソール画面から「サーバー」→上にある「追加」を押す<br />
そしてサーバーのスペックを決めていきます<br />
今回は以下のようにしました(抜粋)<br />
<ul>
<li>仮想コア: 2</li>
<li>メモリ: 4GB</li>
<li>SSD: 20GB</li>
<li>OS: CentOS7.7</li>
</ul>
今回はSSHでサーバーに入り込む際に公開鍵認証を行うことにします。<br />
やり方は↓の公式に詳細があるのでこの通りに行います。<br />
<a href="https://manual.sakura.ad.jp/cloud/controlpanel/settings/public-key.html" target="blank">https://manual.sakura.ad.jp/cloud/controlpanel/settings/public-key.html</a>
<br />
<pre class="prettyprint">C:\Users\ユーザー名>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\ユーザー名/.ssh/id_rsa):
Created directory 'C:\Users\ユーザー名/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\ユーザー名/.ssh/id_rsa.
Your public key has been saved in C:\Users\ユーザー名/.ssh/id_rsa.pub.
The key fingerprint is:
xxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx XXXXX\ユーザー名@PC
The key's randomart image is:
+---[RSA 2048]----+
|=**++.o |
|OEo* o o |
|==*+* o o |
|=oo+*o o . |
|..o= o..S |
|. o.o oo |
|.+ . o. |
|o . .. |
| .. |
+----[SHA256]-----+
</pre>
<br />
これで<br />
<b>
C:\Users\ユーザー名/.ssh/にid_rsa.pub(公開鍵)が<br />
C:\Users\ユーザー名/.ssh/にid_rsa(秘密鍵)が<br />
生成されました。
</b><br />
で、メモ帳でもなんでもいいのでC:\Users\ユーザー名/.ssh/の中のid_rsa.pub(公開鍵)を開いて中身をまるっとコピーし、<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2e4B5TZYTryxa55H5qr35_ZQ4XU1cUfXAV6lLqAKzpb_TLPuIIlCMVLssb6UQgtRk-my4hHkfiVwa2p8Fly2VW8_f9B-Dg4YscrNr6q-CT6rBOTLBylK_dGudJ0qP4hQUWoIMdrAKRxvM/s715/%25E5%2585%25AC%25E9%2596%258B%25E9%258D%25B5.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="282" data-original-width="715" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2e4B5TZYTryxa55H5qr35_ZQ4XU1cUfXAV6lLqAKzpb_TLPuIIlCMVLssb6UQgtRk-my4hHkfiVwa2p8Fly2VW8_f9B-Dg4YscrNr6q-CT6rBOTLBylK_dGudJ0qP4hQUWoIMdrAKRxvM/s400/%25E5%2585%25AC%25E9%2596%258B%25E9%258D%25B5.png" width="400" /></a></div>
このようにペーストしたらおけ!(秘密鍵はSSH接続の時使用する)<br />
そして「作成」をポチっと押したら起動し始めるので暫し待ちます。<br />
<div class="separator" style="clear: both;"><a href="https://1.bp.blogspot.com/-n17H5M-A044/X4-y-X4fHUI/AAAAAAAAAq8/u-XTiNjbasMXElx5ZUjTOyqm65g729lGwCLcBGAsYHQ/s301/%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2590%25E3%2583%25BC%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25BC%25E3%2582%25BF%25E3%2582%25B9.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="80" data-original-width="301" src="https://1.bp.blogspot.com/-n17H5M-A044/X4-y-X4fHUI/AAAAAAAAAq8/u-XTiNjbasMXElx5ZUjTOyqm65g729lGwCLcBGAsYHQ/s400/%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2590%25E3%2583%25BC%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25BC%25E3%2582%25BF%25E3%2582%25B9.png" width="400" /></a></div>
その間にさくらクラウド側でのファイアウォールの設定をやってしまいます。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk8QgI-BLJIYi7vgVUtQokscf0ULfYwWl4iRVuqBkHL8cbOLnaYYWaE0wY3j4m7pohG9e79VmAbeDOHt1QVl05B8Z8MFAcmozLj6GZ2OD-04B7DxzLdOYpOWZljr7wDWRYJnr5S2MB9rf/s2556/%25E7%2584%25A1%25E9%25A1%258C.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="615" data-original-width="2556" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk8QgI-BLJIYi7vgVUtQokscf0ULfYwWl4iRVuqBkHL8cbOLnaYYWaE0wY3j4m7pohG9e79VmAbeDOHt1QVl05B8Z8MFAcmozLj6GZ2OD-04B7DxzLdOYpOWZljr7wDWRYJnr5S2MB9rf/s400/%25E7%2584%25A1%25E9%25A1%258C.png" width="400" /></a></div>
「ネットワーク」→「パケットフィルタ」を押して右上の追加を押します。<br />
ルールのコピー元: なし<br />
名前: ストリームサーバー(任意)<br />
を入れて、「作成」を押します。<br />
作られたパケットフィルタを選択して「ルール」タブの「追加」を押してルールを設定していきます。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVwnXQytGlZbuQkf7J3EVuvu5j3TNKl3qruNtH5QGlHhh9Y_2JpJNXw5UBgAoXyWEoD-Ilk767X_zvegQaFRpG9I3ErxNmkOIv3xfquh330YYAZscpyuSauuN8_mCfAugFIypkNi27DfsJ/s2332/6.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="161" data-original-width="2332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVwnXQytGlZbuQkf7J3EVuvu5j3TNKl3qruNtH5QGlHhh9Y_2JpJNXw5UBgAoXyWEoD-Ilk767X_zvegQaFRpG9I3ErxNmkOIv3xfquh330YYAZscpyuSauuN8_mCfAugFIypkNi27DfsJ/s400/6.png" width="400" /></a></div>
最終的にはこんな感じにしました。<br />
1. 自分のPCからのRTMP(1935番ポート)を許可<br />
2. webからのアクセス(80番ポート)を許可(※必要に応じて送信元ネットワークを追加してください)<br />
3. SSHでの接続を許可(送信元ネットワークに自分のグローバルIPを追加しておくとより安全)<br />
4. それ以外の通信を拒否<br />
<b style="text-decoration: underline dotted;">フィルタリングルールは上から評価される</b>ので3.の拒否のルールは一番下に設定します。<br />
そして右上の「反映」を押すことで設定が有効化されます。<br />
以上でクラウド側でのフィルタ設定は終了です。<br />
<br />
<span style="font-size: 15px;">先ほどのサーバー起動状態になっているはずなので、次はSSHでログインします。</span><br />
<br /><br />
<hr />
<h2 style="background-color: yellow; font-weight: bold;">2.SSHでサーバーへ入る</h2>
次はSSHでサーバーへ入ります<br />
伝家の宝刀Tera Termさんを使って接続します。<br />
さくらクラウドのコンソールからサーバーのグローバルIPをコピーします。(NICの欄に有る)<br />
そしてTera Termを起動!!!<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMWzy8AtzdIeJJ-xof8UQdL0XjFf1MuAUtOSXqtSTQNui5mRPMeiWV8Ygsbw5s4qaO8GXft7-x9niHirsQ1dJtmwAajKNUsO9v6SzY1T0QKsNpOyJSPFlz0sSNcLPwvDKiTqmV2fHXy4tc/s542/teraterm.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="279" data-original-width="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMWzy8AtzdIeJJ-xof8UQdL0XjFf1MuAUtOSXqtSTQNui5mRPMeiWV8Ygsbw5s4qaO8GXft7-x9niHirsQ1dJtmwAajKNUsO9v6SzY1T0QKsNpOyJSPFlz0sSNcLPwvDKiTqmV2fHXy4tc/s400/teraterm.png" width="400" /></a></div>
先ほどコピーしたIPアドレスを入れて<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimjpS4IxgMJ4I-uZ1zE8GpJwLiekbxc1RFoiNqCx5pmUBOuo05ZsaVAPx8p66bs_Yes48F6Jx68MRmRQHIXx3HuOo9ApFfDsikiEhjwY5nd9w7FrA8ovjuNOpF4rvnxzi96sM284KeJTUN/s537/trem2.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="400" data-original-width="537" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimjpS4IxgMJ4I-uZ1zE8GpJwLiekbxc1RFoiNqCx5pmUBOuo05ZsaVAPx8p66bs_Yes48F6Jx68MRmRQHIXx3HuOo9ApFfDsikiEhjwY5nd9w7FrA8ovjuNOpF4rvnxzi96sM284KeJTUN/s400/trem2.png" width="400" /></a></div>
ユーザーはrootとして、「RSA/SDA/ECDSA/ED25519鍵を使う」を選択し先ほど生成した秘密鍵(C:\Users\ユーザー名/.ssh/にid_rsa)を選択<br />
<pre class="prettyprint">[root@root ~]
</pre>
<b>これで無事サーバーへ接続できました。</b><br />
次はNginxの諸々をインストール&セットアップします<br />
<hr />
<h2 style="background-color: yellow; font-weight: bold;">3.NginxとRTMP モジュールをインストール</h2>
<br />
<b style="font-size: medium; font-weight: bold;">
ここがなかなかのつまりポイントでした。(笑)<br />
</b>
<br />
基本は↓こちらを参考<br />
<a href="https://qiita.com/hagane5563/items/842afe6d6e7100db3a28">https://qiita.com/hagane5563/items/842afe6d6e7100db3a28</a><br />
<h5 style="font-size: medium;">とりあえずアプデ(地味に時間かかる奴)</h5>
<pre class="prettyprint">yum update -y
</pre>
<h5 style="font-size: medium;">いろいろ足りていないツール達をインストール</h5>
<pre class="prettyprint">yum install -y wget gcc pcre-devel openssl openssl-devel vim
</pre>
<h5 style="font-size: medium;">RTMPモジュールダウンロード</h5>
<pre class="prettyprint">git clone https://github.com/arut/nginx-rtmp-module.git
</pre>
<h5 style="font-size: medium;">Nginxをダウンロード</h5>
<pre class="prettyprint">wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxf nginx-1.8.0.tar.gz
</pre>
<h5 style="font-size: medium;">.configureを実行</h5>
<pre class="prettyprint">cd nginx-1.8.0
./configure --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--add-module=/root/nginx-rtmp-module
</pre>
<h5 style="font-size: medium;">makeしてインストール</h5>
<pre class="prettyprint">make
make install
</pre>
※CentOS8でmakeするとシェルスクリプトの構文エラーが連発しました。<br />
結局解決できずだったので、7に変更したらいけました。<br />
Nginx、RTMPライブラリ、CentOSのバージョンが関係ありそうです<br />
後日改めて対処法を探そうと思います。<br />
<h5 style="font-size: medium;">Nginxユーザー追加</h5>
<pre class="prettyprint">groupadd nginx
useradd -g nginx nginx
usermod -s /bin/false nginx
</pre>
<h5 style="font-size: medium;">Nginxの設定を弄っていく</h5>
<pre class="prettyprint"> vim /etc/nginx/nginx.conf
</pre>
下記内容を追加する
<pre class="prettyprint">rtmp {
server {
listen 1935;
access_log /var/log/nginx/rtmp_access.log;
application live1(※任意で変える) {
live on;
wait_video on;
hls on;
hls_path /usr/local/nginx/html/;
hls_fragment 5s;
}
}
}
</pre>
※live1名前の所は問題ないが、後でOBSの設定で使用する<br />
<h5 style="font-size: medium;">Nginx起動</h5>
<pre class="prettyprint">/usr/sbin/nginx
</pre>
<h5 style="font-size: medium;">firewall-cmdでポートを解放する</h5>
<pre class="prettyprint">#80と1935を解放
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --add-port=1935/tcp --zone=public --permanent
#有効化
firewall-cmd --reload
#有効化されているか確認する
firewall-cmd --list-all
public (active)
(略)
ports: 80/tcp 1935/tcp
(略)
#lsofコマンドでもポートの確認
lsof -i -P |grep nginx
nginx 31473 nginx 7u IPv4 XXXXX 0t0 TCP *:1935 (LISTEN)
nginx 31473 nginx 8u IPv4 XXXXX 0t0 TCP *:80 (LISTEN)
</pre>
<h5 style="font-size: medium;">index.htmlの編集</h5>
<pre class="prettyprint">vim /usr/local/nginx/html/index.html
</pre>
以下に書き換えます。<br />
HTMLの編集には↓を参考<br /><br />
<a href="https://qiita.com/okumurakengo/items/0c69d95553be89521b6d">https://qiita.com/okumurakengo/items/0c69d95553be89521b6d</a><br />
<b>headタグ</b><div><div><br /></div><div><meta charset="UTF-8"></meta></div><div> <meta content="width=device-width, initial-scale=1.0" name="viewport"></meta></div><div> <meta content="ie=edge" http-equiv="X-UA-Compatible"></meta></div><div> <title>Document</title></div><div> <link href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.css" rel="stylesheet"></link></div><div><link href="https://vjs.zencdn.net/7.3.0/video-js.css" rel="stylesheet"></link></div><div> <script src="https://vjs.zencdn.net/7.3.0/video.js"></script>"</div><div> <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-flash/2.1.2/videojs-flash.min.js"></script></div><div> <style></div><div> .disabled {</div><div> cursor: not-allowed;</div><div> opacity: .5;</div><div> }</div><div> </style></div></div><div><b><br /></b></div><div><b><br /></b></div><div><b>bodyタグ</b><div><div>
<video class="video-js vjs-default-skin u-full-width" controls="" data-setup="{}" height="500" id="example_video_1" poster="" preload="none"></div><div><br /></div><div><source src="rtmp://グローバルIPアドレス/任意の名前/任意のパス" type="rtmp/mp4"></source></div><div><p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that</div><div><a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></div><div></p></div><div></video></div></div><div>
ブラウザからサーバーにHTTPアクセスすると動画再生のプレイヤーが表示されていたらとりあえずOK<br />
<br />
<h2 style="background-color: yellow; font-weight: bold;">4.OBSでPCの画面を配信</h2>
↓OBSをこちらからダウンロード&インストール<br />
<a href="https://obsproject.com/ja/download" target="blank">https://obsproject.com/ja/download</a><br />
<br /><br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOZQ8d6LmM37qb-VkmYGmA_YmCBJptknLSXw-z4DC3459snAC1BzoNOv-sQxpPJxL9L34VNgfZJt0cC3YO-3tE5SQj6BLKz-J1vcmG6ao69yXwcVGed3RaJjLeAGhmpOcBnXWcoy_Kw9Ot/s1507/OBS.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="577" data-original-width="1507" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOZQ8d6LmM37qb-VkmYGmA_YmCBJptknLSXw-z4DC3459snAC1BzoNOv-sQxpPJxL9L34VNgfZJt0cC3YO-3tE5SQj6BLKz-J1vcmG6ao69yXwcVGed3RaJjLeAGhmpOcBnXWcoy_Kw9Ot/s400/OBS.png" width="400" /></a></div>
<b>ソースの「+」を押して「画面キャプチャ」を追加するとPC画面をキャプチャしてくれます。<br />
カメラ、ビデオキャプチャ等は「映像キャプチャデバイス」を追加します。<br /></b>
<br />
さ、続いて立てたサーバーへ配信する設定をします。<br />
「設定」→「配信」で次のように設定します。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKzpEHAEgAwgtclZGT4WakrnlXleUwSpX5VLRaA8R2wafROKAIgpXqfVM28vvzDMGw-ocP_ItjVP52IjOx1bhyphenhyphenIFY8yqyFJdff5l57X3uLmEqPO-h3sLELYpeCpMaym9hZ1QEUeEZn89U_/s975/OBS%25E8%25A8%25AD%25E5%25AE%259A.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="751" data-original-width="975" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKzpEHAEgAwgtclZGT4WakrnlXleUwSpX5VLRaA8R2wafROKAIgpXqfVM28vvzDMGw-ocP_ItjVP52IjOx1bhyphenhyphenIFY8yqyFJdff5l57X3uLmEqPO-h3sLELYpeCpMaym9hZ1QEUeEZn89U_/s400/OBS%25E8%25A8%25AD%25E5%25AE%259A.png" width="400" /></a></div>
<b>rtmp://サーバーグローバルIPアドレス/live1</b><br />
「live1」はnginx.confで任意で付けたサーバー名ですので変えている場合はその名前を入れます。<br />
これで設定はオッケーです!<br />
OBSで「配信開始」を押します。<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjlNzogDZLLr8jG0LxwhYt9Q5y1eHn7_Hi0YjzZgsupYV5RYRB6_IBzQ-sbzsDzDBwaRomDRjoCEXCwrn0Az_G6zsM13GcRAC-fyC-OTa3M_K2UI-eggZc5KW9IXfKDwr2yHzNlFfZW_4X/s1393/obs%25E9%2585%258D%25E4%25BF%25A1.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="305" data-original-width="1393" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjlNzogDZLLr8jG0LxwhYt9Q5y1eHn7_Hi0YjzZgsupYV5RYRB6_IBzQ-sbzsDzDBwaRomDRjoCEXCwrn0Az_G6zsM13GcRAC-fyC-OTa3M_K2UI-eggZc5KW9IXfKDwr2yHzNlFfZW_4X/s400/obs%25E9%2585%258D%25E4%25BF%25A1.png" width="400" /></a></div>
右下のバーが緑色になっていればサーバーにちゃんと接続が成功している、ということになります。<br />
<h3>さぁ配信をみてみましょう!!!!</h3><h3>
さくらサーバーにHTTPでアクセスします<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwF49RpGDippfIv-yNVj9oMKLyRTfe6-kSkGKNcrMrzgJQ5lIZWHdwzMkV0MWOjrtj_ffxr7VDRwoEAjCfWpGdRau4C9nexft7eeVma1Wq2CVkRhFOfph01amNjNRTS9JJD7igClmbn5Jc/s1149/%25E7%25A2%25BA%25E8%25AA%258D.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="607" data-original-width="1149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwF49RpGDippfIv-yNVj9oMKLyRTfe6-kSkGKNcrMrzgJQ5lIZWHdwzMkV0MWOjrtj_ffxr7VDRwoEAjCfWpGdRau4C9nexft7eeVma1Wq2CVkRhFOfph01amNjNRTS9JJD7igClmbn5Jc/s400/%25E7%25A2%25BA%25E8%25AA%258D.png" width="400" /></a></div>
</h3><h3 style="font-size: large;">ちゃんとPC画面を配信できてます!</h3>
ただ問題がありまして、実は動画を再生するには<b style="text-decoration: underline dotted red;">FlashPlayer</b>を使用します。<br />
FlashPlayerは2020年にサポート終了することもありますし、Chromeでは再生するにはいちいち許可したりする必要があるのでスマートではないですねぇ~"(-""-)"<br />
ただ、RTMPはそもそもFlashPlayerの使用が前提みたいです。<br />
(※chromeでFlashPlayerを許可する方法は<br />
<a href="https://helpx.adobe.com/jp/flash-player/kb/cq09042354.html" target="blank">https://helpx.adobe.com/jp/flash-player/kb/cq09042354.html</a>を参考)<br />
なので<h2 style="font-size: large;">次回はFlashPlayerを回避して再生できるサーバー構築に挑戦します!!</h2>
これからも精進いたします!!😉<br />
それでは。
<br /><br />
<script>
document.querySelectorAll('.html_code').forEach(function (elem) {
elem.textContent = elem.innerHTML.trim();
});
</script></div></div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-30676673949342027242020-10-12T13:35:00.000+09:002020-10-12T13:36:55.085+09:00ZELMAN ZM-VE350のセットアップでハマったこと | ライタス株式会社こんにちわ。
10月より新入社員として入社しました<b>田所</b>と申します。<div><br /></div><div>IT系の知識は基本的にはないと思っていただいて、</div><div><u>初心者向けな内容のインフラ周りで学んだことのアウトプット</u>として日々発信していけたらと思います。</div><div>よろしくお願いいたします👦</div><div><br /></div><div>さて、さっそくですが、今回は以前にもブログでとりあげられていました</div><div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipBO8BIZyaZCyPlmoUD__O7-7YKwHkJLPDhwTMBSCvHAv2Z7zTKoEvYs-9AEVDCrwQ5P5h5O01jpPrX5SVt6PinW3WvwnRXR-tGDEPcBeOnz_ZNjjqLOYlOfW29ShM-CTrYnCQAozjkAWC/s2048/P_20201012_110003.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1701" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipBO8BIZyaZCyPlmoUD__O7-7YKwHkJLPDhwTMBSCvHAv2Z7zTKoEvYs-9AEVDCrwQ5P5h5O01jpPrX5SVt6PinW3WvwnRXR-tGDEPcBeOnz_ZNjjqLOYlOfW29ShM-CTrYnCQAozjkAWC/s320/P_20201012_110003.jpg" width="320" /></a></div><br /><div><br /></div><div>こいつです。</div><div><b><u><span style="font-size: medium;">ZalmanのZM-VE350</span></u></b></div><div>以前のレビュー記事は↓こちらからどうぞ</div><div><a href="https://blog.litus.co.jp/2016/02/zelman-zm-ve350.html">https://blog.litus.co.jp/2016/02/zelman-zm-ve350.html</a></div></div><div><br /></div><div>USB接続のHDD、SSDとして使用もできますし、ドライブの中にISOファイルを突っ込んでおけば</div><div><div><div>こいつのボタンをぽちぽちしてISOファイルを選択すれば光学ディスクとして使用できるというのでOSのインストール等にとても重宝するインフラエンジニアにはとても助かるアイテムです!!</div><div><br /></div><div><br /></div><div>ざっくりとセットアップの手順を記載しますと、</div><div><ol style="text-align: left;"><li><span><div>用意したSATA I/II/III接続のHDDかSSDを装着</div></span></li><li><div>USB接続すると電源がはいる(ドライブして認識される)</div></li><li>ドライブをフォーマットする</li><li>ドライブの中に「_iso」フォルダを作成する</li><li>「_iso」フォルダの中にisoファイルを入れる(複数可能)</li><li>本体のボタンからMode Select → Dual ModeかVCD Modeにする</li><li>本体のボタンから「_iso」にあるisoファイルを選択できるようになるので使用したいisoファイルを選択</li></ol></div><div><br /></div><div>といった流れで使用何点か詰まってしまった点があったのでピックアップして対処方法を残しておきます。</div><div style="font-size: small;"><br /></div><h3 style="text-align: left;"><b style="background-color: #fcff01;"><span style="font-size: medium;">1.USB接続してもドライブ認識されない</span></b></h3></div><div><span style="font-size: x-small;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYOizKug2yBl87zmr1h8JooCZmnqS1ReYFX8pWG-MT_A992ZTr1YyYPDPl6pB5o02uDNO53oIDfF0awngGbPpaMi1GcMhNSCOkBIsnoAhu8PwXvS7Agbw2RAdRd4Th4xPaiHvWr0g39Unk/s2048/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1240" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYOizKug2yBl87zmr1h8JooCZmnqS1ReYFX8pWG-MT_A992ZTr1YyYPDPl6pB5o02uDNO53oIDfF0awngGbPpaMi1GcMhNSCOkBIsnoAhu8PwXvS7Agbw2RAdRd4Th4xPaiHvWr0g39Unk/s320/2.jpg" /></a></div><br /><div><b>ZMV-VE350からなにも進まないやん.....</b></div><div><br /></div><div><br /></div><div>結果これについてはデスクトップPC等に接続するといけました。</div><div>単純に電力不足のようです。</div></div><div><div class="separator" style="clear: both; text-align: center;"></div>セルフパワータイプのUSBハブを使用したら使用しているノートPCでも使えました。(私が使用した商品詳細は<a href="https://www.amazon.co.jp/atolla-USB3-0%E3%83%8F%E3%83%96-%E9%9B%BB%E6%BA%90%E4%BB%98%E3%81%8D%E3%80%814%E3%83%9D%E3%83%BC%E3%83%885Gbps%E9%AB%98%E9%80%9F-%E3%82%BB%E3%83%AB%E3%83%95%E3%83%91%E3%83%AF%E3%83%BC%E3%83%BB%E3%83%90%E3%82%B9%E3%83%91%E3%83%AF%E3%83%BC%E3%80%81USB%E5%BB%B6%E9%95%B7%E3%82%B3%E3%83%BC%E3%83%89-hub%E7%8B%AC%E7%AB%8B%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%80%815V/dp/B01M0T37F3/ref=redir_mobile_desktop?ie=UTF8&aaxitk=hz5HBpu6cevnMkXu79fn5Q&hsa_cr_id=7736919230403&ref_=sbx_be_s_sparkle_mcd_asin_2">こちら</a>)</div><div><span style="font-size: x-small;"><br /></span></div><h3 style="text-align: left;"><b style="background-color: #fcff01;"><span style="font-size: medium;">2.「_iso」の中にisoをいれても「no iso file」と表示されisoファイルを選択できない。</span></b></h3><div>これにしばらく悩んだのですが、結論として<b><u>フォーマットの方法に問題がありました。</u></b></div><div><b><u><br /></u></b></div><div><a href="https://www.links.co.jp/item/zm-ve350/" target="_blank">公式HP</a>にも記載があったのですが、<br /></div>
<div><b><u><span style="font-size: medium;">MBRディスク/NTFSフォーマット</span></u></b></div><div>を見逃してました👨</div><div><span style="font-size: x-small;"><br /></span></div><div><span style="font-size: x-small;"><br /></span></div><div>どうやら<b>GPT</b>でフォーマットしていたみたいです。</div><div><br /></div><div><br /></div><div>本来ならwin10なら「ディスクの管理」からフォーマットしなおせるはずなんですが、失敗したので、この際勉強がてらコマンドプロントで挑戦しました。</div><div><br /></div><div><br /></div><div><br /></div><div>※ちなみにGUIでやってくれるフリーソフトもあるみたいです。</div><div><br /></div><div><a href="https://www.iodata.jp/support/qanda/answer/s16470.htm" target="_blank">I-O DATA ハードディスクフォーマッタ</a>なんかが定番っぽいです</div><div><br /></div><div>参考記事(ほとんどこれだけで完結しました。)</div><div><a href="https://qiita.com/sawawawawawa/items/2ddabd3c62e43c7af436" target="_blank">https://qiita.com/sawawawawawa/items/2ddabd3c62e43c7af436</a><br /></div><div><br /></div><div><br /></div><div>コマンドプロントを開いて</div>
<pre class="prettyprint ">
<div><br /></div><div>diskpart</div>
</pre>
<div><br /></div><div>↓</div><div><br /></div>
<div>一旦今認識しているディスクを確認します。</div><div><br /></div>
<pre class="prettyprint ">
<div><div>DISKPART> list disk</div><div><br /></div><div> ディスク 状態 サイズ 空き ダイナ GPT</div><div> ### ミック</div><div> ------------ ------------- ------- ------- --- ---</div><div> ディスク 0 オンライン XXX GB 0 B *</div><div> ディスク 1 オンライン XXX GB 0 B *</div></div><div><br /></div>
</pre>
<div>↓</div><div><br /></div>
<div>今回はディスク1をフォーマットするので選択します</div>
<pre class="prettyprint ">
<div><br /></div><div><div>DISKPART> select disk 1</div><div><br /></div><div>ディスク 1 が選択されました。</div><div><br /></div><div>DISKPART> list disk</div><div><br /></div><div> ディスク 状態 サイズ 空き ダイナ GPT</div><div> ### ミック</div><div> ------------ ------------- ------- ------- --- ---</div><div> ディスク 0 オンライン XXX GB 0 B *</div><div>*ディスク 1 オンライン XXX GB 0 B *</div></div><div><br /></div><div><br /></div>
</pre>
<div>ディスク1の左に*がついていることを確認</div>
<div><br /></div><div>↓</div><div><br /></div>
<div><br /></div><div>パーティションを削除します。</div><div><br /></div>
<pre class="prettyprint ">
<div><div>DISKPART> clean</div><div><br /></div><div>DiskPart はディスクを正常にクリーンな状態にしました。</div>
</pre>
<div><br /></div><div>これでGPTでフォーマットしてしまったパーティションはなくなります。</div>
<div><br /></div><div>↓</div><div><br /></div>
<div><br /></div><div>本日の主役MBR形式を選択します</div><div><br /></div>
<pre class="prettyprint ">
<div><div>DISKPART> convert mbr</div><div><br /></div><div>DiskPart は選択されたディスクを MBR フォーマットに正常に変換しました。</div></div></div>
</pre>
<div><span style="font-size: x-small;"><br /></span></div><div><b><span style="font-size: x-large;">これがしたかった</span></b></div><div><br /></div><div>これで今から作る<u>パーティションがMBR形式</u>となります。</div>
<div><br /></div><div>プライマリーのパーティションを作成します。</div><div><br /></div>
<div><br /></div><div>↓</div>
<pre class="prettyprint ">
<div><br /></div><div><div>DISKPART> create partition primary</div><div><br /></div><div>DiskPart は指定したパーティションの作成に成功しました。</div><div><br /></div><div>DISKPART> list partition</div><div><br /></div><div> Partition ### Type Size Offset</div><div> ------------- ------------------ ------- -------</div><div> Partition 1 予約 XX MB XX KB</div><div>* Partition 2 プライマリ xxxx GB XX MB</div></div><div><br /></div>
</pre>
<div>これでMBRのパーティションの完成です。</div><div>続いてファイルシステムをNTFSで指定してフォーマット開始</div><div><br /></div><div>↓</div><div><br /></div>
<pre class="prettyprint ">
<div><div>DISKPART> format fs=ntfs quick</div><div><br /></div><div> 100% 完了しました</div><div><br /></div><div>DiskPart は、ボリュームのフォーマットを完了しました。</div><div><br /></div>
</pre>
<div>これでNTFSのファイルシステムでフォーマットしてくれます。</div><div>ちなみに末尾にquickがついてますが<u>これがないと100年くらいかかる</u>らしいので必ずつけましょう。</div><div><br /></div><div>↓</div><div><br /></div>
<pre class="prettyprint ">
<div><div>DISKPART> assign letter=f</div><div><br /></div><div>DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。</div></div>
</pre>
<div><br /></div><div>これでちゃんとMBRでフォーマットされたドライブがFドライブとして認識されます。
</div><div><br /></div><div><br /></div>
<div>そして「_iso」フォルダの中にISOファイルをいれてやると無事本体の画面からisoを選択できるようになります。</div><div><br /></div><div>※それでも表示されない(no iso file)場合は上に数秒ボタンを上げると「_iso」内のisoファイルを読み込みなおしてくれるみたいです。</div><div style="font-size: small;"><br /></div><div style="font-size: small;"><br /></div><div><b><span style="font-size: large;">いやぁ~、すっきり!!!</span></b></div></div><div><br /></div><div><br /></div><div>最後に「I-O DATA ハードディスクフォーマッタ」のヘルプページに</div><div>フォーマット形式(FAT,NTFS等)、パーティション形式(GPT,MBR)の特徴についてわかりやすくまとめていただいていたので備忘録として掲載しておきます。</div><div>(よく忘れちゃう)</div>
<b><a href="https://www.iodata.jp/support/qanda/answer/s16470.htm">https://www.iodata.jp/support/qanda/answer/s16470.htm</a></b>
<div>これからも精進いたします!!😉</div>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-41654829147805554162020-01-06T18:43:00.001+09:002020-01-06T18:43:54.181+09:00CHUWI Aerobook13.3インチ購入レビュー | ライタス株式会社中華なノートでコスパの良いCHUWIのAerobookを購入しました。<br />
おもな仕様は以下。<br />
<ul>
<li>Core M3 6Y30 14nm</li>
<li>Dual Core Four Threads, 2.2GHz</li>
<li>メモリー8GB(DDR3)</li>
<li>256GB SSD</li>
<li>microSDカードスロット</li>
<li>3.5mmジャック</li>
<li>USB3.0×2</li>
<li>DCポート</li>
<li>mini HDMI</li>
<li>USB Type-C</li>
<li>Windows10 Home</li>
<li>グレア液晶(光沢)</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg534GeSq2LPpe5Tv876VZboKRUKi29MLNkgfAx2iHC1NL5PDZNDcp2WSMILZqzspXEi3KNPCG32ArhyphenhyphenI1dTm8Jnj98GGfNeRRVGBkQlW_cOXba4U2EY4F0Wh2NdNoKt_iEQNkwbfXisTWy/s1600/001_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="469" data-original-width="686" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg534GeSq2LPpe5Tv876VZboKRUKi29MLNkgfAx2iHC1NL5PDZNDcp2WSMILZqzspXEi3KNPCG32ArhyphenhyphenI1dTm8Jnj98GGfNeRRVGBkQlW_cOXba4U2EY4F0Wh2NdNoKt_iEQNkwbfXisTWy/s320/001_20200106_edit.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h3>
開梱</h3>
箱を横から開けると<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhEcaqgADhM1Mo1HH0u9p04oEYDfuKNgmpzQbKgSaGjkAbQMA0C_STZcM28sn1g6_rUN-ZEHshlfiNccvm5gfYXUHiW9DVfcFBc3uD2Zhg3YeGPHjIna9Fe074nKis1VwS1GmxUdY6azG7/s1600/002_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="393" data-original-width="695" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhEcaqgADhM1Mo1HH0u9p04oEYDfuKNgmpzQbKgSaGjkAbQMA0C_STZcM28sn1g6_rUN-ZEHshlfiNccvm5gfYXUHiW9DVfcFBc3uD2Zhg3YeGPHjIna9Fe074nKis1VwS1GmxUdY6azG7/s320/002_20200106_edit.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
アダプター類が入った細長い箱。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBeD5Y4ztQpqVCDbhvdvRvPzuLQ_x4GxlM0t5n7IAKzEcTMka8HzIClFGCGzDhSoG9auwhW77kUUEIl9QSk3f-iF8Oz9cElNSMwnK0CDPaZCbsfLV6ZL0Cb-2kqKEnssOjYCRtUp-Aw2xH/s1600/003_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="405" data-original-width="712" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBeD5Y4ztQpqVCDbhvdvRvPzuLQ_x4GxlM0t5n7IAKzEcTMka8HzIClFGCGzDhSoG9auwhW77kUUEIl9QSk3f-iF8Oz9cElNSMwnK0CDPaZCbsfLV6ZL0Cb-2kqKEnssOjYCRtUp-Aw2xH/s320/003_20200106_edit.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjP_PjgGmSCgZWVn4m5960r1JUJ6F-OvHTjAwA8Q7YXEX7Fifbd9oixPC4q3FiVlrQ_Mp-nPqXNd7MTag1zMnf3r6tB56Kl6-E7O8rxwgN3LTVoC6NjtZDZPlCgtWALzZKt6H4u3gbXulT/s1600/005_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="252" data-original-width="702" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjP_PjgGmSCgZWVn4m5960r1JUJ6F-OvHTjAwA8Q7YXEX7Fifbd9oixPC4q3FiVlrQ_Mp-nPqXNd7MTag1zMnf3r6tB56Kl6-E7O8rxwgN3LTVoC6NjtZDZPlCgtWALzZKt6H4u3gbXulT/s320/005_20200106_edit.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
本体もきちんと収められてます。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC4Urvmg5Z541dMGU6oRxpdZmqr_MgsL_lUuqZtlKDAtLi5eqFvDETgmD_QQ7zDd38iyl_t-EYhKDmetTqEW_WNeTCxbgdUJ251FjdaRguZtgh25NttQby4tIrpARhvdN3g2SjGclqnvQ4/s1600/007_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="539" data-original-width="704" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC4Urvmg5Z541dMGU6oRxpdZmqr_MgsL_lUuqZtlKDAtLi5eqFvDETgmD_QQ7zDd38iyl_t-EYhKDmetTqEW_WNeTCxbgdUJ251FjdaRguZtgh25NttQby4tIrpARhvdN3g2SjGclqnvQ4/s200/007_20200106.jpg" width="200" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDPU6VC55r6ZFioxRhjhqTu9-FIKr1DbpSJpQkwQHj97DyQ79RBoso_1bxNYcZSPR3r2IL5Azzi5gEQ9u8ugeIv70H4fiMrYvOmM1VNvA1e6cKDskEFk1b2IAJQJU3MiZbEXW1kN9eciOO/s1600/008_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="386" data-original-width="396" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDPU6VC55r6ZFioxRhjhqTu9-FIKr1DbpSJpQkwQHj97DyQ79RBoso_1bxNYcZSPR3r2IL5Azzi5gEQ9u8ugeIv70H4fiMrYvOmM1VNvA1e6cKDskEFk1b2IAJQJU3MiZbEXW1kN9eciOO/s200/008_20200106_edit.jpg" width="200" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
主な同梱物(内容)は<br />
<br />
<ul>
<li>AeroBook本体</li>
<li>ACアダプタ</li>
<li>マニュアル(ペラ1枚)等</li>
<li>謎のもの??</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJOEMQ1k23T1YSjSNUhkBpQOQDzyJWWChVc5-CJvK4rA0r8ey8AjAAYFtXo4yGotJ2MgUnrUlLqLiRmSWIIh4Yo7etEivwfuKVHV_ZfZU28OzqAwcIM03z8NOXO1bBv59P_DaZi3-wCzJ/s1600/011_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="325" data-original-width="536" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJOEMQ1k23T1YSjSNUhkBpQOQDzyJWWChVc5-CJvK4rA0r8ey8AjAAYFtXo4yGotJ2MgUnrUlLqLiRmSWIIh4Yo7etEivwfuKVHV_ZfZU28OzqAwcIM03z8NOXO1bBv59P_DaZi3-wCzJ/s400/011_20200106_edit.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
↓謎のもの<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRgg-STN8NGoWbVQTG9qwqXCGZ2uN2dmYvL4B6EXsbD5nmkClgk9pyqO6DTOIFdElM-Hct_ok0qv2l0-2m-6Zw0lnFLRPfTZ5cEdnKgWl9CytTwpxY-FM8Y9S7Rkq4It1TmhCxq5DALQaa/s1600/009_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="557" data-original-width="312" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRgg-STN8NGoWbVQTG9qwqXCGZ2uN2dmYvL4B6EXsbD5nmkClgk9pyqO6DTOIFdElM-Hct_ok0qv2l0-2m-6Zw0lnFLRPfTZ5cEdnKgWl9CytTwpxY-FM8Y9S7Rkq4It1TmhCxq5DALQaa/s320/009_20200106_edit.jpg" width="179" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAjmZbDlFld8N65WZZKuW14vKE0xdC10q_jhqJ8AqDQQUI9o-VCZuToq6bvDUtIqHta_vrJNlyoOTBk1scTIJJ8Fv9BLMBgcGULfc1w1GdYGaGFn2ef2erpAaRWxSMHItB7tFX6KV4ZE9B/s1600/010_20200106_edit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="478" data-original-width="725" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAjmZbDlFld8N65WZZKuW14vKE0xdC10q_jhqJ8AqDQQUI9o-VCZuToq6bvDUtIqHta_vrJNlyoOTBk1scTIJJ8Fv9BLMBgcGULfc1w1GdYGaGFn2ef2erpAaRWxSMHItB7tFX6KV4ZE9B/s200/010_20200106_edit.jpg" width="200" /></a></div>
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
(謎。。。教えてください。)<br />
<br />
<br />
<br />
次に側面のポート類<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAAT3Qp0xgesDelm0SSSdLb7FHkfTimh6gB1dZQvsNde62U3VoPzbX2vjOfDnKyPIZddS0yJvh9_2HFWiGndbFELBlG1mx_7tvDRUYI49-xaoRXZNNP83FIFMMiB7NSzFq_hpNWAKsIvi1/s1600/012_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="241" data-original-width="433" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAAT3Qp0xgesDelm0SSSdLb7FHkfTimh6gB1dZQvsNde62U3VoPzbX2vjOfDnKyPIZddS0yJvh9_2HFWiGndbFELBlG1mx_7tvDRUYI49-xaoRXZNNP83FIFMMiB7NSzFq_hpNWAKsIvi1/s320/012_20200106.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP3a7M8KkHE8FaewFieWDLvpsBu64oWFzDq68xI9FUJ0sDJKctb3IAK9AwGXVuQkjV4WH9ueyku8T1cV6Gm5KxT99iaYq3bhT7CB-HD1zVodc73V0itI9bc97HKoxM13cZSRlH4_rklmmA/s1600/013_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="179" data-original-width="354" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP3a7M8KkHE8FaewFieWDLvpsBu64oWFzDq68xI9FUJ0sDJKctb3IAK9AwGXVuQkjV4WH9ueyku8T1cV6Gm5KxT99iaYq3bhT7CB-HD1zVodc73V0itI9bc97HKoxM13cZSRlH4_rklmmA/s320/013_20200106.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
間違えてDCを右の3.5mmジャックに挿しそうになりました(-_-;)<br />
<br />
注意点としては<br />
miniHDMIですかね。<br />
他でmicroHDMIの記述も見られましたが<br />
miniです。<br />
客先でプレゼンする機会があれば、変換アダプタ必要かと。<br />
<br />
液晶を最大で開くとこんな感じ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVHKHNQ-R_aqCU0F23Pi1uVlA7tMIBBCXXq3Mxc_CtwB9KF2a-nNRmb7WkhwemUT5n4I02bYwDSW69IgluHJCx1HkmfjyD8dcQW0oxJKadr5D2hzOfDOC4BcGks_bVAFXL-RbTP2GcqsTI/s1600/014_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="478" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVHKHNQ-R_aqCU0F23Pi1uVlA7tMIBBCXXq3Mxc_CtwB9KF2a-nNRmb7WkhwemUT5n4I02bYwDSW69IgluHJCx1HkmfjyD8dcQW0oxJKadr5D2hzOfDOC4BcGks_bVAFXL-RbTP2GcqsTI/s200/014_20200106.jpg" width="200" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
バーンと液晶を180度開けて画面見せたくなる時ありますが、ご注意を。<br />
<br />
<a href="https://www.amazon.co.jp/AeroBook-%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-13-3%E3%82%A4%E3%83%B3%E3%83%81-Laptop-Windows10/dp/B0814QHBBK/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=Aerobook&qid=1578291153&s=computers&sr=1-5" target="_blank">【Amazon】Aerobook</a><br />
<br />
<h3>
起動</h3>
初期起動、セットアップはほぼ問題なく終わりました。<br />
(電源ボタンは約三秒ほど押していないと起動しないですが(;^ω^))<br />
<br />
ただ早速タスクバーを自分仕様にカスタマイズしようとしたら、ライセンス認証されていないので設定できない<br />
??<br />
アラートが。。。<br />
たまたま当該機がされていなかっただけかもしれませんが。<br />
"問題のトラブルシューティング"、クリックしたら解消されたので<br />
ま、問題なしということで。<br />
<br />
あと他の記事ではSSDのパーティション、Cドライブのみということが書いてありましたが、<br />
弊社のAerobookはC、Dと区切られておりました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzsr_JLWWlGYDQdMmz57D3Z4t19RC7R06OW_ndvPX63tdyYCMJ12Vy_0hIWRMo96259ITdworUezJJl2q-m7VLLYeoq2tk8gykVrQxOf2ynRSTgpCIf4N6QZvQEn82MNYKOqymZBHFtQWN/s1600/015_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="239" data-original-width="624" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzsr_JLWWlGYDQdMmz57D3Z4t19RC7R06OW_ndvPX63tdyYCMJ12Vy_0hIWRMo96259ITdworUezJJl2q-m7VLLYeoq2tk8gykVrQxOf2ynRSTgpCIf4N6QZvQEn82MNYKOqymZBHFtQWN/s400/015_20200106.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
D無くしてCに統合しようかな。<br />
<br />
<br />
<h3>
使用感</h3>
小一か月使用した感触<br />
<br />
まずキーボード!<br />
以前USキーボードで痛い目に合ってるだけに。。。<br />
(カスタマイズして余計使いにくくなったという(笑)。なので今回は何もカスタマイズしません。)<br />
デフォルトのまま使用しました。<br />
<br />
まず打鍵ですがキーピッチが19mmあることもあって、問題ないように思えます。<br />
ただ、"Enter"と"Backspace"は頻繁に打ち間違えてしまいます。。。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTTNJAUdV5YjLuB01nXroMhAWzUu16lQ-jgrED9Q6tNC5qjRyXbSLsvmj6hf3ZGzte51uRDS1DVOQNWujvzBRSo7B-OOpXJVmSgiRnpvLxoX-XL_1xSyb6ft59CRaWUbShmvqnQmtPMO2S/s1600/016_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="900" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTTNJAUdV5YjLuB01nXroMhAWzUu16lQ-jgrED9Q6tNC5qjRyXbSLsvmj6hf3ZGzte51uRDS1DVOQNWujvzBRSo7B-OOpXJVmSgiRnpvLxoX-XL_1xSyb6ft59CRaWUbShmvqnQmtPMO2S/s320/016_20200106.jpg" width="180" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
一番多いのがEnter打ったつもりがPgUpを打ってしまい<br />
画面が移動、何が起こったかわからん状態(笑)<br />
次にBackspaceを打ったつもりが、Home押して画面が明後日に。。。<br />
<br />
<br />
日本語入力切替は下記で切り替えられるので、慣れれば問題ないですかね。<br />
<ul>
<li>「Shift」+「CAPS Lock」</li>
</ul>
or<br />
<ul>
<li>「Alt」+「~」</li>
</ul>
<br />
<br />
ファンクションキーは<br />
他サイトではFnキーを押さないと操作できないとありましたが<br />
弊社の当該機ではデフォルトでF××、使えるようになっていました。<br />
自分、F2はエクセル、ファイル名の変更でもよく使うし<br />
F10も日本語入力時に多用するので改善されて良かったです。<br />
<br />
<br />
何気にキーボードにバックライトがあるのが良いですね<br />
なれないUSキーボードを暗いところで打っても確認できます!!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipA7XD0JL-kKa4mcZDQGnkSFh0lIprJ6LcrBrxacG1__UbFpFhu-zaRcJPqHy0Q6-BB0-vheFYUNZjJtT1rJroInDlJ1TuPM0NwQM8kjMQoeWSG1AHFpwP38yr1FzldygpbJr1kDiYftwy/s1600/017_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="220" data-original-width="382" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipA7XD0JL-kKa4mcZDQGnkSFh0lIprJ6LcrBrxacG1__UbFpFhu-zaRcJPqHy0Q6-BB0-vheFYUNZjJtT1rJroInDlJ1TuPM0NwQM8kjMQoeWSG1AHFpwP38yr1FzldygpbJr1kDiYftwy/s320/017_20200106.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Fn+F5でバックライト ON/OFF切替<br />
<br />
<br />
<br />
<br />
<br />
動作については、office、メール、WEB用途なら問題なく使えてます。<br />
(例 - excel複数ファイルオープンし、ブラウザ複数開き且つタブも複数等)<br />
ゲーム用途はゲームしないのでわかりませんww<br />
<br />
<br />
※参考までにベンチ<br />
【CrystalDiskMark】※C、D両方で取得<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXCo4m9-iHg40L_RF-yRoM3NQuR71iahXDX5zn1ohosTh6ePw1ZZrPqf75Wja08u_OLXiz-C0nWvW9ifQK58LG2CLnL6SZmUk051bPg01_R2oPu8GyP7ugyQNDYGk8dnL13vf6ZPbUMwx3/s1600/018_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="523" data-original-width="1451" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXCo4m9-iHg40L_RF-yRoM3NQuR71iahXDX5zn1ohosTh6ePw1ZZrPqf75Wja08u_OLXiz-C0nWvW9ifQK58LG2CLnL6SZmUk051bPg01_R2oPu8GyP7ugyQNDYGk8dnL13vf6ZPbUMwx3/s400/018_20200106.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
【CrystalMark2004R7】※ドライブはDで取得<br />
143960<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRFYNWzmqBuQDHc66xKrg6BA9Q-EL4C2P29TVbWC2EbCofn8waiHB8qXemdPxbbvG_LvFAeI2AtIKS2lieiSxdVW5iTuxJCtSZaz8bjFJr86ik5ZpH7gAjeMk8g_D0wRn686AnX322jApJ/s1600/019_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="882" data-original-width="973" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRFYNWzmqBuQDHc66xKrg6BA9Q-EL4C2P29TVbWC2EbCofn8waiHB8qXemdPxbbvG_LvFAeI2AtIKS2lieiSxdVW5iTuxJCtSZaz8bjFJr86ik5ZpH7gAjeMk8g_D0wRn686AnX322jApJ/s320/019_20200106.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
【cinebenchR20】<br />
401<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvXVFc9mPx8SGBHHZZbgUsLAz4vHAQOwUDExBqnp_67RJEyyQ8iMtu-qPe2Pb1kldZN7j8i3V6JirjRvNXVdoNaOWzVVDhfQgkfw7dMCah8pqz6qUDGdHsHXumpA2Y1uf09yDPpFYoqYbl/s1600/020_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="649" data-original-width="360" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvXVFc9mPx8SGBHHZZbgUsLAz4vHAQOwUDExBqnp_67RJEyyQ8iMtu-qPe2Pb1kldZN7j8i3V6JirjRvNXVdoNaOWzVVDhfQgkfw7dMCah8pqz6qUDGdHsHXumpA2Y1uf09yDPpFYoqYbl/s640/020_20200106.jpg" width="353" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
【WINSCORESHARE】<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV1E_xrEVYemUjgGvaU-PlTykeQ1gdvYefYrqjQMbRvWafb6n7aCiDQ0czWUPxOEg8tPvAYj26SX5KgpOnnhWkxsqvay5DBXiI6hllRBBu1ZVGtKqmoXeLOG8xCQz2sg34YVNFa7yaGRgi/s1600/021_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="859" data-original-width="963" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV1E_xrEVYemUjgGvaU-PlTykeQ1gdvYefYrqjQMbRvWafb6n7aCiDQ0czWUPxOEg8tPvAYj26SX5KgpOnnhWkxsqvay5DBXiI6hllRBBu1ZVGtKqmoXeLOG8xCQz2sg34YVNFa7yaGRgi/s320/021_20200106.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h3>
<br /></h3>
<h3>
<br /></h3>
<h3>
追記</h3>
<div>
こちらのブログを作成中に</div>
<div>
wifiが突然つながらなくなると云う事象がおきました。。。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlfO41jmDoLyCQcLzWo7wuw9r-8fMR0B70JnUxWYePE-kMnNhAve-MDCAOfMOipBO3f4gt40bA-s0z9hd4d37bZ6YhAMxPXhJM3IipsdOyYPrD9xKcFOjKWQy1tlAdWSk39D5bBplwWqm/s1600/022_20200106.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="576" data-original-width="783" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlfO41jmDoLyCQcLzWo7wuw9r-8fMR0B70JnUxWYePE-kMnNhAve-MDCAOfMOipBO3f4gt40bA-s0z9hd4d37bZ6YhAMxPXhJM3IipsdOyYPrD9xKcFOjKWQy1tlAdWSk39D5bBplwWqm/s320/022_20200106.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
デバイスマネージャーを見てみてもwifiアダプターが見つからず</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
しかしながらこちらはAerobookに限った話ではなく</div>
<div>
Windows10で起こる事象みたいです。</div>
<div>
<div>
PC(windows10)を完全shutすることによって認識するようになりました(;^ω^)</div>
<div>
(Shift+シャットダウン)</div>
</div>
ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-16683178310334149462019-10-08T20:40:00.000+09:002019-10-08T21:59:44.994+09:00PowerShellによる簡易Webサイト監視 | ライタス株式会社ひょんなことから、Webサイトをスポットで監視するということになり、サイトダウンや応答時間を確認したいと思いました。<br />
一般の無料Webサイト監視でもよかったのですが、監視間隔が長めになることが多いのと、一時的な監視ということなので、PowerShellで簡易に実施しようと思い立ちました。<br />
<br />
そこで作ったコードは以下の通り<br />
<pre><code class="prettyprint">
$i = 1
while ($i -le 100) {
<span style="white-space: pre;"> </span>$start = Get-Date
<span style="white-space: pre;"> </span>$ret = Invoke-WebRequest <URL>;
<span style="white-space: pre;"> </span>$timetaken = ((Get-Date) - $start).TotalMilliseconds / 1000
<span style="white-space: pre;"> </span>Write-Output ( "Now="+(Get-Date) + " CODE=" + $ret.StatusCode + " Time=" + $timetaken );
<span style="white-space: pre;"> </span>Start-Sleep -s 30;
<span style="white-space: pre;"> </span>$i +=1
}
</code></pre>
<br />
簡易に観測するぐらいなら、こんな感じですが、監視をちゃんとやる場合は、やはり監視ツールを採用したいですね。
参考にしたサイトは以下の通りです。<br />
<br />
Webページの応答時間をPowerShellからMackerelにメトリック投稿する<br />
<a href="https://qiita.com/nightyknite/items/3abca986324b9274fc23">https://qiita.com/nightyknite/items/3abca986324b9274fc23</a><br />
<br />
【PowerShell】指定した期間動作を一時停止する<br />
<a href="https://hosopro.blogspot.com/2017/01/powershell-start-sleep.html">https://hosopro.blogspot.com/2017/01/powershell-start-sleep.html</a>ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-64158088567667334502019-07-05T17:29:00.000+09:002019-07-05T17:29:08.546+09:00リモートデスクトップ先のChromeでマウスカーソルが消える | ライタス株式会社会社等でVPN経由で自分のPC環境や、VDIにログインして操作を行うケースが増えてきています。<br />
<br />
弊社でも、作業環境を効率化し、各自パソコンでの操作を管理するために、VPN環境を整えています。<br />
<br />
あまり発生しない現象かもしれませんが、この時にリモート先のChromeで突然(スリープ後?)にマウスカーソルが表示されなくなる現象が発生しました。<br />
再現性は薄いものの、再発するので原因を調査してみました。<br />
<br />
原因として考えられるのは、Chromeで採用しているマウスカーソルが、Windows標準ではないものを使っている可能性があるというもので、<br />
何かの拍子にリモート先へマウス画像が送れなくなったというものです。<br />
<br />
リモート先のPCを再起動したら、またマウスカーソルが復活してきたので、メモリ不足や、回線負荷等も可能性としてはありそうです。<br />
<br />
対処法として編み出したのは、上記に記載のあるとおり、PC再起動で対処していたのですが、いかんせん時間もかかるし、他の作業中のウィンドウも閉じないといけないことから、どうにかしようと考えました。<br />
マウスを無効化すればいいのでは?とか、設定をいろいろやってみましたがうまくいきませんでしたが、試しに、タスクスケジューラからChromeを強制停止をさせてから、再度起動したところ、マウスカーソルが復活してきたので、今後はこの方法を使おうと思います。<br />
<br />
もし同じ状況になった方がいらっしゃれば、お試しください。ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-84307066096382557092019-06-13T16:01:00.003+09:002019-06-13T16:01:55.356+09:00Netgearからクラウド型リモート管理サービス「Insight Pro」始まる | ライタス株式会社Netgearは、廉価なスイッチメーカーとして知られてくるようになってきました。<br />
ネットワーク機器では、クラウド管理の機能を有する機器が増えてきましたが、Netgearも対応したということのようです。<br />
<br />
価格感は、そこまで高くないですが、導入するには結構なノード数導入しているか、ReadyNASのような、サーバーを導入している場合は、検討する価値があると思います。<br />
<br />
紹介サイト<br />
<a href="https://www.jp.netgear.com/insight/">https://www.jp.netgear.com/insight/</a><br />
<br />
評価レポート<br />
<a href="https://www.jp.netgear.com/images/pdf/Miercom-Report-Netgear-Insight-Pro.pdf">https://www.jp.netgear.com/images/pdf/Miercom-Report-Netgear-Insight-Pro.pdf</a><br />
<br />
弊社では、Netgearはオフィス向け分配用ハブ(L2スイッチ)として採用するケースが多いです。<br />
理由としては、3点あります。<br />
<br />
・ファンレスであること<br />
・ポート数が多いものがラインナップされている<br />
・事務机に取り付けられること<br />
・ライフタイム保証(永年保証)があること<br />
<br />
オフィスでの利用においては、静音性が優先されるとの考えから、ファンレスを採用しています。<br />
また、16ポートを備えるファンレスモデルの中で、スリムかつ取り付け容易であるというところがユニークです。<br />
オフィス利用の場合は、乱雑に扱われることが想定できるので、故障時に機器取り換えが簡単にできることが優先されます。予備器材を抱えておけば、すぐに交換できますし、ライフタイム保証によって、機械が壊れても保証されるので、投資効率も格段に上がります。<br />
(ちなみに、かなりの数導入してますが、壊れた経験はないです)<br />
<br />
一番おすすめしているのは、ギガビットアンマネージプラス・スイッチシリーズの16ポート GS116Eです。<br />
この機種は、VLANに対応しているにもかかわらず、価格感が安価だと思うので、かなりおすすめです。<br />
<a href="https://www.jp.netgear.com/business/products/switches/web-managed/GS116E.aspx">https://www.jp.netgear.com/business/products/switches/web-managed/GS116E.aspx</a><br />
<br />
弊社でも、Netgear関連の販売が可能となっております。<br />
オフィス内のネットワークをご検討の際は、是非ご相談ください。ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-77591624415261521672019-05-31T10:50:00.001+09:002019-06-13T16:03:31.640+09:00iPhoneのカメラで表がExcelとして取り込めるようになったそうです | ライタス株式会社弊社でOffice365の導入支援、導入後のご相談の受付、ディスカウント販売を行っています。<br />
<br />
オンライン販売に比べると、お手間になる部分も多いですが、その分メリットもありますので、よろしければお引き合いください。<br />
<br />
お問合せフォームより賜っております。<br />
<br />
<br />
<br />
さて、導入の際に、さまざまな機能のご説明をさせていただくのですが、たくさんありすぎて一度にご説明するのは難しく、また、弊社でもすべての機能を把握できておらず、お客様から知らない機能を教えていただくことも多々あります。<br />
<br />
<br />
<br />
今回もそんな感じですが、アップル社製iPhoneでもExcelが取り込めるようになったというニュースが報じられました。<br />
<br />
<br />
<br />
<a href="https://www.gizmodo.jp/2019/05/excel-camera-ios.html">https://www.gizmodo.jp/2019/05/excel-camera-ios.html</a><br />
<br />
<br />
<br />
<br />
<br />
スマホによるOCR機能は、各社いろいろ発売されておりますが、Excelとの連携はやや難があるという状況でした。<br />
<br />
Excel OCRは、機械学習を利用しているということで、より高精度な読み取りが可能になるという触れ込みです。<br />
<br />
ここ最近、表に対応したOCRが出てきて、より一層便利になるかと思いますので、是非一度お試しください。。<br />
<br />
<br />
<br />ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com0tag:blogger.com,1999:blog-4490000306155762182.post-54347157333465077622019-04-22T10:00:00.000+09:002019-04-23T20:34:27.288+09:00squidでresolv.confが適用されない | ライタス株式会社Webプロキシとして導入されている事例の多いsquid<br />
簡単に導入でき、比較的規模の大きいネットワークでも、そこそこ捌いてくれるので、便利です。また、セキュリティの要請によって導入されることもしばしばあります。<br />
<br />
さて、squidの名前解決でちょっとハマったので、メモをしておこうと思います。<br />
<br />
squidはsquid.confに従って動作しますが、名前解決には2通り(正確には3通り?)あります。<br />
よくわかっていない部分もありますが、そこは後述します。<br />
<br />
1.resolv.conf を参照する<br />
<br />
デフォルトでは、OSの名前解決であるresolv.confをsquid起動時に取り込み、疎通できるDNSが1台もなければ起動に失敗します。<br />
<br />
2.squid.conf で dns_nameserversを定義する<br />
resolv.confで定義されたDNS以外を参照したいというケースに対応するために、dns_nameserversというディレクティブが存在します。resolv.confに記載している内容と重複していても問題ないようなので、心配な方は記載しておくとよいかもしれません。<br />
<br />
dns_nameserver 192.168.1.1 192.168.1.2<br />
<br />
3.Windowsレジストリを参照する<br />
公式ドキュメントにも記載があるのですが、これがどうしてもわかりません。<br />
Webアクセスをsquid経由でWindowsプラットフォームの場合には、Windowsの設定されているDNSを参照するそうです。<br />
設定の状況にも寄るかと思いますが、特定条件下での挙動として念のため把握しておきたいところです<br />
<br />
<br />
また、これら設定を変えたときは、サービスの再起動をしないと反映されないようです。<br />
てっきり設定ファイルを変えれば即座反映されると思っていたのですが、<br />
どうやらそうではないようなので、注意が必要です。<br />
<br />
<br />ライタス株式会社広報http://www.blogger.com/profile/04051305642454381065noreply@blogger.com1