【さくらのクラウド】Minecraftサーバをコマンド操作なしで簡単構築

さくらのクラウドには、スタートアップスクリプトという機能があり、サーバ作成時に任意のスクリプトを実行することができます。Minecraftサーバを構築するスクリプトを指定すれば、簡単にコマンド操作なしでマルチユーザで遊べる環境を構築できます。

とはいうものの、さくらのクラウド公式ではMinecraftサーバ構築のスクリプトは提供されていません。今回、自分のメモを兼ねて、構築に必要な手順をスクリプトにまとめたのでそれを公開します。

これをコピペすれば、すぐに遊べる環境が構築できるはずです。

Minecraftサーバ構築スクリプト

#!/bin/bash
# @sacloud-once
# @sacloud-desc Minecraft Serverをセットアップします。
# @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します)
# @sacloud-require-archive distro-centos distro-ver-6.*
# @sacloud-require-archive distro-sl distro-ver-6.*

#---------iptablesの設定---------#
cat <<'EOT' > /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-SSH - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH 
-A INPUT -p TCP -m state --state NEW ! --syn -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 25565 -j ACCEPT 
-A fail2ban-SSH -j RETURN
COMMIT
EOT
service iptables restart
#---------iptablesの設定終わり---------#
#---------Javaのインストール---------#
yum install -y java-1.8.0-openjdk
#---------Javaのインストール終わり---------#
#---------Minecraft Serverのインストール---------#
wget -P ~/minecraft https://s3.amazonaws.com/Minecraft.Download/versions/1.8.7/minecraft_server.1.8.7.jar

# 一度起動し、eula.txtファイルを生成させる
java -Xms1024M -Xmx1024M -jar minecraft_server.1.8.7.jar nogui
echo eula=true > ~/minecraft/eula.txt

# upstartの設定ファイルを作成
cat <<'EOT' > /etc/init/minecraft.conf
description "Minecraft server"
chdir /root/minecraft
exec java -Xms1024M -Xmx1024M -jar minecraft_server.1.8.7.jar nogui
start on startup
EOT

# 起動
start minecraft
#---------Minecraft Serverのインストール終わり---------#

注意点

Minecraftサーバを利用するにあたって、ライセンス利用規約に同意する必要があります。
スクリプト上ではこの利用規約に承認する処理が組み込まれているため、利用規約を確認し承認したうえで上記のスクリプトを使用するようにしてください。
https://account.mojang.com/documents/minecraft_eula

スタートアップスクリプトの登録方法

  1. コンパネ右上のユーザ名表示部のプルダウンをクリック
  2. プルダウンメニューの「設定」をクリック
  3. 左サイドのメニューからスクリプトを選択
  4. 画面上部の「+追加」ボタンをクリック
  5. 上記のスクリプトをすべてコピー&ペーストし作成

以上の操作によりスクリプトが追加可能です。
追加したスクリプトサーバ作成画面->ディスク修正->配置するスタートアップスクリプトで選択してください。

最小サーバスペック

CPU: 1コア
メモリ: 2GB
OS: CentOS 6.X, Scientific Linux6.X

Minecraftサーバの起動には最低1GBのメモリが必要となるため、1GBより大きいサイズのメモリが必要となります。

2万円クーポン

キャンペーンをやっているようなので、今なら無料で試せますよ。

ニコニコ動画の再生画面を少しだけシンプルにするChrome拡張を作ってみた

ニコニコ動画の再生画面、いろんな情報がひっきりなしに目に飛び込んできて動画に集中できない。 なので、これを少しシンプルにして集中できるようにしてみました。

ニコニコ動画 Light - Chrome ウェブストア

before

f:id:hogesuke_1:20150508125445p:plain

after

f:id:hogesuke_1:20150508125448p:plain

なにが違うの?

  • 動画上部のニュース表示部を削除
  • 動画下部のオススメ動画一覧を削除

リンク

chrome.google.com

AngularJSを使ってタグベースのはてブビューアを作ってみた

f:id:hogesuke_1:20150330180058p:plain

はてブビューア Skimii
http://skimii.net

作ったもの

タグベースのはてブビューアを作りました。
ウォッチしたいキーワードをタグとして登録すると、ブックマークされたエントリをタグごとに一覧表示します。

Skimii

作った理由

自分の興味対象にピンポイントでアクセスしたいという理由です。 はてなブックマーク公式では、かなり大きなくくりでのカテゴリ分けなので、ウォッチしたい対象にピンポイントでアクセスしにくいなぁと感じていました。

タグごとにエントリを表示できるので、対象を絞ることができノイズの少ない情報を得られるかと思います。

しかしながら…

インタレスト機能 - はてなブックマークヘルプ
すでに公式で同じものが提供されています。作成途中で気づいた…

ただ、公式には無い機能もあります。

  • ブックマーク数の閾値設定
  • すでに読んだエントリを表示しない設定

構成

  • フロントエンド:AngularJS1.3、Bootstrap3
  • バックエンド:Ruby + Sinatra
  • サーバ:さくらVPS 1G
  • DB:MySQL
  • HTTPサーバ:Nginx
  • APサーバ:Unicorn

AngularJSの感想

Angularの最初の印象は、便利すごい最高って感じで完全に浮かれてた。これがあれば何でも簡単に作れると感じた。ただ、どんなものでもそうだけど正しい使い方をしなければだんだんと辛みが積もってくる。

自分の場合、Angularの正しい使い方がよく分からなくて、だいぶ右往左往した。そして、少し前の反Angular的なノリに便乗して、自分ワルクナイ、Angularワルイみたいな言い訳をしていた。

ただ、辛みが頂点に達して、どうにか改善しようと調べ始めるとだいたい解決策が存在して、それを適用するとかなり改善されるというブレイクスルーを何度か経験した。やっぱり自分が悪かったんや…。
しかし、これはかなり初心者的な話しなので、Angularはやっぱり最強だってことじゃなくて、最初の取っ付きやすさに反してAngularもそれなりに習得大変だなという感想。

ただ、ほんとにミニマムなツールであれば、辛みに気づく前に完成するので、そういうところで使うと最強であるかもしれない。

Angularで2つ作ったので、次はAngular2の正式リリースまで冬眠しようと思う。

Sinatraの感想

シンプルでいい。前にRailsに取り組んだときは覚えること多くてかなり辛かった思い出があるので、このシンプルさは本当にうれしい。

ただ、規模が大きくなったり複数人で開発するとなった場合は、Railsのレールが大いに機能するのだろうと思う。その点、sinatraは大規模な開発は弱いかもしれない。 だけど、自分が趣味で作る規模であればSinatraで十分だし、情報も多く転がってるのでこれからもお世話になりそう。

次に向けて

このWebアプリ作るのに4ヶ月かかっていて、ちょっと時間かかりすぎだなぁって思ってる。2ヶ月目ぐらいで雑に動くものはできてるんだけど、そこから詰めるのにさらに2ヶ月かかっている。
次は、ミニマムで雑だけど使えるものを目指して短時間での開発を意識したい。Reactで何か作る。1ヶ月でリリースしたいなぁ。

参考

はてブAPIでwebサービスを作りたい全ての人に向けて書きました
作成にあたり参考にしました。ありがとうございます。

英語の勉強を始めて1ヶ月。その感想。

英語の勉強を初めて1ヶ月たった。自分としてはめずらしく勉強の習慣は定着できているので、そこは良かったかなと思う。だけど、ダメなところもいろいろ感じ始めている…。

適当に感想を書いていく。

前よりもさらに時間がかかっている

最近、学習に集中できなくなってきていて、ぜんぜん関係ないことが頭の中をぐるぐる回っている。前は新規2ページと前日復習2ページを45分ぐらいだったんだけど、今では1時間超える日が多い。これは、単純に英語の勉強に飽き始めてるのか、たまたま最近心配事が多くてそうなっているのか分からないけど、あまり良くない兆候だなぁといった感じ。

あ!これDuo3.0でやったところだ!

日常に出てくる日本語が勉強した英語と紐付いて、あ、これやったなという体験が少し出てきた。こういうのが積み重なっていくと学習も楽しくなりそう。

忘れるスピードが半端ない

次の日にはちゃんと思い出せなくなるのは分かっていたことだけど、一部は思い出せたり喉まででかかってたりした。しかし、1ヶ月も経つと跡形もなく忘れていて唖然とする。1ヶ月周期ぐらいで復習しないとすべてを忘れて学習した意味もなくしてしまうかもと感じたので、近いうちに最初から復習してみたいと思う。

もっと基礎知識を付けたい

例文を覚える際に構文の成り立ちがよく分からなかったり、冠詞のルールが分かんなかったりで色々と疑問が多い。それをちゃんと覚えたらもうちょっと例文覚えるのも楽になるかもなと思う。次の1ヶ月の課題はこのへんの知識をきちんと身に付けることかな。

とりあえず1ヶ月続いたけど、つぎの1ヶ月続けられるかけっこう不安。あんまり力入れすぎると苦しくなって放り出す気がするので、いい加減にやっていきたい。

英語の勉強を始めて2週間。その感想。

英語の勉強を始めて2週間たった。英語の勉強は大学受験以来なので10年ぶりくらい。書いてて思ったけど、10年ぶりってすごい。そりゃ忘れとるわなー。

適当に感想を書いてみる。

単語を覚えるのが大変

一時的に記憶しても翌日にはすでに思い出せない。これはあかんなーと思ったので、単語を無理やりイメージに紐付けるという戦略で今は取り組んでいる。たとえば、emphasizeという単語を「円、ファッ!?サイズ」として、めちゃでかい¥記号に驚いてファッ!?となっているイメージで記憶している。すごいバカっぽいけど、こうでもしないと覚えられない。

例文を覚えるのに思った以上に時間かかる

1つの例文を覚えるのに10分から15分程度時間がかかる。こんなに時間かかるとは思ってなかった。学習に使っているDuo3.0を最後までやり通すのに5ヶ月程度かかってしまいそう。5ヶ月後には最初の方の内容は全部頭から抜けてそうで恐ろしい。

集中力がつづかない

45分を過ぎるともうやめたいって感じになる。単語を暗唱しながらまったく別のこと考えてたりするので45分が限界かなぁという感じ。

こんなもん。まだ2週間なので1ヶ月経った時にまた書こうと思う。

GitHubPagesでプロフィールページ作った

f:id:hogesuke_1:20150101034245p:plain
hogesuke.githubu.io

作成したWebサービスのURLをTwitterのプロフィールに載せていたのですが、サービスが増えるにつれてスペースが限界に近づいてきたので、GitHubPagesでプロフィールページを作ることにしました。

Githubリポジトリにpushするだけでなのでお手軽でした。
GitHub Pages

2014年振り返りと2015年の目標

2014年の振り返り

転職した

いつかは転職したいと数年前から考えてたけどずっと先送りにしてきたけど、いい転機があったので勢いにまかせて転職を決めた。
なにか転機がないと行動する気力もなかなか奮い立たないので、今年それがきたことはありがたいことだと思った。

引越しした

5年住んでいいかげん飽きたので引越しした。転職時の有給消化のときに準備できたしタイミングも良かった。

WEBサービスを3つ公開した

へぼいサービスではあるけど、きちんと公開できるとこまで作成できたのは良かった。
新たな言語も書くことができて少し経験地も獲得できた。

2015年の目標

  • Webサービスを最低4つ公開する
  • アクティブユーザ100人以上のサービスを作成する
  • この先長く取り組みたい分野を見つける
  • GGGGGGをFFFEFFぐらいにする
  • 英語を勉強を始めてTOEIC450点以上とする

Webサービスを最低4つ公開する

まだ経験したことがない言語やフレームワーク、ライブラリ、ツールに取り組む。
自分はあらゆる技術要素の良し悪しを表面的にしか捉えられてなくて、便利だから好きとか、なんとなく気持ち悪くて嫌いとか稚拙な言葉でしか語れないのを何とかしたい。自分が持つ経験が少ないので比較できる対象も少ないためにフワッとした感想しか持てないのだと思うので、まずは経験値を上げていきたい。

アクティブユーザ100人以上のサービスを作成する

今までいくつかWebサービスを作成して公開してきたけど、アクティブユーザはいずれもゼロもしくは自分ひとりで非常に寂しい状況になっている。
初めはWEB制作の勉強にはなるしそれでもいいかと思ってたけど、ユーザが付いているサービスを運用することでしか経験できたい体験もあるはずで、そういうのを得たいという気持ちがある。あと、ユーザが自分ひとりだとモチベーションが続かない。

この先長く取り組みたい分野を見つける

巷ではフロントエンドエンジニアとかバックエンドエンジニア、もしくはフルスタックエンジニアなど、単にエンジニアと人括りにせず細分化されて呼称されるようになっていると思う。
自分は何エンジニアなのか考えてみると、何エンジニアでもなくてどれも同じくらいできないエンジニアなので、せめて今年中に自分がこの分野に注力したいと思えるものを見つけたい。

GGGGGGをFFFEFFぐらいにする

自分のスキルをパワプロで表現するとオールGって感じなので、全体的にスキルを上げてせめてオールF以上にはしたい。

英語の勉強を始めてTOEIC450点以上とする

自分の英語力は壊滅的で一度受けたTOEICでは200点台(ランダムに回答したとしても期待値以下!)を記録している。この英語力だと英語のドキュメントを読むのも苦労するし、変数やメソッドの命名のセンスない感じなるので恥ずかしさを感じる。
まずは450点を目標にしてゆるゆると勉強していきたい。