/

こんにちは!問題作成者の帝塚山大学の松涼雅です!

共同作成者の大阪工業大学の上野洋太郎です!

 

僕たちが作成した問題の解説と裏話をしていきたいと思います。

僕たちが作成した問題は1日目の午前に出題しました。

 

起きていたトラブルをまとめるとこんな感じになります。

起きていたトラブル

  1.  .htaccessファイルの記述を間違えているためwebページが表示されない
  2. ディレクトリのパーミッションが間違っているためapache(www-data)からwebページが参照できない

この二つです。

 

結果

完答したのは3チームでした!

完答ありがとうございます!

点数を獲得したのは7チーム(完答含む)でした。

 

どこで点数差がついたの?

きっと気になるのは採点基準ですよね。

採点基準は上にまとめた二つの項目が解決できているかってだけです。

.htaccessファイルを修正できているか、ディレクトリのパーミッションを修正できているか

この二つです。

完答してくださった3チームは二つとも修正してくれました!(うれしい!)

のこりの4チームはディレクトリのパーミッションの修正のみでした。

 

ディレクトリのパーミッションの修正だけはダメなの?

実は回答をしてくれた全チームのwebサイトに実際にアクセスして挙動を確かめたのですがディレクトリのパーミッションを修正しただけだとwebページ上のリンクを踏んだ際に正しい挙動をしないんです。

URLを直打ちした場合だとちゃんと表示されちゃうんですけどね。

 

URL直打ちできたら十分じゃないの?

  1. もしそのwebページをブックマークしている人がいたらどうしよう?
  2. その人はURLを直打ちできる?(URLの直打ちを一般ユーザに強要しちゃう?)
  3. 何のためにリダイレクトの設定をしたんだろう?(間違ってるんだけど)
  4. リダイレクトの設定をすることでブックマークで直接アクセスしてくるユーザも強制的に新しいwebページへ誘導してあげれるんです。

問題作成者の僕らとしては、ここらへんを重視した採点をしていたのでリダイレクトの設定を修正できていなかった場合は点数を低めにしました。

 

まとめ

起きていたトラブルはこんな感じ

  1.  .htaccessファイルの記述が間違えているためwebページが表示されない
  2. ディレクトリのパーミッションが間違っているためapache(www-data)からwebページが参照できない
  • 上の二つのトラブルを修正できればok!
  • だけどディレクトリのパーミッションの修正のみのチームが多かったよ
  • URL直打ちしたらパーミッションの修正のみでも行けるけど一般ユーザはそれで対応できる?
  • .htaccessファイルを修正することで一般ユーザに手間をかけさせないようにした方が良いと思う

って感じです。

 

あとがき

実はこの問題は第4回大会で出題しようと思ってたんですが諸事情により出題できなかった問題なんです…

少しでも皆さんに楽しんでいただき、「あ、こんな技術があるんだ~」って思ってもらえるのが作成者の一番の喜びです。

もし、問題作成などに興味のある方はぜひ運営に参加してください!

問題作成以外にもネットワークの設計やサーバの構築など色々あるので運営参加者のニーズを満たせること間違いなしです!

ぜひよろしくお願いします!

 /
 /
カテゴリー

はじめに

はじめまして。北海道大学の小林巧です。
普段は@chamaharunというアカウントでくだらないことをつぶやいたり、
石狩市にあるデータセンターでサーバー構築のアルバイトをしたりしています。
ICTトラコン、「名前だけは知っている」程度だったのですが、
昨年さくらインターネット新卒の凄腕エンジニア川畑さんよりお声がけいただきまして、

右も左も分からぬまま学生運営スタッフにjoinしました。
僕も問題作成をさせていただいているので、解いていただけると嬉しいです。

 

自宅ラックとは

「自宅ラックとは、ロマンである。」

ニコニコ大百科「自宅ラック」より

とありますが、自宅にデータセンター向け規格の19インチのラックを設置して趣味その他に使用することを言うようです。

自宅ラックとの出会い

自己紹介にも書いたように、データセンターでのアルバイトをしているのですが、

仕事に慣れてくるにつれて、業務で行っているBIOSの設定などの作業だけでなく、
ハードウェア交換といった保守作業やWebやDNSなどのサーバ構築作業を行ってみたくなったのと、
自宅にあったMicroServerで出来ることにスペック的にも拡張性的にも限界を感じていたところに、

昨年11月、幸いにも引越しが決まり、新居にて自宅ラックを始めたのでした。

 

ラックが自宅に届いた時の感動を振り返ってみようと思います。

 

19インチの静音ラックをヤフオクで入手。
ラック内に機器の設置と配線を済ませ、電源を入れてみる。。。
「ファーーーーー」
って音、まるで自宅がDCになったかのようです。。。
さて、ラックの防音効果は如何ほどか、
サイドの蓋を閉め、前面のドアを閉めます。
「ゴオオオオオオオオオ」
全然静音じゃない。まるで轟音ラック。
これからは毎日これと共に寝るのか。
自宅ラック生活がスタートしました。

 

こばやしの自宅ラック

こんな感じです。

1

  •  DELL R415 8コア 8G
  • FUJITSU RX200S5 8コア 32GB
  • HP MicroServer N54L 2コア 16GB
  • HP MicroServer N54L 2コア  8GB
  • DELL PoerConnect 5224
  • HP MicroServer N54L 2コア 8GB

いずれも新品で揃えると150万円前後かかると思いますが、一学生に出せるような金額ではないので、
型落ちで安くなった新品を購入したり、ヤフオクや秋葉原で中古品を手にいいれることで、
10万円前後の支出に抑えました。
XenServerとHyper-Vによる仮想マシンが30-40台程度常時起動していて、

そのほとんどがWebサーバで、Webサービスを開発したり、友人に貸したりしています。

 

工夫していること・苦労していること

ドメインとIPアドレス

複数のWebサーバに外部からアクセスするにあたって、1つ問題があります。
VPSなどのインフラサービスと違って、一つのIPアドレス共有しなければならないので、
HTTPのリクエストも、SSHも直接IPアドレスに対して繋ぎに行くわけには行きません。

そこで、HTTPとSSHにそれぞれ、代理サーバを用意しています。

ルータから特定のポートに来た通信をそれぞれに転送するよう設定します。

nginxでは以下のような設定ファイルを書くことで簡単にリバースプロキシを構築することができます。

 

server {
    listen 80;
    server_name hime.charakoba.com;

    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header    Host            $http_host;
    proxy_redirect      off;
    proxy_max_temp_file_size    0;

    location / {
        proxy_pass http://192.168.11.125;
    }
}

 

特に、HTTPのリバースプロキシは設定ファイルの書き換え/再読み込みを頻繁に行うので、

図のように、ロードバランサを置いて片方のリバースプロキシがダウンしていても正常にリクエストに答えられうようにしています。

3

SSHの踏み台サーバは、よりセキュリティを意識して構築しています。

rootでのログイン禁止はもちろん、

全ユーザーに対して公開鍵認証を要求しパスワード認証を禁止します。

こばやし家内のサーバにアクセスする場合は、

踏み台サーバに対して一度SSHログインしたのち、対象のサーバにSSHでログインします。

2

 

一般の家庭であるこばやし家には動的IPアドレスが一つ割り当てられています。

変動するIPアドレスにドメインを割り当てる方法として、IPアドレスが変更される度にDNSサーバに通知し更新してもらう、

DDNS(DynamicDNS)というものがありますが、DDNSで設定できるドメインってあまりカッコいいイメージが無かったので、

何か良い方法はないかと調べていたところ、

お名前.comで取得したドメインはDDNSで使えそうということがわかり、

WindowsServerでクライアントを設定し運用しています。

 

 

最後に・こばやしのやぼう

他にも、新規仮想マシンを作成した際にあらゆる設定を自動化するような実験などを行っています。
今後は騒音と電気代の面から自宅ラックを実家に移設し、
VPNを張って遠隔で管理したりしていこうかと考えています。

まだまだこばやし家は発展途中ですがこういった工夫をすることで、
IT企業が普通に行っていることを高価な機器を使わずに実現できたらなぁと考えています。

 /
カテゴリー

こんにちは!電気通信大学の吉村と申します。

ICTトラブルシューティングコンテストは今回で2回目の参加となります。

前回のICTSC4ではネットワーク寄り、今回はサーバ・インフラ寄りで担当しており、まだまだわからないことも多いのですがどうぞよろしくお願いいたします。

 

さて、今回はDNSサーバについての話をします。

DNSサーバと聞いてまず最初に思い浮かぶのはBINDかと思います。

ですが、今回は”NSD”というDNSサーバを紹介します。

続きを読む

 /
カテゴリー

はじめまして!情報科学専門学校 荒川です。
ICTSC5運営委員では、主にインフラチームとしてL1周りを担当しております。

突然ですが!

150台強の仮想サーバを少ない人数で管理しようとしたとき、
今時手作業でやろうとかは思わないですよね・・・

  1. パッケージインストール
  2. ホスト名の設定
  3. 各インスタンスのパスワードを変える

たったこの3ステップを全サーバに手作業で適用させようするならば

fw3HA6j7ZeoSgdn <やってられるかこんな作業!

まあ、こうなりますよね・・・

そこで出てくるのが

構成管理ツール

その中でも今日はAnsibleの紹介。

そもそもAnsibleとは?

  • 管理対象のサーバーに特別なソフトウェア(エージェント)をインストール不要!
    SSH で対象サーバに接続さえ出来ればいい
  • クライアント側になにもいらない
  • モジュールは「どんな」言語でも書ける
  • 誰が何回実行しても、同じ結果になる ←ココ重要

設定ファイルを用意せずとも、簡単に指定した複数のサーバーで特定の処理を実行させることが可能です。

早速使ってみました。

Vagrantで起動したCentOSにAnsibleをインストールしてみました。
CentOSは7.2.1511を、Ansibleは1.9.4を使用しました。

EPEL リポジトリのインストール

# yum install -y epel-release

yum install コマンドでインストール

# yum install -y ansible

Ansibleでは、設定ファイルをYAML形式というシンプルなフォーマットで記述することが出来ます。

例: Apache と PHP をインストールする

webapp.yml

  • hosts: webserver
    user: vagrant
    sudo: yes
    tasks:
  • name: install apache
    action: yum pkg=httpd state=installed
  • name: install php
    action: yum pkg=php state=installed

実行

$ ansible-playbook webapp.yml

これで簡単に指定した複数のサーバで特定の処理を実行させることが可能になります!

20080331002943<ね?簡単でしょ?

まだまだAnsibleの使い方はたくさんあるので、詳しくは参考サイトを見てください。

参考サイト
http://knowledge.sakura.ad.jp/tech/3124/
http://tdoc.info/blog/2013/04/20/ansible.html
http://apatheia.info/blog/2013/04/06/about-ansible/

最近のコメント