狠狠撸

狠狠撸Share a Scribd company logo
で
サーバー構築「クラス」の
学習環境を作ってみた
Yonashiro Yuu a.k.a. @Cloneko
自己紹介
? 與那城 雄(よなしろ ゆう)
? 専門学校ITカレッジ沖縄で非常勤
講師してます。
? 専門はサーバー/ネットワークなど。
? あと+αで何かやってます(後述)
? 目立った何かといえば2013年に行なわ
れたチューニンガソンで全国7位/沖縄で
4位だったアレ。
? http://gihyo.jp/news/report/2013/02/0401
? @kimiyukiy さんと一緒に。です。
? Github/Twitter/gmail は cloneko
? 雑多なblogを?
http://cloneko.com/ でやってます。
アジェンダ
? ITカレッジの紹介(さらっと)
? サーバー構築のクラスの話
? とある問題が発生
? とある問題をAWS(と何か)を使ってどう解決
したか
? ちょっとだけ宣伝
お約束
このLTは私の個人的見解であり勤務先や関係団体の公式見解とは異なることがあります。
ITカレッジ沖縄
? http://www.it-college.ac.jp/
? 名前の通りITの専門学校。
? ITの中でもプログラム/インフラ/ク
リエーター(Web/サウンド/映像)寄
り。というかモロ
? 僕はそこの2期生(ITエンジニア科
ネットワークコース)。
? 母校で教えてます。
? 最近2年生スペシャリスト科全員に
githubアカンウント作らせたり、
Markdownを布教中です。
サーバー構築のクラス
? 2年のインフラ系/インターネット
ビジネスのクラスのカリキュラム
? 20人くらい。
? まぁ、基本的なサーバー構築くら
いできようね。っていうクラス。
? LAMP(A→N?)…DNSサーバ…
Chef…Docker…Digital
Ocean…などなど。
问题が発生…
問題: 成績どうしよ
? 一応講義としてやっているので成績つけないといけ
ない。
? 出席とかで判断しても嫌なのでスキルチェックした
い。
? 試験しないと。
もうマジ無理…試験しよ…
? まぁ、実際にサーバー構築させてどんだけできるか見ればいいよね。
? どこに作らせるよ?
? 学生個人のノートPC?チェック大変だし。
? 僕のマシン(Core i3/4GB)に仮想マシン立ち上げまくり??
20インスタンスも立ち上げられないよ
? 実は一瞬Dockerも考えたけど、インターネットのサーバーなんだ
からインターネット上でやったほうがいいよね。
? OpenStack/CloudStack?そんなん用意してる時間ないし…
? まぁ、無難にAWS(EC2)だよね…
AWS使ってこれやりたい
? 学生が自分でEC2のインスタンスを作ったり壊した
りできるようにしたい。
? 途中でやり直したい。っていうこともあるので。
? 立ち上げたインスタンスにわかりやすいホスト名つ
けたい。
? ブラウザでIPアドレスで接続するのもねぇ…
? (何よりチェックする側(==自分)がどの学生がどのIPアドレスか確認する
のがめんどくさい…
とりあえずこうしよう
? 学生が自分でインスタンスを
作ったり壊したりできるよう
にしたい
? Vagrant使えばできそうな気がする
? 立ち上げたインスタンスにわ
かりやすいホスト名つけたい
? Vagrantで頑張るかプログラム書けばでき
そうな気がする
Vagrant + AWS
? 学生が自分でインスタンスを作ったり壊したりでき
るようにしたい。
? Vagrantのプラグイン「vagrant-aws」をインストールすればOK!
? 立ち上げたければvagrant up/壊したければvagrant destroyすれば!!!
? 立ち上げたインスタンスにわかりやすいホスト名つ
けたい。
? Vagrantのプラグイン「vagrant-aws-extras」をインストールすれば
VagrantからRoute53(AWSのDNSサービス)をもにょもにょできる!?
(== vagrant upするとRoute53にホスト名が登録できる。destroyすれば
消える)
実際のシステム構成図
学生のマシン
n13001$ vagrant up
n13003$ vagrant up
i13001$ vagrant up
試験用システム n13001.cloneko.com?
EC2インスタンス
n13003.cloneko.com?
EC2インスタンス
i13001.cloneko.com?
EC2インスタンス
ssh
ssh
ssh
n13001
n13003
i13001
Vagrant?le
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "dummy"
config.vm.box_url = “https://github.com/mit(略)”
config.aws_extras.record_zone = "cloneko.com." ← ここで使用するドメイン
config.aws_extras.record_name = ENV['LOGNAME'] + ".cloneko.com." ← ホスト名
config.aws_extras.record_type = "CNAME"
config.aws_extras.record_ttl = "60"
!
config.vm.provider :aws do |aws, override|
? 中略 ?
aws.tags = {
'Name'=> ENV['LOGNAME'] ← Management Consoleでどの学生が作業してるか確認できる
}
end
end
全文は https://github.com/cloneko/serverbuilding-exam-platform/ にあります。
試験の流れ
1. 学生は試験用サーバー(Vagrant導入済)へSSHする
2. vagrant upするとインスタンスが立ち上がる
3. vagrant sshするとログインできる。
4. サーバーを構築する。
5. ブラウザで http://学籍番号.cloneko.com/ で接続す
ると接続できる!
6. vagrant destroyするとインスタンスを破棄できる! →
やりなおせる!
試験中の AWS
Management Console
Nameのところに
作業している学生の
学籍番号が表示れ、
誰が試験中か把握
できる。
Amazon Web Services でサーバー構築「クラス」の学習環境を作ってみた
次回やる時には…
? 採点をServerspecでできるようにしよう…
? 実はN.Californiaリージョンでやってて(何でかは忘
れた)、回線激遅。ちゃんとTokyoとかでやる。
? もっと计画的に準备しよう。
? ちょっとお手伝いしているビジ
ネスラリアートという会社が新
TLDの.okinawaと.ryukyuと
いうものの販売を開始しました
? .okinawaは先行登録期間が始
まってますので、抑えておきた
いドメインがありましたお早め
に!
? お名前.comとかでできるは
ず。
なんとなく沖縄っぽいものということルートビア。
まとめ
? AWS + Vagrant(with vagrant-aws,vagrant-aws-
extras)使うとAWS使いやすすぎわろた。
? をよろしくお願いします。

More Related Content

Amazon Web Services でサーバー構築「クラス」の学習環境を作ってみた