Amazon Web Services でサーバー構築「クラス」の学習環境を作ってみた
-
Upload
yuu-yonashiro -
Category
Internet
-
view
992 -
download
4
Transcript of Amazon Web Services でサーバー構築「クラス」の学習環境を作ってみた
自己紹介• 與那城 雄(よなしろ ゆう) • 専門学校ITカレッジ沖縄で非常勤講師してます。 • 専門はサーバー/ネットワークなど。
• あと+αで何かやってます(後述) • 目立った何かといえば2013年に行なわれたチューニンガソンで全国7位/沖縄で4位だったアレ。 • http://gihyo.jp/news/report/2013/02/0401
• @kimiyukiy さんと一緒に。です。
• Github/Twitter/gmail は cloneko • 雑多なblogを
http://cloneko.com/ でやってます。
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.comEC2インスタンス
n13003.cloneko.comEC2インスタンス
i13001.cloneko.comEC2インスタンス
ssh
ssh
ssh
n13001
n13003
i13001
VagrantfileVAGRANTFILE_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するとインスタンスを破棄できる! → やりなおせる!
次回やる時には…
• 採点をServerspecでできるようにしよう…
• 実はN.Californiaリージョンでやってて(何でかは忘れた)、回線激遅。ちゃんとTokyoとかでやる。
• もっと計画的に準備しよう。
• ちょっとお手伝いしているビジネスラリアートという会社が新TLDの.okinawaと.ryukyuというものの販売を開始しました
• .okinawaは先行登録期間が始まってますので、抑えておきたいドメインがありましたお早めに!
• お名前.comとかでできるはず。
なんとなく沖縄っぽいものということルートビア。