tag:crieit.net,2005:https://crieit.net/tags/WindowsServer/feed 「WindowsServer」の記事 - Crieit Crieitでタグ「WindowsServer」に投稿された最近の記事 2021-05-25T14:20:46+09:00 https://crieit.net/tags/WindowsServer/feed tag:crieit.net,2005:PublicArticle/17273 2021-05-25T14:20:46+09:00 2021-05-25T14:20:46+09:00 https://crieit.net/posts/WindowsServer-DHCP WindowsServer DHCPサーバざっくりメモ <h1 id="DHCPサーバとは"><a href="#DHCP%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8%E3%81%AF">DHCPサーバとは</a></h1> <p>IPアドレスが固定化されなくてもよい(PCなど)端末に自動的にIPアドレスを振ってくれるサーバ</p> <h1 id="IPアドレスを割り振る流れ"><a href="#IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%89%B2%E3%82%8A%E6%8C%AF%E3%82%8B%E6%B5%81%E3%82%8C">IPアドレスを割り振る流れ</a></h1> <p>1.DHCP Discover<br /> 2.DHCP Offer<br /> 3.DHCP Request<br /> 4.DHCP Acknowledge<br /> の4つの工程で行われている</p> <h4 id="DHCP Discover(DHCP 探索)"><a href="#DHCP+Discover%EF%BC%88DHCP+%E6%8E%A2%E7%B4%A2%EF%BC%89">DHCP Discover(DHCP 探索)</a></h4> <p>クライアント側が発するメッセージ。<br /> DHCPサーバを探しながらIPアドレスが欲しい!!!!!!!って叫んでるイメージ<br /> (リミテッドブロードキャストしてる)</p> <h4 id="DHCP Offer(DHCP提案)"><a href="#DHCP+Offer%EF%BC%88DHCP%E6%8F%90%E6%A1%88%EF%BC%89">DHCP Offer(DHCP提案)</a></h4> <p>DHCPサーバ側が発するメッセージ。<br /> Discoverしてきた人にこんなIPアドレスあるけどいる?って聞いてるイメージ</p> <h4 id="DHCP Request(DHCP要求)"><a href="#DHCP+Request%EF%BC%88DHCP%E8%A6%81%E6%B1%82%EF%BC%89">DHCP Request(DHCP要求)</a></h4> <p>クライアント側が発するメッセージ。<br /> Offerに対してそれくださいって頼んでるイメージ</p> <h4 id="DHCP Acknowledge(DHCP承認)"><a href="#DHCP+Acknowledge%EF%BC%88DHCP%E6%89%BF%E8%AA%8D%EF%BC%89">DHCP Acknowledge(DHCP承認)</a></h4> <p>DHCPサーバ側が発するメッセージ。<br /> Requestに対していいよーって言って渡してるイメージ<br /> (このタイミングで自分が持ってるIPアドレスの範囲から消してる?)</p> <h5 id="IPが割り振れなくなったら"><a href="#IP%E3%81%8C%E5%89%B2%E3%82%8A%E6%8C%AF%E3%82%8C%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%89">IPが割り振れなくなったら</a></h5> <h6 id="DHCP NAK"><a href="#DHCP+NAK">DHCP NAK</a></h6> <p>DHCPサーバ側が発するメッセージ。<br /> DHCPサーバがDHCP REQUESTメッセージを受信した後に、<br /> そのIPアドレスを貸し出すことが出来なくなってしまった場合に<br /> クライアントへ送信するメッセージです。</p> <h1 id="DHCP詳細"><a href="#DHCP%E8%A9%B3%E7%B4%B0">DHCP詳細</a></h1> <h2 id="一般設定"><a href="#%E4%B8%80%E8%88%AC%E8%A8%AD%E5%AE%9A">一般設定</a></h2> <p>1.配布するIPアドレスの範囲の指定<br /> 2.サブネットマスクの指定<br /> 3.デフォルトゲートウェイの指定<br /> 4.DNSサーバの指定<br /> 5.リース(IPアドレスの貸出期間)の指定</p> <h2 id="プラスアルファの設定"><a href="#%E3%83%97%E3%83%A9%E3%82%B9%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%81%AE%E8%A8%AD%E5%AE%9A">プラスアルファの設定</a></h2> <p>1.IPアドレスの予約<br /> 2.IPアドレスの除外<br /> 3.80/20構成の冗長化(IPアドレスを8割と2割で分けて二つのサーバで管理する)</p> <h2 id="DHCPサーバ内で問題が起きた場合に確認すること"><a href="#DHCP%E3%82%B5%E3%83%BC%E3%83%90%E5%86%85%E3%81%A7%E5%95%8F%E9%A1%8C%E3%81%8C%E8%B5%B7%E3%81%8D%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8">DHCPサーバ内で問題が起きた場合に確認すること</a></h2> <p>1.サーバの電源が抜けていないか<br /> 2.OSが起動しているか<br /> 3.DHCPサーバが起動しているか<br /> 4.対象スコープのリースが枯渇していないか</p> tobara tag:crieit.net,2005:PublicArticle/17268 2021-05-25T12:13:13+09:00 2021-05-25T12:13:13+09:00 https://crieit.net/posts/Windows-Server-web-DNS Windows Server webサーバとDNSサーバざっくりメモ <h1 id="WindowsServerの特徴"><a href="#WindowsServer%E3%81%AE%E7%89%B9%E5%BE%B4">WindowsServerの特徴</a></h1> <p>1.Active Directoryなど、社員のIDやPCを管理するための機能がある(<strong>社内向けのOS</strong>)<br /> 2.GUIメイン(目で見てマウスとか使って設定できる)<br /> 3.お金がかかる</p> <h2 id="ネットワークの種類の確認と変更"><a href="#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%A8%E5%A4%89%E6%9B%B4">ネットワークの種類の確認と変更</a></h2> <ol> <li>Windows Server上でPower Shellを起動します(PC側で起動しないこと)</li> <li>以下コマンドでパブリック(Public)になっているか確認<br /> Get-NetConnectionProfile</li> <li>以下コマンドでプライベート(Private)に変更します<br /> Set-NetConnectionProfile -NetworkCategory Private</li> <li>2のコマンドでプライベートに変更されたことを<br /> 確認できたら完了です。</li> </ol> <h1 id="webサーバとは"><a href="#web%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8%E3%81%AF">webサーバとは</a></h1> <p>1.HTTP通信を使ってクライアントにリクエストされたwebページを渡してくれるサーバ<br /> 2.WindowsではIISっていうwebサーバが主流<br /> 3.ホームディレクトリというファイルの中に表示させたいhtmlのファイルを入れて使う(IISのデフォルトホームディレクトリ︓c:¥inetpub¥wwwroot)</p> <h2 id="設定手順"><a href="#%E8%A8%AD%E5%AE%9A%E6%89%8B%E9%A0%86">設定手順</a></h2> <p>1.使いたいwebサーバの種類選択<br /> 2.見せたいwebページのファイルをホームディレクトリに入れる</p> <h1 id="DNSサーバとは"><a href="#DNS%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8%E3%81%AF">DNSサーバとは</a></h1> <p>1.ドメイン名とIPアドレスの紐づけ、名前解決をしてくれる(www.yahooo.jp←これをIPアドレスの形にしてくれる)サーバ<br /> 2.FQDN(www.yahoo.co.jp)はホスト名(www)とドメイン名(yahoo.co.jp)に分かれる<br /> 3.そのうちホスト名のほうにはIPアドレスを割り振り(俗にいうAレコード)、ドメイン名のほうは前方参照ゾーンという管理対象範囲を設定する<br /> 4.</p> <h2 id="設定手順"><a href="#%E8%A8%AD%E5%AE%9A%E6%89%8B%E9%A0%86">設定手順</a></h2> <p>1.ゾーンの作成<br /> 2.Aレコードの設定<br /> 3.優先DNS サーバの設定(ローカルの場合127.0.0.1でいい)</p> <h3 id="もうちょいメモ"><a href="#%E3%82%82%E3%81%86%E3%81%A1%E3%82%87%E3%81%84%E3%83%A1%E3%83%A2">もうちょいメモ</a></h3> <p>イーサネットプロパティからIPv6のチェック外さないとなんかできない</p> <pre><code>名前解決後のIPアドレス教えてくれるやつ nslookup FQDN(www.yahoo.co.jpみたいなやつ) </code></pre> tobara tag:crieit.net,2005:PublicArticle/17261 2021-05-25T11:02:55+09:00 2021-05-25T11:02:55+09:00 https://crieit.net/posts/3-Windows-Server サーバ入門3 Windows Serverのインストール <h5 id="「ブリッジアダプター」で設定すると既存のネットワークに影響を与える可能性があるので「内部ネットワーク」を使用する。"><a href="#%E3%80%8C%E3%83%96%E3%83%AA%E3%83%83%E3%82%B8%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%E3%83%BC%E3%80%8D%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E6%97%A2%E5%AD%98%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AB%E5%BD%B1%E9%9F%BF%E3%82%92%E4%B8%8E%E3%81%88%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%8C%E5%86%85%E9%83%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%80%8D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%80%82">「ブリッジアダプター」で設定すると既存のネットワークに影響を与える可能性があるので「内部ネットワーク」を使用する。</a></h5> <h5 id="内部ネットワークで構築したWindowsServerは正常にアクティベーションできないため、1時間おきにシャットダウンする。その際は都度起動すること。"><a href="#%E5%86%85%E9%83%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%9FWindowsServer%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%811%E6%99%82%E9%96%93%E3%81%8A%E3%81%8D%E3%81%AB%E3%82%B7%E3%83%A3%E3%83%83%E3%83%88%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B%E3%80%82%E3%81%9D%E3%81%AE%E9%9A%9B%E3%81%AF%E9%83%BD%E5%BA%A6%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%80%82">内部ネットワークで構築したWindowsServerは正常にアクティベーションできないため、1時間おきにシャットダウンする。その際は都度起動すること。</a></h5> <p>それ以外のインストールの進み方はサーバ入門2で行ったインストール法と一緒。</p> ko00w1 tag:crieit.net,2005:PublicArticle/17216 2021-05-21T09:45:13+09:00 2021-05-21T09:45:13+09:00 https://crieit.net/posts/Windows-Server-60a702998cd83 サーバ入門2 Windows Serverの基礎知識 <p>・Windows Serverとは、企業の社員が使っている<strong>WindowsPC</strong>を管理するために利用されているサーバOS<br /> ・Windows10との大きな違いは、<strong>クライアント</strong>へ<strong>サービスを提供する</strong>ことができる(ファイルサーバやWebサーバのサービスを提供することができる)<br /> ・企業向けのOS「WindowsNT3.1」から歴史が始まった<br /> ・最新のバージョンは現在、<strong>Windows Server2019</strong><br /> ・Windows Serverが支持される理由は「<strong>Active Directory</strong>」が使いやすいため</p> <h2 id="Active Directory"><a href="#Active+Directory">Active Directory</a></h2> <p>・・・企業内で稼働している様々なITシステムに対して、アクセス可否を判断するための「認証の基盤」を提供する。ざっくりいうと、社内システムへのアクセス可能な社員、部署、PCを容易に制限することができる。</p> <h1 id="<ライセンスについて>"><a href="#%EF%BC%9C%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%EF%BC%9E"><ライセンスについて></a></h1> <h2 id="1.サーバライセンス"><a href="#1.%E3%82%B5%E3%83%BC%E3%83%90%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9">1.サーバライセンス</a></h2> <p>・・・サーバOS(2012R2や2019など)を使うために必要なライセンス、エディションやCPUなどで価格が変動する。</p> <h2 id="2.クライアントライセンス(CAL)"><a href="#2%EF%BC%8E%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%28CAL%29">2.クライアントライセンス(CAL)</a></h2> <p>・・・サーバに接続するクライアントの数だけ必要なライセンス。OSと同様にバージョンがあるので注意。<br /> ※WindowsServerを使うには、ライセンスの購入が必須。ライセンスはサーバだけでなく、<strong>クライアントの分も購入が必要</strong></p> <h1 id="&lt;Webサーバについて&gt;"><a href="#%26lt%3BWeb%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%26gt%3B"><Webサーバについて></a></h1> <p>・Webとは、主にインターネットで使われている「<strong>ハイパーテキスト</strong>」システムのこと。</p> <h2 id="ハイパーテキスト"><a href="#%E3%83%8F%E3%82%A4%E3%83%91%E3%83%BC%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88">ハイパーテキスト</a></h2> <p>・・・世の中に様々な場所に交互に参照できるようにした仕組み。ある文書の中に別の文書への参照(ハイパーリンク)を埋め込むことで、関連する情報を結び付けて即座に参照できるようになっている。<br /> ・Webでは「<strong>URL(Uniform Resource Locator)</strong>」を使って文章を一意に表す。</p> <h2 id="&lt;URLの書式&gt;"><a href="#%26lt%3BURL%E3%81%AE%E6%9B%B8%E5%BC%8F%26gt%3B"><URLの書式></a></h2> <h3 id="スキーム名://ユーザ名:パスワード@ホスト名:ポート番号/パス"><a href="#%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%A0%E5%90%8D%3A%2F%2F%E3%83%A6%E3%83%BC%E3%82%B6%E5%90%8D%3A%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%40%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%3A%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%2F%E3%83%91%E3%82%B9">スキーム名://ユーザ名:パスワード@ホスト名:ポート番号/パス</a></h3> <div class="table-responsive"><table> <thead> <tr> <th>種類</th> <th>意味</th> </tr> </thead> <tbody> <tr> <td>スキーム名</td> <td>プロトコルを表す名前</td> </tr> <tr> <td>ユーザ名:パスワード</td> <td>ユーザ認識情報(省略可能)</td> </tr> <tr> <td>ホスト名</td> <td>サーバのドメイン名かIPアドレス</td> </tr> <tr> <td>ポート番号</td> <td>省略可能</td> </tr> <tr> <td>パス</td> <td>取得したい情報のパス(省略可能)</td> </tr> </tbody> </table></div> <p>例:https(スキーム名)://www.microsoft.com(Webサーバ名)/ja-jp/windows-server(パス)<br /> ※パスを省略したい場合は一般的に<strong>index.html</strong>が指定されたとみなすWebサーバが多い。</p> <p>・コンピュータが通信するときの手順や規格を定めたものを「<strong>プロトコル</strong>」と呼び、一般的に「<strong>TCP/IP</strong>(複数のプロトコルの集まり)」というプロトコルが用いられる。<br /> ・コンピュータ同士で通信するには、それぞれに「IPアドレス」を割り当て、宛先にIPアドレスを指定して通信する。<br /> ・数字の羅列からなるIPアドレスでは、人は覚えにくいので、「www.google.com」のような「<strong>ドメイン名</strong>」で指定する。そこで16ビット(1~65535)の整数値である「ポート番号」を使って多くのサービスを区別する。<br /> ・Webで用いられるプロトコルが「<strong>HTTP(Hyper Text Transfer Protcol)</strong>」で、HTTPでは、クライアントであるWebブラウザから要求を送り、Webサーバがそれに応じて返答を返す。<br /> ・HTTPでは通常、ポート番号80番を使用する。また、HTTPを暗号化して安全に通信する「HTTPS(Hyper Text Transfer Protcol Secure)」もあり、HTTPSでは443番を用いる。現在のインターネットでは、HTTPSのほうがHTTPよりも安全なので一般的に使われている。</p> <h2 id="Webサーバ"><a href="#Web%E3%82%B5%E3%83%BC%E3%83%90">Webサーバ</a></h2> <p>・・・Webサービスを提供するソフトウェアもしくはコンピュータのこと。</p> <p>・<strong>IIS(Internet Information Services)</strong><br /> ・<strong>Apache HTTP Server</strong><br /> ・<strong>nginx</strong></p> <p>・Webサーバの基本機能は、あらかじめファイルとして置いてある文書や画像、音楽、動画などの「<strong>静的</strong>」な情報を提供すること。しかし、Webサーバの機能はそれだけにとどまらずWebサーバ自身やほかのソフトが作り出す「<strong>動的</strong>」な情報提供もできる。</p> <h2 id="デベロッパーツールの起動の仕方(chrome)"><a href="#%E3%83%87%E3%83%99%E3%83%AD%E3%83%83%E3%83%91%E3%83%BC%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E8%B5%B7%E5%8B%95%E3%81%AE%E4%BB%95%E6%96%B9%28chrome%29">デベロッパーツールの起動の仕方(chrome)</a></h2> <p>Google Chromeを起動し「F12」キーを押せばデベロッパーツールが起動する</p> <h2 id="DNS(Domain Name System)サーバ"><a href="#DNS%28Domain+Name+System%29%E3%82%B5%E3%83%BC%E3%83%90">DNS(Domain Name System)サーバ</a></h2> <p>・・・インターネットの世界では、サーバやPCといったコンピュータ同士が通信する場合、<strong>通信したい相手の指定</strong>や<strong>通信してきた相手の判別</strong>に「<strong>IPアドレス</strong>」を使う。覚えにくい「IPアドレス」ではなく名前で指定された通信相手のIPアドレスを調べられる仕組みを提供するのが<strong>DNSサーバ</strong></p> <h3 id="DNSの仕組みを電話の世界で例えると"><a href="#DNS%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF%E3%82%92%E9%9B%BB%E8%A9%B1%E3%81%AE%E4%B8%96%E7%95%8C%E3%81%A7%E4%BE%8B%E3%81%88%E3%82%8B%E3%81%A8">DNSの仕組みを電話の世界で例えると</a></h3> <p>電話帳=<strong>DNSサーバ</strong><br /> 個人や法人の名前=<strong>ホスト名・ドメイン名(FQDN)</strong><br /> 電話帳=<strong>IPアドレス</strong><br /> ※電話も名前だけでは通信ができない電話帳から電話番号を特定しなくては電話はできない</p> <p>・nslookupというコマンドを使用すれば、IPアドレスをDNSサーバに尋ねることができる。<br /> 例:nslookup www.google.com(コマンドプロンプトで使用)<br /> ・もし、DNSサーバで障害が起きて使えない状態の時、PCはサーバのIPアドレスがわからないので通信する事ができない。<br /> ・DNSサーバの設定が間違って設定されていた場合、本来WebサーバのIPアドレスではないから見たいWebページは表示されない。<br /> ・インターネットのDNSは、膨大な数のドメインを効率よく問い合わせるために、<strong>階層構造</strong>で名前解決を行う。<br /> ・<strong>1度問い合わせしたIPアドレスは一定期間キャッシュDNSサーバに保管される。以降は、キャッシュDNSサーバが直接IPアドレスを返す。(PCやブラウザにもキャッシュ機能がある。)</strong></p> ko00w1 tag:crieit.net,2005:PublicArticle/17199 2021-05-19T15:41:13+09:00 2021-05-19T15:41:13+09:00 https://crieit.net/posts/OS-60a4b309f16a0 OS基礎知識ざっくりまとめ <h1 id="OS(OperatingSystem)とは"><a href="#OS%EF%BC%88OperatingSystem%EF%BC%89%E3%81%A8%E3%81%AF">OS(OperatingSystem)とは</a></h1> <p><strong>ハードウェアの管理や制御などをアプリなどのプログラムに代わってやってくれる。</strong><br /> シングルコアのCPUでyoutube見ながらExcelとかできるのはOSのおかげ<br /> OSの中には<strong>カーネル</strong>と<strong>シェル</strong>というものが組み込まれている</p> <h3 id="カーネル"><a href="#%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB">カーネル</a></h3> <p>ハードウェアのリソースをアプリケーションプログラムに割り当ててくれる</p> <h3 id="シェル"><a href="#%E3%82%B7%E3%82%A7%E3%83%AB">シェル</a></h3> <p>ユーザからの操作の受付をしてくれてるやつ</p> <h1 id="サーバとして使われる二つの代表的なOS"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E4%BA%8C%E3%81%A4%E3%81%AE%E4%BB%A3%E8%A1%A8%E7%9A%84%E3%81%AAOS">サーバとして使われる二つの代表的なOS</a></h1> <h2 id="①Windows Server"><a href="#%E2%91%A0Windows+Server">①Windows Server</a></h2> <p>Microsoftが開発している<strong>企業の社内向けサービス(情報システム系)</strong><br /> <strong>GUI</strong>操作中心。<br /> <strong>ActiveDirectryサービス(パソコンのアクセス権限とかをまとめて管理できるやつ)の機能追加ができる</strong><br /> クライアントに<strong>サービスを提供する機能</strong>が多く追加できる</p> <h2 id="②Linux"><a href="#%E2%91%A1Linux">②Linux</a></h2> <p><strong>OSS</strong>で開発されている<strong>Linuxカーネル</strong>を採用したOS<br /> <strong>リーナス・トーバルズ</strong>が作成<br /> 気軽に使えない<strong>UNIX</strong>を気軽に使いたいがために作った<br /> 無償。コマンド操作(<strong>CLI</strong>)が主流<br /> <strong>LAMP環境</strong>で動作するWebアプリケーションを<strong>社外向けに公開</strong>するために必要なOSとして採用されている。</p> <h6 id="LAMP環境...Linux,Apache,MySQL,PHPの頭文字が由来"><a href="#LAMP%E7%92%B0%E5%A2%83...Linux%2CApache%2CMySQL%2CPHP%E3%81%AE%E9%A0%AD%E6%96%87%E5%AD%97%E3%81%8C%E7%94%B1%E6%9D%A5">LAMP環境...Linux,Apache,MySQL,PHPの頭文字が由来</a></h6> <p>データベースを使ったwebアプリケーションを開発・運用するのに適したOSSの組み合わせの一つ。webアプリケーションとしては、WordPressが非常に有名</p> tobara tag:crieit.net,2005:PublicArticle/17175 2021-05-18T17:04:43+09:00 2021-05-18T17:06:59+09:00 https://crieit.net/posts/Windows-Server-2012-r2-virtual-box Windows Server 2012 r2 初期設定のまとめ (virtual box) <h1 id="作成するもの"><a href="#%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%82%82%E3%81%AE">作成するもの</a></h1> <ul> <li>WEBサーバ複数個(ラウンドロビン方式)</li> <li>DNSサーバ</li> </ul> <p>もちろんセキュリティパッチも適応させていきます。</p> <h2 id="WEBサーバ"><a href="#WEB%E3%82%B5%E3%83%BC%E3%83%90">WEBサーバ</a></h2> <p>Windows 2012 r2を起動させたら</p> <ul> <li><strong>Windowsファイアーウォールをプライベートに設定</strong></li> <li><strong>IPv6をオフに設定</strong></li> <li><strong>リモートデスクトップを有効にする</strong></li> </ul> <p>以上の3工程をします。</p> <h5 id="Windowsファイアーウォールをプライベートに設定"><a href="#Windows%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%83%BC%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%82%92%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%81%AB%E8%A8%AD%E5%AE%9A">Windowsファイアーウォールをプライベートに設定</a></h5> <hr /> <p>Windows Powershellを開き<strong><em>Get-NetConnectionProfile</em></strong>を入力しpublicになってる確認</p> <pre><code>PS C:¥Users> Get-NetConnectionProfile </code></pre> <p>入力後</p> <pre><code>NetworkCategory : Private </code></pre> <p>上記と同じように「Private」と表示されていれば問題ないです。</p> <p>「Public」と表示してあった場合は「Private」修正します。</p> <pre><code>Set-NetConnectionProfile -NetworkCategory Private </code></pre> <p>上記のコマンドを入力すると変更できます。</p> <p>再度 Get-NetConnectionProfile を入力し確認し、NetworkCategoryが「Private」になっていれば成功です。</p> <h4 id="IPv6をオフに設定"><a href="#IPv6%E3%82%92%E3%82%AA%E3%83%95%E3%81%AB%E8%A8%AD%E5%AE%9A">IPv6をオフに設定</a></h4> <hr /> <p><a href="https://crieit.now.sh/upload_images/5856fa3934a0685d227070d0855b64e660a363f0cf5f3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5856fa3934a0685d227070d0855b64e660a363f0cf5f3.png?mw=700" alt="image" /></a></p> <ul> <li><p>ネットワークインターネットアクセスを右クリックし、ネットワークと共有センターを開くをクリック</p></li> <li><p>インサーネットをクリックしプロパティを開く</p></li> <li>「インターネットプロトコルバージョン6(TCP/IPv6)」のチェックボックスのチェックを外す</li> </ul> <p>*<br /> 以上でIPv6をオフに設定できました。</p> <h4 id="リモートデスクトップを有効にする"><a href="#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B">リモートデスクトップを有効にする</a></h4> <hr /> <ul> <li>サーバーマネージャーのローカルサーバーをクリック</li> <li>プロパティ内のリモートデスクトップをクリック</li> <li>リモートデスクトップ内のリモート接続を許可するの方のラジオボタンをクリック</li> <li>ネットワーク認証が・・・と書いてあるチェックボックスのチェックを外す</li> <li>適用ボタンを押して閉じる</li> </ul> <p>以上でリモートデスクトップを有効にすることが出来ます。</p> <h2 id="DNSサーバー"><a href="#DNS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC">DNSサーバー</a></h2> <p>Windows 2012 r2のサーバをもう一つ作り、起動させたらWEBサーバの期と同じく<br /> * <strong>Windowsファイアーウォールをプライベートに設定</strong><br /> * <strong>IPv6をオフに設定</strong><br /> * <strong>リモートデスクトップを有効にする</strong></p> <p>の三工程をし、それに加えて<br /> * <strong>DNSサーバーをインストール</strong><br /> * <strong>DNSサーバーの設定</strong><br /> をします。</p> <h4 id="DNSサーバーをインストール"><a href="#DNS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">DNSサーバーをインストール</a></h4> <ul> <li>サーバーマネージャーのダッシュボード「画面の役割と機能の追加」をクリック</li> <li>役割と機能の追加ウィザードが起動したら「次へ」をクリック</li> <li>インストールの種類「役割ベースまたは機能ベース」を選択し、「次へ」をクリック</li> <li>次の画面も「次へ」をクリック</li> <li>サーバーの役割をクリックし、役割選択の中からDNSサーバーを選択</li> <li>警告が出てきたら「続行」を押し、「機能の追加」をクリック</li> <li>「インストール」が押せるようになるまで「次へ」をクリック</li> <li>「インストール」を押し、完了したら「閉じる」をクリック</li> <li>ダッシュボード内にDNSが追加されていることを確認<br /> <a href="https://crieit.now.sh/upload_images/98003779df625e448a6b06d17ffafa7b60a374e1c616c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/98003779df625e448a6b06d17ffafa7b60a374e1c616c.png?mw=700" alt="image" /></a></li> </ul> <p>以上でDNSサーバーのインストールは終了です。</p> 大石バリー tag:crieit.net,2005:PublicArticle/17167 2021-05-18T15:52:20+09:00 2021-05-18T15:54:28+09:00 https://crieit.net/posts/VirtualBox-60a3642408ef2 VirtualBoxでサーバ構築1 <p>今回からはVirtualBoxを使ってサーバ構築をやっていきたいと思います<br /> 下の図のようにDnsサーバでURLをIPアドレスに変換し、そのIPアドレスでWebサーバに接続したいと思います<br /> <a href="https://crieit.now.sh/upload_images/589ca1fcd274fab7e220ab6244d144c860a3506a4d54a.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/589ca1fcd274fab7e220ab6244d144c860a3506a4d54a.jpg?mw=700" alt="1.jpg" /></a><br /> まず今回は仮想サーバの構築とWebサーバのみを使って接続をしたいと思います</p> <h3 id="準備"><a href="#%E6%BA%96%E5%82%99">準備</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://www.virtualbox.org/">VirtualBox</a>のバージョン6.1<br /> <a target="_blank" rel="nofollow noopener" href="https://www.microsoft.com/ja-jp/evalcenter/evaluate-windows-server-2012-r2">Windows Server 2012 R2 評価版</a><br /> を使います</p> <h3 id="仮想サーバ構築"><a href="#%E4%BB%AE%E6%83%B3%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89">仮想サーバ構築</a></h3> <p>VitualBoxを起動し,新規をクリック<br /> <a href="https://crieit.now.sh/upload_images/16ce04dbe1fead0cf871c908807870e060a35c188fd29.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/16ce04dbe1fead0cf871c908807870e060a35c188fd29.JPG?mw=700" alt="スライド2.JPG" /></a><br /> 名前(なんでもいい)を入力してバージョンを2012番にする<br /> <a href="https://crieit.now.sh/upload_images/b1abff9ca999bd5dd6b416a8b570bcf160a35c409109b.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b1abff9ca999bd5dd6b416a8b570bcf160a35c409109b.JPG?mw=700" alt="スライド3.JPG" /></a><br /> あとは基本的に変更せず次へ、作成をクリックします</p> <p>作成が終わったら作成したサーバをクリックした後設定を変更します<br /> <a href="https://crieit.now.sh/upload_images/f0c8cce9f48b8d8b674d0b8c3830555f60a35df93e9ce.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f0c8cce9f48b8d8b674d0b8c3830555f60a35df93e9ce.JPG?mw=700" alt="スライド9.JPG" /></a><br /> まずはストレージー空ー右にあるディスクマークをクリックしディスクファイルを選択します<br /> <a href="https://crieit.now.sh/upload_images/2baf4d3310a16e50af28a7bec57ca12460a35e488fdae.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2baf4d3310a16e50af28a7bec57ca12460a35e488fdae.JPG?mw=700" alt="スライド10.JPG" /></a><br /> ダウンロードをしたOSのファイルを選択する<br /> 注意:選択が終わってOKを押さない<br /> <a href="https://crieit.now.sh/upload_images/76299c041f1ecad438d8e78c3fcaf62260a35e9e2f71c.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/76299c041f1ecad438d8e78c3fcaf62260a35e9e2f71c.JPG?mw=700" alt="スライド11.JPG" /></a><br /> そのあとネットワークーアダプタ1の割り当てをブリッジアダプタに変更して名前をWi-Fiのものに変えOKをクリック<br /> <a href="https://crieit.now.sh/upload_images/a6f1ab46e41374926da10f4e0fad23df60a36051d5bc9.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a6f1ab46e41374926da10f4e0fad23df60a36051d5bc9.JPG?mw=700" alt="スライド12.JPG" /></a><br /> サーバの起動<br /> <a href="https://crieit.now.sh/upload_images/e9a1181a1c0cde90a41025065aeffa8e60a35f4633645.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e9a1181a1c0cde90a41025065aeffa8e60a35f4633645.JPG?mw=700" alt="スライド13.JPG" /></a><br /> ダウンロードをしたOSを選択<br /> <a href="https://crieit.now.sh/upload_images/1176b040cb71dade325327fdd1567bdd60a35f6dc225c.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1176b040cb71dade325327fdd1567bdd60a35f6dc225c.JPG?mw=700" alt="スライド14.JPG" /></a><br /> 変更せずに次へ<br /> <a href="https://crieit.now.sh/upload_images/9a3c193398c3208047455ebf4b07263d60a35f8b60474.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9a3c193398c3208047455ebf4b07263d60a35f8b60474.JPG?mw=700" alt="スライド15.JPG" /></a><br /> インストール<br /> <a href="https://crieit.now.sh/upload_images/880d5c809e465dc2ef2a59f52549d1ad60a35f9b56494.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/880d5c809e465dc2ef2a59f52549d1ad60a35f9b56494.JPG?mw=700" alt="スライド16.JPG" /></a><br /> 二番目のWindows Server 2012R2 Standard 評価版(GUI 使⽤サーバ)を選択<br /> <a href="https://crieit.now.sh/upload_images/a9cb4f9fb02cba5c776dd09d55b2f47960a35fa0ac236.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a9cb4f9fb02cba5c776dd09d55b2f47960a35fa0ac236.JPG?mw=700" alt="スライド17.JPG" /></a><br /> 同意して次へ<br /> <a href="https://crieit.now.sh/upload_images/072b2135f8e75b93e411cac700718aa360a35fa563efe.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/072b2135f8e75b93e411cac700718aa360a35fa563efe.JPG?mw=700" alt="スライド18.JPG" /></a><br /> カスタムを選択<br /> <a href="https://crieit.now.sh/upload_images/7b58d2f49219703d9b5225efe710cf5e60a35fa8dc54f.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7b58d2f49219703d9b5225efe710cf5e60a35fa8dc54f.JPG?mw=700" alt="スライド19.JPG" /></a><br /> 次へ<br /> <a href="https://crieit.now.sh/upload_images/298b38bf2beb013672b7c38a200cf62160a35fac08fd4.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/298b38bf2beb013672b7c38a200cf62160a35fac08fd4.JPG?mw=700" alt="スライド20.JPG" /></a><br /> パスワード設定<br /> パスワード忘れないように<br /> <a href="https://crieit.now.sh/upload_images/5b924b9b5321dba9bb10a4e539d07a7a60a35fb2dd84e.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5b924b9b5321dba9bb10a4e539d07a7a60a35fb2dd84e.JPG?mw=700" alt="スライド21.JPG" /></a><br /> 右側のctrlとdeleteを押す<br /> <a href="https://crieit.now.sh/upload_images/51cfffab12f704deb4326257006ec2a160a35fbc1638d.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/51cfffab12f704deb4326257006ec2a160a35fbc1638d.JPG?mw=700" alt="スライド22.JPG" /></a><br /> 設定したパスワードを入力<br /> <a href="https://crieit.now.sh/upload_images/5483d7fd44d2453386b82525cd7b80ca60a35fc6327ce.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5483d7fd44d2453386b82525cd7b80ca60a35fc6327ce.JPG?mw=700" alt="スライド23.JPG" /></a><br /> 右側にネットワークが出てくるのではいを押す<br /> <a href="https://crieit.now.sh/upload_images/cdd173a02b6d1fd4d93707d1ac23a08960a35fc8c010a.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cdd173a02b6d1fd4d93707d1ac23a08960a35fc8c010a.JPG?mw=700" alt="スライド24.JPG" /></a></p> <h3 id="Webサーバ"><a href="#Web%E3%82%B5%E3%83%BC%E3%83%90">Webサーバ</a></h3> <p>Windowsキーを押した後検索マークをクリックしコマンドプロンプトを開く<br /> そこで<br /> ipconfig /all<br /> を打ち込んで自分のIPアドレスを把握する<br /> <a href="https://crieit.now.sh/upload_images/5aa8f74d6e12463ac51f311b1670fb7e60a35fcb9a96d.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5aa8f74d6e12463ac51f311b1670fb7e60a35fcb9a96d.JPG?mw=700" alt="スライド25.JPG" /></a><br /> 役割と機能の追加をクリック<br /> <a href="https://crieit.now.sh/upload_images/9b8a16edc2829617fb5aa0f21fc2bef660a362427e0ef.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9b8a16edc2829617fb5aa0f21fc2bef660a362427e0ef.jpg?mw=700" alt="28.jpg" /></a><br /> サーバの役割まで次へをクリックしWebサーバ(IIS)にチェックを付け<br /> <a href="https://crieit.now.sh/upload_images/b6cdcacd5cb8ded645370561a1be24fe60a35fd0aa3ce.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b6cdcacd5cb8ded645370561a1be24fe60a35fd0aa3ce.JPG?mw=700" alt="スライド27.JPG" /></a><br /> 機能を追加をクリック<br /> <a href="https://crieit.now.sh/upload_images/238be0860a1bfdce58ff7ef1f361448360a35fd299426.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/238be0860a1bfdce58ff7ef1f361448360a35fd299426.JPG?mw=700" alt="スライド28.JPG" /></a><br /> あとは基本的に変更せずにインストール<br /> <a href="https://crieit.now.sh/upload_images/5a70f68be82a82f3c754f4d02127325360a35fd531b89.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5a70f68be82a82f3c754f4d02127325360a35fd531b89.JPG?mw=700" alt="スライド29.JPG" /></a><br /> エクスプローラーの表示でファイル名拡張子にチェックを付ける<br /> <a href="https://crieit.now.sh/upload_images/4857bd616fefb751325cd23b2a2387c160a35fd93ab21.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4857bd616fefb751325cd23b2a2387c160a35fd93ab21.JPG?mw=700" alt="スライド30.JPG" /></a><br /> 赤い四角まで移動する<br /> <a href="https://crieit.now.sh/upload_images/3e133350c8259098d14ad3f40b7b21a160a35fdc55c12.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3e133350c8259098d14ad3f40b7b21a160a35fdc55c12.JPG?mw=700" alt="スライド31.JPG" /></a><br /> index.htmlを作成し適当にうちこむ<br /> <a href="https://crieit.now.sh/upload_images/34596f906b2f352287174497a2a63fc260a35fdf30510.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/34596f906b2f352287174497a2a63fc260a35fdf30510.JPG?mw=700" alt="スライド32.JPG" /></a><br /> PC側のほうで先ほど調べたIPアドレスをWEBで検索すると作成したHTMLを閲覧できる</p> <p>次回はDnsサーバを使いたいと思います</p> fizz198 tag:crieit.net,2005:PublicArticle/16634 2021-01-19T16:02:18+09:00 2021-01-19T16:02:18+09:00 https://crieit.net/posts/Active-Directory-600683fa5bb17 Active Directory! <p>サーバー向けOSってたくさんありますけど、Windowsのやつってよく聞くような気がしませんか?<br /> 社内ネットワークに向いてるとか、何とか。</p> <p>Windowsサーバーを選ぶ理由No.1(個人の感想です)のActive Directoryについて簡単に解説します。</p> <h2 id="Active Directory って?"><a href="#Active+Directory+%E3%81%A3%E3%81%A6%EF%BC%9F">Active Directory って?</a></h2> <p><strong>PC、ユーザー情報などコンピューターリソースを管理するためのシステム</strong></p> <p>で、</p> <ol> <li><strong>ディレクトリサービス</strong></li> <li><strong>ユーザ認証</strong></li> <li><strong>クライアント管理</strong></li> </ol> <p>等ができます。ひとつずつ解説します。</p> <h3 id="ディレクトリサービス"><a href="#%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9">ディレクトリサービス</a></h3> <p>これは、</p> <p><strong>ネットワーク上にある、PCやアドレス等々の記録ができます</strong>。</p> <p>社員のPCやそのアカウント、コピー機などをまとめて記録できます。</p> <h3 id="ユーザ認証"><a href="#%E3%83%A6%E3%83%BC%E3%82%B6%E8%AA%8D%E8%A8%BC">ユーザ認証</a></h3> <p><strong>ディレクトリサービスにアクセスできるユーザを判別</strong>します。<br /> 何かのサーバーやデータにアクセスしようとしているPCなどが、社外の無関係なPCだったらとても危険です。そういうことがないようにできます。</p> <h3 id="クライアント管理"><a href="#%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E7%AE%A1%E7%90%86">クライアント管理</a></h3> <p><strong>管理下にあるPCに対して、一斉に設定</strong>を行うことができます。一台一台設定しなくていいのは、手間も省けますし、ミスも減らせそうでいいですよね。</p> drum-rk tag:crieit.net,2005:PublicArticle/14632 2018-12-07T07:27:05+09:00 2019-07-19T21:01:26+09:00 https://crieit.net/posts/Korette Koretteのオモテとウラ <p>こちらはCrieitの<a href="https://crieit.net/advent-calendars/2018/technology">個人開発サービスに用いられている技術 Advent Calendar 2018</a>の7日目の記事です。</p> <p>前日は<a href="https://crieit.net/users/sola_io">🍃🥜🗼sola🗼🥜🍃さん</a>の「初めてのウェブサービスを WordPress + Vue.js で開発した話」についてでした!</p> <h1 id="Koretteって?"><a href="#Korette%E3%81%A3%E3%81%A6%EF%BC%9F">Koretteって?</a></h1> <p>「Korette(コレッテ)」というのは、私が運営している、観光地の魅力を題材にしたクイズの回答と投稿ができるWebサービスのことです。</p> <p>本業エンジニアではなく、IT業界の人間ですらなかった自分が、ほぼゼロから独学でプログラミングを学びながら、9ヶ月かけてリリースしました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://korette.jp/">https://korette.jp/</a></p> <p><a href="https://crieit.now.sh/upload_images/b25842c47817d208ac8f2730c15264de5c0637b4951b9.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b25842c47817d208ac8f2730c15264de5c0637b4951b9.jpg?mw=700" alt="topsc.jpg" /></a></p> <p>このサービスを作ったのは、私が30代半ば頃から感じ始めた、「社会のために何か役立つことがしたい」、「組織の肩書きではなく個人として何かを成し遂げたい」、「自分が人に直接人の役に立つ実感が得られることがしたい」、そういったことを思うようになったことがきっかけです。</p> <p>具体的になにをするかを延々と考えた末、「地域の人が自分の街の魅力を知り、好きになり、誰かに伝える、次の世代に残したくなる」そういう社会を実現しようと思い至り、それを実現するプラットフォームとしてKoretteを開発することにしました。</p> <p>Koretteは観光地の魅力を歴史や音楽、人物などといった魅力を、クイズ化するというアプローチにより、さまざまな切り口に細分化し、訴求力の高い形で観光地に興味を持つ人に伝えることができるのが特徴です。</p> <p>また、クイズの作成・投稿を地域に住む人や縁のある人が行うことにより、地域密着の情報が可視化されるという特徴や、地域に住む人が魅力を再発見できることも狙っています。</p> <p>さらに、題材となる観光スポットのデータには自治体のオープンデータ(約1万件)を活用しており、2018年3月には東京都主催の「<a target="_blank" rel="nofollow noopener" href="http://opendata-portal.metro.tokyo.jp/www/contents/1522039625760/index.html">東京都オープンデータアプリコンテスト</a>」で準優勝(優秀賞)を頂きました。</p> <p>少し古いですが、<a target="_blank" rel="nofollow noopener" href="https://www.slideshare.net/Hiroz/korette">東京都のコンテストに応募した際の企画書</a>をSlideShereにアップしています。</p> <p>サービスへの思い入れの強さもあって、2017年12月末にこのサービスをリリースしてから、ずっとこのサービス1本でやっています。</p> <p>今日はこのKoretteのオモテとウラ、テーマに沿って、Webサービスで採用している技術をオモテ(フロントエンド)とウラ(バックエンド)ということで紹介していきたいと思います。</p> <p>※サービス開発の背景やリリースするまでの話などは、こちらにもまとめています。<br />  良かったら読んでみてください。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/hiroz31/items/d7f2f9b7d02f9be1ca92">「中年の危機」ど真ん中のオッサンがWEBサービス作ってみた(Qiita)</a>。</p> <p><a target="_blank" rel="nofollow noopener" href="https://hrz31.hatenablog.com/entry/2018/05/22/173000">「中年の危機」ど真ん中のオッサンのWebサービスが東京都のコンテストで入賞するまで(はてなブログ)</a>。</p> <h1 id="基本的な構成"><a href="#%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E6%A7%8B%E6%88%90">基本的な構成</a></h1> <p>Koretteのサービスは、フロント・サーバーサイドともにASP.NET Core(MVC)を採用、MicrosoftAzureでWindowsServer(IIS)とSQLServerを使っています。</p> <p>ASP.NET Core(MVC)は、Microsoft社が提供する、C#でWebアプリケーションを作るためのMVCフレームワーク(動作環境)です。</p> <p>個人開発でWebサービスを開発するときは、PHPやRubyを活用している人が多いと思いますので異端に感じる方も多いのではないでしょうか。</p> <p>これは、プログラミング経験がほぼ無い自分が、かろうじて持っていた数少ない知識や経験をもとに、そこから最小の学習コストでWebサービスをリリースできるだろうと考えたのが理由です。</p> <p>その時の経験から、今回Webサービスを開発するにあたり、PHPやRubyやJavaも含めいろいろな言語や開発環境を試してみたところ、C#(とその開発環境のVisualStudio)が自分で一番しっくりくる感じがありました。<br /> これは、大学生の頃にDelphiとVisual Basicを少しだけ触ったことがあり、Delphiの元開発者がC#の開発に関わっているそうなので思想が似ている感じを受けたのかなという気がします。</p> <p>そいういうわけで、KoretteはASP.NET Core(MVC)をベースに開発スタートしました。<br /> リリース後、機能改善を進めるなかで画面遷移させたくない箇所についてWebAPI+Ajaxでフロント側を更新するページを徐々に増やしていき、今の形になっています。</p> <p>徐々にフロント側の動的更新の比重が増えてきたことから、現在はかなりJavaScriptを弄る比重が高くなっています。ただ、これもC#をベースに色々と学んだお陰で応用が利いていて、イチからJavaScriptを学ぶより遙かに習得が早くなってい気がしています(たぶん最初からJavaScriptだと発狂してリリースに至らなかったかも・・・)。</p> <h2 id="オモテ(フロントエンド)"><a href="#%E3%82%AA%E3%83%A2%E3%83%86%EF%BC%88%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%EF%BC%89">オモテ(フロントエンド)</a></h2> <h3 id="採用しているフレームワーク・ライブラリなど"><a href="#%E6%8E%A1%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%BB%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AA%E3%81%A9">採用しているフレームワーク・ライブラリなど</a></h3> <p>ASP.NET Core(MVC)で表示されたビューのHTMLのDOMをJQueryを使って書き換えるという古典的な手法を採用しています。</p> <p>VueやReactといったフレームワークは採用していないのは、プログラミング経験んがほとんどない自分がWebサービスをリリースするにあたり、フロントとバックと両方にフレームワークを学習するという二正面作戦は無理だと判断したためです。</p> <ul> <li><p>Bootstrap4.0<br /> リリース当初は3.x系でしたが、ページデザインのリニューアルを機にアップデートしました。</p></li> <li><p>JQuery 3.3.1<br /> リリース当初は2.2.x系でしたが、ページデザインのリニューアルを機にアップデートしました。</p></li> <li><p>Material Design for Bootstrap 4(https://mdbootstrap.com/)<br /> マテリアルデアインのUIキットです。無料版もありますが有償版の方を使ってます。<br /> カード型のスタイルなど、Koretteのデザインのベースになっています。</p></li> <li><p>leafletjs(https://leafletjs.com/)<br /> OpenStreetMapの地図操作ライブラリです。<br /> 地図ライブラリは、当初はYahooMapを利用していましたが、OpenStreetMapの方がマッピングパーティといった地域の人が地図を更新するイベントが行われるなど、Koretteと目指すところが近いものを感じたことからOpenStreetMapに変更することにしました。<br /> 観光スポット紹介ページの地図情報などで利用しています。</p></li> <li><p>Croppie(https://foliotek.github.io/Croppie/)<br /> 画像の縦横変換、切り抜き&リサイズライブラリ。<br /> クイズ投稿時の画像投稿機能で利用しています。<br /> 当初はアップロードしてサーバーサイドでリサイズしていましたが、ネットワーク負荷軽減などを考慮し、クライアント側で行うように変更しました。</p></li> <li><p>Garlic(http://garlicjs.org/)<br />  投稿フォームで入力中に別画面へ遷移した際に入力内容を保持しておくライブラリ。<br />  利用者さんからの要望で追加した機能です。</p></li> </ul> <h2 id="ウラ(バックエンド)"><a href="#%E3%82%A6%E3%83%A9%EF%BC%88%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%EF%BC%89">ウラ(バックエンド)</a></h2> <h3 id="採用しているフレームワーク・ライブラリなど"><a href="#%E6%8E%A1%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%BB%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AA%E3%81%A9">採用しているフレームワーク・ライブラリなど</a></h3> <ul> <li><p>CoreTweet(https://github.com/CoreTweet/CoreTweet)<br />  Twitter連携のライブラリ。Koretteのアカウントへのピックアップクイズの投稿に利用しています。</p></li> <li><p>SixLabors.ImageSharp(https://github.com/SixLabors/ImageSharp)<br /> ASP.NET Core対応の画像処理ライブラリです。<br /> 当初はユーザーの投稿画像をこのライブラリでリサイズしていましたが、現在はフロント側でリサイズされてサーバサイドに飛んできますので、飛んできた画像をもとにサムネイル用とOGP用の画像を生成する際に利用しています。 サムネイル用は単なるリサイズですが、OGP用は1200×630の白紙キャンパスに飛んできた画像をセンタリングして配置し縦横比を変換するという処理を行っています。<br /> また、このライブリでは、画像無しでクイズを投稿した際にタイトル名を画像化する機能としても利用しています。</p></li> </ul> <h3 id="バッチ処理"><a href="#%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86">バッチ処理</a></h3> <p>リリース後の機能追加で、人気クイズのランキングや、投稿者ランキングなどを実装しました。</p> <p>これらの機能について、リリース当初はユーザーが表示リクエストをした際に、クイズの解答履歴データを都度集計してランキング表示をしていました。またクイズの回答数も回答履歴を都度集計して表示していました。</p> <p>利用者が増え、徐々に回答履歴データが肥大化していくとともに、これらの処理が重くなっていきました。</p> <p>そこで、これらの処理をバッチ処理化することにしました。</p> <p>とはいっても、専用のジョブ管理ツールとか入れるまでのレベルではないと考えたので、ASP.NET CoreのWebAPIで処理を作成し、WindowsのタスクスケジューラからPowershellのスクリプトを定時キック、PowershellのスクリプトがWebAPIに鍵情報を付加したhttpリクエストを行うことにより処理を開始するという、「なんちゃってバッチ」で実装しています。</p> <p>また、バッチ処理化にあたり、大量にデータ更新するテーブルについては、障害対応とロック対策のために2テーブル化を行いました。</p> <p>PrimaryテーブルとSecondaryテーブルを作成し、Primaryテーブル参照時間帯にSecondaryテーブルをバッチで更新、時間経過後はその逆を行うという形にしています。<br /> 万が一バッチ処理の異常終了でテーブルがぶっ壊れた場合は、更新テーブールに切り替わるまでに復旧作業を行える時間稼ぎができるようになっています(実際はサラリーマンやってる時間にぶっ飛んだらどうにもなりませんがw)。</p> <p>また、バッチ化により、ランキングアルゴリズムを回答数だけでなく、複数の要素を組み合わせて集計するといったより高度な処理にすることも可能となりました。</p> <h3 id="インフラ周り"><a href="#%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E5%91%A8%E3%82%8A">インフラ周り</a></h3> <p>MicrosoftAzureでWindowsServer2012R2のVMを立てて、WEB・APサーバーとDBサーバー(SQLServer2016)を同居させています。</p> <p>VMのDISKは容量を最小にする代わりにPremium SSDを採用しIOのボトルネックを最小化。利用者の投稿画像などは別途BLOBストレージを用意し、そちらに配置するようにしています。</p> <p>自分の学習コストを最小限にするためにAzureやWindowsServerを選択していますが、ASP.NET CoreはLinuxでも動作するようになったので、Linuxへ以降すれば運用コストを減らすことができると思います(現在移行を検討中)。</p> <h1 id="技術の選択には学習コストの視点も"><a href="#%E6%8A%80%E8%A1%93%E3%81%AE%E9%81%B8%E6%8A%9E%E3%81%AB%E3%81%AF%E5%AD%A6%E7%BF%92%E3%82%B3%E3%82%B9%E3%83%88%E3%81%AE%E8%A6%96%E7%82%B9%E3%82%82">技術の選択には学習コストの視点も</a></h1> <p>冒頭に触れたように、私がプログラミングをほぼゼロから覚えてリリースできたのは、少しだけあった過去の経験から学習コストが最小となるWindows系とC#を選択したというのも大きかったのかなと思います。</p> <p>サービスをリリースまで至るには、技術的にオーソドックスじゃない、古くてもイケてなくても、自分の学習コストが最小化できるのであれば、それを選択しても良いと思うのです。</p> <p>一度、何かの技術を使ってサービスをリリースするまで至ることができれば、そこで得た基本的な知識や他の技術でもある程度応用がきいて、学習スピードは圧倒的に上がります。</p> <p>なので、いくつか軽く触ってみて、わかりやすい、使いやすいと思った言語や技術でとりあえず作ってみると良いのだと思います。</p> <p>プログラミングはハマると楽しくなって、ついつい新しい技術に手を出したくなることがあります。でもサービスをリリースするという視点で考えれば、学ぶことが目的ではなく、リリースするために学ぶのが目的のはずです。<br /> であれば、最小の学習コストという視点も観点のひとつとしてあるのかなと思います。</p> <p>まずは、自分で良さそうと思うものを決めて、あとは浮気せずリリースまで突っ走ってみると良いのではと思います。</p> <p>サービスのリリースはゴールではなくスタートです。<br /> まずはどんな形でもスタートラインに立ってみると、違う世界が見えてくると思いますよ。<br /> 私のサービスはリリースしてもうすぐ1年ですが、まだスタートラインをウロウロしている気もしなくはないですが・・・。</p> <p>頑張ってリリースまで到達できたら、山のように迷うことや選択を迫られることが出てきます。<br /> そのときは、必要に応じてアドバイスをもらえる環境も大切です。特に以下2つのSlackコミュニティは知見を持った人が沢山所属していて、アドバイスや情報交換ができるのでオススメです。私も所属させてもらっています。<br /> 門を叩いてみましょう。</p> <p>・マシュマロの運営者でもあるダースさんが運営している「<a target="_blank" rel="nofollow noopener" href="https://scrapbox.io/admin-guild-pr/%E9%81%8B%E5%96%B6%E8%80%85%E3%82%AE%E3%83%AB%E3%83%89">運営者ギルド</a>」</p> <p>・SeekGeeksというプランナーとエンジニアのマッチングWebアプリを運営しているny(にぃ)さんが運営する「<a target="_blank" rel="nofollow noopener" href="https://blog.seekgeeks.net/2017/11/wrote-about-monetize-geek-jam.html">Monetize-Geek-JAM</a>」</p> <p>上記のコミュニティの他に、私も場合は「Koretteサポーターズ」というコミュニティを自分で作ってしまいました。<br /> Koretteの目指すところに共感頂ける有志の方を公募させていただき、現在6名のサポーターに支えられています。<br /> 支援者&利用者の立場で、UXの改善をはじめ、迷ったときの相談相手になって頂いていて、凄く助かっています。</p> <h1 id="Koretteのこれから"><a href="#Korette%E3%81%AE%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89">Koretteのこれから</a></h1> <p>ここからは少し宣伝チックな内容です。</p> <p>Koretteですが、皆様の応援に支えられ、少しづつですが利用者も増え、12月27日にリリース1周年を迎えるところです。</p> <p>これまで個人サービスとしてやっていましたが、このタイミングで、非営利の運営団体を設立し、Koretteの運営を団体として行っていこうと思います。</p> <p>設立する団体名は「CultiVision(カルティVision)」です。<br /> Vison(ありたい将来)をCulti(耕す)という意味を込めて造った造語です。</p> <p>「地域の人が自分の街の魅力を知り、好きになり、誰かに伝える、次の世代に残したくなる」<br /> そんな社会の実現に向けた活動を、農業の土作りのように、地域の人とともに畑を耕すように長期的な実りを期待して活動をしていけたらと思っています。</p> <p>団体化により、これまで個人名ではやりにくかった企業などとのコラボやイベントの開催などを行うなども予定しています。<br /> Webサービスとリアルの活動を組み合わせながら、サービスのさらなる普及を目指し、ありたい将来の実現に向けて進めていく予定です。</p> <p>まず、団体としての活動の第一弾として、12月中にKoretteのスマホアプリ版のリリースを予定しています!<br /> スマホアプリ化により、より気軽に楽しく遊んで頂けるようにしていきたいと思っています。<br /> その際は、プレスリリースも投げて、認知度を高めて行く予定です。</p> <p>サービスのみためもUXもまだまだですが、サービスにかける想いだけは、他の方に負けないように、あとは沢山の人に助けてもらいながら頑張っていきたいと思っています。</p> <p>今後とも応援の程、どうぞよろしくお願いいたします。</p> <h1 id="最後に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最後に</a></h1> <p>ちょっと読者ターゲットが絞れない記事になってしまったかもしれません・・。<br /> この記事が、ほんの少しでも、みなさんのヒントになれれば幸いです。</p> <p><a href="https://crieit.net/advent-calendars/2018/technology">個人開発サービスに用いられている技術 Advent Calendar 2018</a>、明日は<a href="https://crieit.net/users/ckoshien">ckoshien</a>さんの「野球リーグスコア管理システムに用いている技術について」の記事です!お楽しみに!</p> Hiroz