Sunday, April 27, 2014

Cloud on the BEACH2014

2014/4/26 JAWS-UG 沖縄支部主催による Cloud on the BEACH2014 いってきました。

滑り込みセーフでのエントリとなりましたが、今年も参加させていただき恐悦至極。

勉強会の部(経験者向けトラック)

あまり AWS なるものを使ってないにも関わらず、 空きが多いという理由で何となく経験者向けトラックの方に行ってみる。

http://jaws-ug-okinawa.doorkeeper.jp/events/9973

結果、どうにかついていくのがやっとでしたが・・(汗)

流れは最初にお題が出され、それについてチーム別でRFPを作成するとういもの。 今回のお題は、上司からスライドシェアのようなプレゼン資料アップローダーについて依頼されるといった体。

グーとパーでチーム分けしたので、以下グーチームの発表のご様子

以下パーチームのご様子

お題にあった全文検索には CloudSearch による対応がひとつ考えられると。 ファイルアップローダーの実装にはDoS攻撃向けに対策する必要ありだが、 一旦S3にアップしてしまう手法だと幸せになれうるなど参考になる話をいただきました。

個人的にはレギュレーション縛りありで 実装の部 なるものを妄想するのですが、 それを実現する低価格な枠があれば・・・んー、ないよなあ・・

実現にはやはり強力なスポンサー殿のお力が必要なのでしょうかとも思う所存。

ビーチパーティーの部

梅雨に入りかけている時期にも関わらずよく晴れました。

情報筋によると、県内某居酒屋で主催者な方々による晴天祈願が行われたらしくその成果によるものの様。

今年も毎年恒例の焼肉奉行殿が腕を振るっておりました。

毎年着実に継続している当イベント、主催くださっている中の方々のパワーには本当に恐れ入ります。

お疲れ様でした。

Tuesday, April 22, 2014

DevOps Okinawa #3

DevOps Okinawa #3 に参加してきました。

https://github.com/OkinawaDevOps/DevOpsOkinawa-3

もくもくネタはとくに決めてなかったので、とりあえずPacker で VirtualBox 向けのイメージを作成することにトライしてみることに。

会の進行

そもそも、会の進行についてもまだよくわかっていないので、最初に README.md をよく読む。

やることを Issue 登録して進行していく方式。これは "すごい広島" 方式、というものの模様。

Packer をインストール

手始めな Issue を登録し、早速、以下な記事を参考に Packer をインストール。

http://www.packer.io/intro/getting-started/setup.html

当方 Mac のため Brewfile に以下な記述があることを確認し、

# Add Repository...
tap homebrew/binary
# Packages...
install packer

以下でインストール。

brew bundle

GETTING STARTED みながら Packer を使う

とは言えまだ Packer の使い方もよくわからないので GETTING STARTED に従ってやってみる。

http://www.packer.io/intro/getting-started/build-image.html

GETTING STARTED では Redis がプリインストールされた Amazon EC2 AMI を作成する模様。

イメージのビルドに t1.micro インスタンスを使うので AWS アカウントが必要。

Packer がビルドするために使う設定ファイルは、テンプレートと呼ばれる模様。テンプレートは以下(example.json)

{
    "variables": {
        "aws_access_key": "",
        "aws_secret_key": ""
    },
    "builders": [{
        "type": "amazon-ebs",
        "access_key": "{{user `aws_access_key`}}",
        "secret_key": "{{user `aws_secret_key`}}",
        "region": "us-east-1",
        "source_ami": "ami-de0d9eb7",
        "instance_type": "t1.micro",
        "ssh_username": "ubuntu",
        "ami_name": "packer-example {{timestamp}}"
    }]
}

aws_access_key と aws_secret_key はテンプレートの中に書かず、ユーザ変数で渡すべしとのこと。

テンプレートの builders セクションはビルダーの設定で、この場合 amazon-ebs というビルダーが使用される模様。 amazon-ebs はソース AMI から EBS-backed AMI をビルドしてプロビジョニングを行い、新しい AMI にリパッケージングするとある。

目標は VirtualBox のイメージを作成することだけど、 VirtualBox 用のビルダーはきっとあって、 それを導入すればあとはテンプレートを作成すればいいのではないかと予想。多分。

packer validate でテンプレートの内容をチェック。

packer validate example.json

以下のとおり良好。

Template validated successfully.

packer build でイメージのビルド。 aws_access_key と aws_secret_key は伏せますです。

packer build -var 'aws_access_key=xxxxxxxxxxxxxxxxxxxx' \
  -var 'aws_secret_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  example.json

実行し終えると以下なメッセージが末尾に、

==> Builds finished. The artifacts of successful builds are:
--> amazon-ebs: AMIs were created:

us-east-1: ami-eb998182

EC2 Dashboard で US East に切り替え、 AMI(ami-eb998182) の登録を確認。早速 Launch してみる。

SSH ログインは以下、

ssh ec2-54-237-228-42.compute-1.amazonaws.com -lubuntu \
  -i ~/.keypairs/use-packer-NVirginia_us-east-1.pem

問題なくログインできる。

EC2 Dashboard をみると、作成した覚えのないインスタンスがすでにターミネートされている。 名前は Packer Builder 。 これは Packer がイメージのビルドのためソース AMI からインスタンス起動した痕跡かと。

ソース AMI からコピーして新しいイメージを作ることができましたということで、ひとまず成果あり。

次の機会に、以下なエントリを参考に何かをプリインストールしたイメージの作成にトライしてみます。

http://www.packer.io/intro/getting-started/provision.html