2013 | 10 30 |
Amazon EC2+EBSにSubversionを突っ込んでみた
構築するに至った経緯はこちらから。
開発環境大改革 Vol.1 【Eclipse・JBoss・Subversion・Git・Jenkins・Redmine・Maven・Mule】
んで、次回あたりはバージョン管理をーで締めくくったんですが、実際どういう風に使うかみたいなのを考えていたら、やっぱりクラウドに置きたいという結論になりまして。
ローカルに置く予定でしたが、急遽予定変更して、Amazon EC2とEBSを使う事にしました。
実は「はじめてのAWS」なので、そこらへんも纏めておこうと思って別建てにしました。
とりあえず備忘録的な感じでやっていきます。
参考URL:高速にWordPressを動作させる網元を使うべくAWSにブログを移転しました。その手順を備忘録として残します。 – YATのBLOG
参考URL:AmazonEC2+EBSにsubversionリポジトリを置く – DROWSY DOG’S DIARY
Amazon EC2への申し込み
そもそも申し込んですぐに使えるんだろうか……。とか言ってる間に登録した。
AWSへの登録については他を参考にしてくだせぇ。
というか、この画面もそもそも必要な情報をぽちぽちしただけで別にむずかしいことは何もしてないです。
なので割愛しました。
Key Pairの作成
そして、AWS Management Consoleやらを開いたとこ。英語わからないよ……(´・ω・`)
とりあえず目的の物であるEC2を開いて、まずはKeyPairsを作ります。
公開鍵と秘密鍵ってやつですね。
Create Key Pairを選択。
名前を付けて作成。
その後、保存ダイアログが出るので保存します。
なくした瞬間にサーバーにつなげられなくなるので、絶対なくさないようにAVフォルダとかに入れておいたらいいんじゃないですかね。
嫁専用画像フォルダとかでもいいです。
EC2インスタンスの作成
EC2インスタンスの作成。ほいっと。
FreeのAmazon Linux AMIの64bitを選択。
スペックはt1.microで。必要に応じて上げるのでまずは最低ライン。
詳細とかタグとかはデフォルト。設定してない。
ストレージに関してはキャプチャ忘れたけど、Add VolumeしてEBS Volumeをこの段階で作っておく必要がある。
EBSってのは、まぁ、外付けHDD的な……そんな感じ。多分。
AWSはインスタンスを停止させるとデータが吹っ飛ぶらしいので、SVNとか立てるとなると常にインスタンスを起動しておかないといけない。
でもEBSっていうデータ保存場所を用意しておくとそんな事しなくてもよくなる。らしい。
なのでEBSにデータ突っ込む為に、20GBほどのVolumeを作成しました。開発用なのでそんないらんだろう、っていうのと、そもそも20GBぐらいじゃないと無料試用期間から外れてしまうので。
後は、セキュリティグループを設定。
その後はプレビューして、問題なければOK。
最後にKey Pairの設定ダイアログが開くのでさっき作ったKey Pairを指定して完了。
インスタンスが準備中っとな。
その間にIPアドレスを取得しまする。
Allocateします。
作成したらAssociateして作成したインスタンスと関連付けさせておけばOKのご様子。
ただこれってインスタンス落としても再起動したらもう一回関連付けしてくれるんだろうか……?
してくれなさそうな気がする。まぁ、仕方ないか。
後は画像に出すとアレなので、セキュリティグループとかの設定をして、一旦完了かな?
HTTP・HTTPS・SSHあたりのポートを開けておけば困る事はないと思ってる。
SVN環境の作成
やっとこさ、SVNを導入していけます。こっからはコンソールで。まずはTeraTermなんかのSSHクライアントとかを使って、先ほど作成した鍵を使ってAWSにアクセス。
ユーザー名はec2-userで入れるかと。
ログイン出来たらyumをupdate。
$ sudo yum update
EBSのVolumeをext3でマウントして、SVNをインストールする準備。
$ sudo mkfs -t ext3 /dev/sdb $ sudo mkdir /svn $ sudo mount /dev/sdb /svn
SVNがインストールされていない事を確認。
$ yum list installed | grep subversion $ yum list installed | grep svn
SVNとmod_dav_svnをインストール。
$ sudo yum install subversion mod_dav_svn
サンプルリポジトリの作成。
$ cd /svn $ sudo mkdir repos $ cd repos $ sudo mkdir sample $ sudo svnadmin create sample $ sudo svn mkdir file:///svn/repos/sample/trunk -m "create" $ sudo svn mkdir file:///svn/repos/sample/branches -m "create" $ sudo svn mkdir file:///svn/repos/sample/tags -m "create"
これで一通り、SVNのリポジトリ作成までが完了。
次は外部から接続できるようにApacheと連携します。
$ sudo vi /etc/httpd/conf.d/subversion.conf
以下を追加
<Location /repos> DAV svn SVNPath /svn/repos/sample AuthzSVNAccessFile /svn/repos/sample/authzsvn.conf Require valid-user AuthType Basic AuthName "SVN repos" AuthUserFile /svn/repos/sample/.htpasswd </Location>
ec2-userと適当なPASSで認証周りの設定ファイルを用意。
$ sudo htpasswd -cb /svn/repos/sample/.htpasswd ec2-user ec2-user_pass $ sudo vi /svn/repos/sample/authzsvn.conf
以下を記述して用意は万端どす。
[group] dev_grp = ec2-user [/] @dev_grp = rw
嘘でした。権限を変更してApacheをリスタート。
$ sudo chown -R apache:apache /svn/repos/sample $ sudo /sbin/service httpd restart
後は、TortoiseSVNとかを使ってsvn+sshで接続してチェックアウト出来るかどうか。
うん、出来ない(´・ω・`)
設定間違ってるのかなーと思って、色々やってみたけど繋がらず。
うーむ、と思って先日設定したEclipseのSubversiveから繋げてみたら繋がった……。
とりあえず繋がる事は確認したから結果オーライなんだろうか。
繋がるのは繋がるので、多分クライアントの設定の仕方が悪いのだと思われる。
次回はEC2サーバーにRedmineとかJenkinsとかを突っ込んでサーバーに設置する環境周りを完了させるよーい。
[…] AWSにSubversionサーバを作ってみた AmazonEC2+EBSにsubversionリポジトリを置く 【EC2】 Subversion+Redmine環境の構築 (1/6) Amazon EC2+EBSにSubversionを突っ込んでみた(参考) […]
[…] Amazon EC2+EBSにSubversionを突っ込んでみた | 毒舌プランナーの異論持論 […]