2011年9月13日火曜日

オフィスを移転しました。

四日市に新しくできたレンタルオフィスに移転しました。JR四日市駅の近くですが、近鉄からも歩ける距離なので、ぜひ一度お越しください。




フリーランス向けにフリースペースも用意されていて割安でレンタルできます。三重にはこうした施設はほぼ皆無なので本当にありがたいです。














その他、電話の取り次ぎや郵送物の受付などベンチャーインキュベーションとしてのサービスは一通りそろっています。スタートしたばかりなので、いろいろこれから感はありますが、人が集まる場所になって、みんなで楽しく仕事ができる場所になればいいなと思ってます。


場所はこちら:


大きな地図で見る



2011年9月5日月曜日

Amazon EC2 (Amazon Linux) で 自動的にスナップショットを作成


バックアップのために自動でスナップショットを取り、指定した世代分保管していくための方法です。シェルでamazon-api-toolsを呼び出していますので、プログラム環境は不要です。ここでは、cronの日時処理として設定しています。

使用したインスタンスのイメージですが、『Basic 32-bit Amazon Linux AMI 2011.02.1 Beta (AMI Id: ami-300ca731)』を使用しました。


管理者になる
設定は管理者権限で行いますので権限を取ります。
$sudo su -

プライベートキーファイル、証明書ファイルの設定

キーファイルを配置するためのディレクトリを作成して、プライベートキーファイルと証明書ファイル(X.509 証明書)をコピーします。
#cd /home/ec2-user
#mkdir .aws
#chown ec2-user:ec2-user .aws
#chmod 700 .aws

シェルファイルの作成

JAVA_HOMEとEC2_HOMEの設定値を確認後、バックアップ用シェルファイルを作成します。赤字部分を環境に合わせて変更してください。
#echo $JAVA_HOME
/usr/lib/jvm/jre

#echo $EC2_HOME
/opt/aws/apitools/ec2

#vi /etc/cron.daily/create_snapshot
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/jre
export EC2_HOME=/opt/aws/apitools/ec2
export PATH=${PATH}:/bin:/usr/bin:${EC2_HOME}/bin

AWS_PRIVATE_KEY=/home/ec2-user/.aws/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
AWS_CERTIFICATE=/home/ec2-user/.aws/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
AWS_REGION=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/[a-z]$//'`

EBS_VOLUME_ID="vol-xxxxxxxx"

SNAPSHOT_DESCRIPTION="Daily Backup"
SNAPSHOT_GENERATION=7

ec2-create-snapshot --private-key ${AWS_PRIVATE_KEY} --cert ${AWS_CERTIFICATE} --region ${AWS_REGION} --description "${SNAPSHOT_DESCRIPTION}" ${EBS_VOLUME_ID}

SNAPSHOTS=`ec2-describe-snapshots --private-key ${AWS_PRIVATE_KEY} --cert ${AWS_CERTIFICATE} --region ${AWS_REGION} | grep ${EBS_VOLUME_ID} | grep "${SNAPSHOT_DESCRIPTION}" | sort -k5 -r | awk '{print $2}'`

COUNT=1
for SNAPSHOT in ${SNAPSHOTS}; do
  if [ ${COUNT} -gt ${SNAPSHOT_GENERATION} ]; then
    echo "deleting ${SNAPSHOT}";
    ec2-delete-snapshot --private-key ${AWS_PRIVATE_KEY} --cert ${AWS_CERTIFICATE} --region ${AWS_REGION} ${SNAPSHOT}
  fi
  COUNT=`expr ${COUNT} + 1`
done

指定された世代を超えたファイルを削除するための判定ですが、日付はもちろんですが、EBSボリューム名とディスクリプションも判定しています。

EBSボリュームだけでも可能なのですが、ディスクリプションを指定しているのは、上記ファイルをhourly, monthlyと作り、それぞれ別のディスクリプションを指定することで、1時間毎の最新のバックアップを6世代とりつつ、月次のバックアップを12世代残していくといった周期の違うスナップショットを保持できるようにするためです。

最後に実行権限を付与して、動作確認をします。問題がなければスナップショットが作成されます。
$chmod 755 /etc/cron.daily/create_snapshot
$/etc/cron.daily/create_snapshot 




2011年8月16日火曜日

Amazon EC2 (Amazon Linux) で S3 をマウントして使用する(s3fs+FUSE)

アプリケーションで大容量のファイルを扱う必要がある場合にS3をマウントして使用するための設定です。S3をファイルシステムとしてマウントするにはs3fsとs3fsが使用しているFUSE(Filesystem in Userspace)が必要になります。

使用したインスタンスのイメージですが、『Basic 32-bit Amazon Linux AMI 2011.02.1 Beta (AMI Id: ami-300ca731)』を使用しました。

[2013.01.16追記]
Amazonの堀内さんとEC2からのS3の利用について少し話をさせてもらったところ、s3fsなどは使わずにAPIを利用することをお勧めされてました。アップロードしたファイルをAPIでS3に保存して、そのAPIから返ってきたS3のURLをDBに保存していくのがベストだということです。(記事:AWS SDK2 for PHPを使ってS3にファイルをアップロードする



管理者になる
インストールと設定は管理者権限で行いますので権限を取ります。
$sudo su -

ライブラリのインストール

FUSE に 必要なライブラリをインストールします。既にインストール済みのものがあれば除いてください。
#yum -y install gcc-c++
#yum -y install make
#yum -y install openssl-devel
#yum -y install curl-devel
#yum -y install libxml2-devel

FUSE のインストール

FUSE はバージョン2.8.5をソースからコンパイルしてインストールします。
#cd /usr/local/src
#wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.8.5/fuse-2.8.5.tar.gz
#tar xzvf fuse-2.8.5.tar.gz
#cd fuse-2.8.5
#./configure
#make
#make install

FUSEの設定

インストールしたFUSEの関連モジュールを読み込むための設定をします。
#echo /usr/local/lib >> /etc/ld.so.conf
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
#ldconfig

s3fsのインストール

s3fsをインストールします。いろいろバージョンがありますが、この記事を書いている時点では、s3fs-r203.tar.gzでないとうまくいきませんでした。
#cd /usr/local/src
#wget http://s3fs.googlecode.com/files/s3fs-r203.tar.gz
#tar xzvf s3fs-r203.tar.gz
#cd s3fs
#make
#make install

s3fsの設定

設定ファイルを作成します。AWSへのアクセスキーとセキュリティキーをコロンで区切って記述して保存します。
#vi /etc/passwd-s3fs
accesskey:securetkey

S3をマウントする

今回はS3のs3-bucket-nameとバケットを/s3ディレクトリにマウントします。
#cd /
#mkdir s3
#modprobe fuse
#s3fs s3-bucket-name /s3 -o allow_other,default_acl=public-read

次回起動時のためにfstabにも記載しておきます。
#vi /etc/fstab
/usr/bin/s3fs s3-bucket-name /s3 fuse allow_other,default_acl=public-read 0 0

海外のウェブサービスを調べるときに使えるサイト

ウェブサービスの海外展開を考える時、あらかじめ競合を調査しておくことは重要かと思います。先日、EC Studioの山本社長がSF New Techでかっこいいプレゼンをされていましたが、そこでもChatterなどのサービスとの違いについて質問を受けていました。

一番最初に思いついたからといって成功の保証がされる訳ではないですし(むしろ歴史的には一番手は失敗に終わることが多い)、毎日たくさんのウェブサービスがリリースされているなかで、同じカテゴリーのものはあるという前提で、それらとは何が違うのかをきちんと把握して、自身のサービスの機能を改善していくと。

そこで、海外の競合調査につかえるサイトをいくつかご紹介したいと思います。


500startups http://500startups.com/
既にアーリーステージの投資を受けているサービスが並んでいます。myGengoが東京発ですね。

GO2WEB20 http://www.go2web20.net/
その名の通りWeb2.0というキーワードが流行った頃からあるサイト。運営側が掲載の判断をしているのでしっかりしたものが多いです。

AngelList http://angel.co/
会員登録をすると自分で自分のサービスを登録できます。特長としては、そのサービスに興味のある人、アドバイスを与えている人、投資している人などが表示される点です。

StartupLi.st http://www.startupli.st
最近始まったウェブサイトでAngelList同様自分で自分のサービスを登録できます。

Beta List http://betali.st/
ここも比較的新しいサイトだと思います。ログインや情報の拡散のためにTwitterを使っています。


本当に毎日たくさんのサービスがリリースされています。残念ながら日本初のサービスは非常にすくない状況です。僕としては単体で露出狙うんじゃなくて、みんなで集まってサービスを海外展開するAKB48戦略が新しくていいと思っています。ずば抜けてる訳じゃないけど、なんか全体で魅力的みたいな。で、その中でいいサービスが伸びていくという。

IT飲み会が今度サンフランシスコでスタートするという話も聞いているので、そんな動きになれば面白いなと思っています。

2011年8月9日火曜日

Amazon EC2 (Amazon Linux) で LAMP環境とメール環境(Postfix+dovecot) を構築する

Amazon EC2 (Amazon Linux) で LAMP環境とメール環境(Postfix+dovecot) の構築について何回かに分けて書いてきましたが、その目次ページです。各記事は実際に設定をしながら書きましたので、Amazon側の環境が変わらない間はこの方法で問題ないかと思います。


LAMP環境構築
ウェブ管理者用のアカウント作成
MySQL 5.1.52
Apache 2.2.16 + PHP 5.3.6 と SSL設定phpMyAdmin 2.11.11.3


メール環境構築
PostfixAdmin 2.3.3
Postfix 2.6.6
dovecot 2.0.9
空メール受信処理

基本的な設定なのでセキュリティ面等はそれぞれのポリシーにあわせて設定してください。

Related Posts Plugin for WordPress, Blogger...