2012年12月31日月曜日

"Direct Hosting & Cache Distribution"パターンで"yum"リポジトリの作成(S3/CloudFront/R53まで)

スズキです。

下記でアップデート用のRPMを作成したので、今回は、"yum"でアップデートできるように
リポジトリを用意し、公開してみようと思います。
HistoryをSyslogに出力BashのRPMを作ってみた(CentOS6)
せっかくなので、次のCDPを適用した"yum"リポジトリを作成してみます。
図にするとこんな感じです。


ただし全部書くと記事が非常に長くなってしまうので、
まずは器(S3 & CloudFront & R53)の構築方法まで紹介します。

S3の準備


S3の管理ページでの作業です。


バケット名(トップレベルのフォルダ?)を指定します。


作成した状態が確認できます。


バケットのパーミッションは誰でもバケット内のオブジェクトリストが見れるように
しておきます。


"Website Hosting"機能を有効にして"/"でアクセスされた時に表示させる
"Index Document"とエラー時に表示させる"Error Document"を指定します。



CloudFrontの準備



CloudFrontの管理ページでの作業です。


静的なコンテンツ(RPM)のダウンロードなので"Download"を選択します。


"Origin Domain Name"は先ほどS3の"Website Hosting"の設定時に表示されたDNS名
(ap-northeast-1.yum.suz-lab.com.s3-website-ap-northeast-1.amazonaws.com)
を指定します。
"Website Hosting"のDNS名を指定した理由はCloudFront経由でも"Index Document"と"Error Document"が機能するようにしたかったためです。


とりあえず"Object Caching"をCustomizeにして"Minimum TTL"を5分にしておきました。
(このあたりは未検証...)


"yum.suz-lab.com"でCloudFrontを利用できるようにCNAMEの設定もしておきます。
念のためCloudFrontの方のインデックスドキュメント(Default Root Object)も
指定しておきます。


CloudFrontのDNS名も確認しておきます。



Route53の準備




適当なドメインで上記のCloudFront作成時に確認したDNS名
(d38dcqjtn0a8t7.cloudfront.net)と"yum.suz-lab.com"を関連付けます。


レコードはCNAMEで作成します。



コンテンツのS3へのアップロードと表示確認





S3の設定(Website Hosting)で"Index Document"に指定した"index.html"と
"Error Document"で指定した"error.html"を実際にアップロードします。



公開するのでパーミッションはパブリックです。


アップロードされていることが確認できます。


ブラウザで表示ができたら完成です!


後は"yum"リポジトリのコンテンツをEC2で作成してS3にアップロードすれば
"SUZ-LAB Repository"の完成です!
--------
http://www.suz-lab.com

0 コメント: