SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
で
サーバー構築「クラス」の
学習環境を作ってみた
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
Vagrantfile
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のところに
作業している学生の
学籍番号が表示れ、
誰が試験中か把握
できる。
次回やる時には…
• 採点をServerspecでできるようにしよう…
• 実はN.Californiaリージョンでやってて(何でかは忘
れた)、回線激遅。ちゃんとTokyoとかでやる。
• もっと計画的に準備しよう。
• ちょっとお手伝いしているビジ
ネスラリアートという会社が新
TLDの.okinawaと.ryukyuと
いうものの販売を開始しました
• .okinawaは先行登録期間が始
まってますので、抑えておきた
いドメインがありましたお早め
に!
• お名前.comとかでできるは
ず。
なんとなく沖縄っぽいものということルートビア。
まとめ
• AWS + Vagrant(with vagrant-aws,vagrant-aws-
extras)使うとAWS使いやすすぎわろた。
• をよろしくお願いします。

Mais conteúdo relacionado

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

わんくま同盟紹介資料
わんくま同盟紹介資料わんくま同盟紹介資料
わんくま同盟紹介資料You&I
 
DevLOVE関西「勉強会勉強会」
DevLOVE関西「勉強会勉強会」DevLOVE関西「勉強会勉強会」
DevLOVE関西「勉強会勉強会」Yoh Nakamura
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
ElectronからはじめるnodejsHirata Tomoko
 
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなったMasayoshi Tokumoto
 
JavaScript(主にVue.js) 関連の本をたくさん読んだので雑に紹介する
JavaScript(主にVue.js)関連の本をたくさん読んだので雑に紹介するJavaScript(主にVue.js)関連の本をたくさん読んだので雑に紹介する
JavaScript(主にVue.js) 関連の本をたくさん読んだので雑に紹介するYutaNishina1
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するのKazukiNishizono1
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきことHiromu Shioya
 
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Tsutomu Yano
 

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

Pythonのユニットテスト
PythonのユニットテストPythonのユニットテスト
Pythonのユニットテスト
 
勉強会勉強会
勉強会勉強会勉強会勉強会
勉強会勉強会
 
わんくま同盟紹介資料
わんくま同盟紹介資料わんくま同盟紹介資料
わんくま同盟紹介資料
 
DevLOVE関西「勉強会勉強会」
DevLOVE関西「勉強会勉強会」DevLOVE関西「勉強会勉強会」
DevLOVE関西「勉強会勉強会」
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
Electronからはじめるnodejs
 
初めてのDocker
初めてのDocker初めてのDocker
初めてのDocker
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった
文系大学生たちが初めてのハッカーズチャンプルーでIsuconをしたらこうなった
 
JavaScript(主にVue.js) 関連の本をたくさん読んだので雑に紹介する
JavaScript(主にVue.js)関連の本をたくさん読んだので雑に紹介するJavaScript(主にVue.js)関連の本をたくさん読んだので雑に紹介する
JavaScript(主にVue.js) 関連の本をたくさん読んだので雑に紹介する
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
DevOps Conference #1
DevOps Conference #1DevOps Conference #1
DevOps Conference #1
 
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
 

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