クラウドドライブとファイルのバックアップ

AWSのS3はEC2の日々のデータのバックアップとStaticなWebサーバとして使用しています。一方でAmazonやGoogleのCloud DriveはPCのファイルの共有性を高めると同時にファイルのバックアップもかねて使用しています。
しかし、最近気がついたのですが、Cloud Driveの利便性はまったくその通りですし、PCのクラッシュなどを考えればCloud Driveはバックアップ用の機能があるのはその通りです。
しかし、Cloud Driveのファイルは色々な方法でアクセスしますので誤って削除してしまったり、Cloud Driveの同期機能のバグなどでファイルが消えてしまうリスクはなくなりません。
結局のところ、安全を期すのであればファイルのバックアップはCloud Driveとは別のロケーションに実施する必要があると思います。
その意味でCloud Driveではなく、S3そのものは基本的なバックアップの方法かなとは思います。とはいえ、たとえば、写真のオリジナルのように日々変更されないデータの保存であれば、DVDなどでも結局問題ないかなと思っています。S3の使用領域もコストがかかりますからね。

中学受験用 理科教材 Javaによる小学生理科教材(天体)

まだ、サイトを立ち上げる前に、息子の中学受験の理科学習用にJavaのアプレットでつきの満ち欠けや地球の公転などがわかるようなプログラムを作りました。
私のサイトの片隅においてあるのですが、おそらく未だかつてアクセスされたことはありません。
すこしは世間に紹介することになるかも知れませんので、ここに記事にしておきます。
Javaによる小学生理科教材(天体)

プログラム的には数値計算やJavaのグラフィックの勉強にはなりました。

中学受験用 社会科 歴史年号暗記サイト

昨年、息子の中学受験の年号暗記用に作ったサイトです。
携帯でもアクセスできるようまったくシンプルなつくりです。
息子はまったくアクセスしてくれませんでしたが、最近、少しだけアクセスがあるようです。
誘導の意味も含めてブログの記事にしました。

プログラム的にはTomcat上のServletとjspで構成して、Hibernateも使用して私のデータベースアクセスの基本的な練習になったものです。
データの入力や変更また、正答率なども計算していますが、そのあたりのニーズはほとんどないでしょう。
機会があればコードなども紹介します。

 

 

Apache+TomcatでのSSL設定(個別ディレクトリ) (復刻)

過去のSerendipityのブログの記事で比較的アクセスの多いものをWordPressに移行しています。

 

懸案の特定のTomcatアプリケーションに関してSSLアクセスのみを許容する設定について
設定方法が判明しました。

現在の私の環境では
/etc/httpd/conf.d
以下の設定ファイルは自動的にhttpd.confにincludeされます。

Include conf.d/*.conf

そこにTomcatへのマッピング設定ファイルを設置しています。
こんな感じ…

[root@ip-10-162-38-78 conf.d]# cat aws.conf
<Location /aws/>
ProxyPass ajp://localhost:8009/aws/
</Location>

実際にはこのconf.d配下の*.confファイルはhttpd.confにincludeされている
だけです。
さらに、conf.dにはSSL設定のための
ssl.conf
がありました。
このssl.conf内に実はVirtual Hostとして443をポートにするサーバが設定されています。

このssl.conf内のVirtual Host設定内にLocationタグを記述すれば、それはhttpdサーバ
全体ではなく、SSLで接続するVirtual Host内だけのマッピングになります。

ssl.conf内の構造:

<VirtualHost>
(内容省略)
<Location /samplegw/>
ProxyPass ajp://localhost:8009/samplegw/
</Location>

</VirtualHost>

これで/samplegw/というアクセスに関してはhttps(443)でアクセスされた場合のみ、マッピング
されるようになりました。

アレカヤシの植え替え

もう5年以上も家にあるアレカヤシを思い立って植え替え、株分けしようと考えましたが、大変な事態に….
鉢の中は根でいっっぱいで株を取り出すことは不可能、仕方がないので、プラスチックの鉢を破壊して株を取り出しました。

株はコチコチで株分けどころではありません。

かなづちでたたいたり、ドライバーでつついたり、ヤシにはかわいそうですが、根をくずすというよりは壊すという雰囲気

なんとか、このレベルまで縮小して、今までと同一サイズの鉢に植え替えました。

 

今後の生育も心配なので、一番大きい葉を根の部分から切り落としたりしれかなり整理しました。
元気になってくれるといいのですが……

 

メールサーバ始動 (復刻ページ)

以前のSerendipityブログの記事で比較的アクセスの多いものをWordpressに移行しています。

最近ちょっとご無沙汰でしたが、メールサーバでメールの送受信可能になりました。

AWSの起動時からsendmailが動作していて、メールの送信はできましたが
受信はできませんでした。
もちろんメールサーバへのルーティングができないので当然ですが、Route53で
メールのドメインも設定できるようになったので挑戦してみました。

まずはメールのルーティングのためにRoute53にMXレコードの追加

nantoka7.com MX 10 54.248.89.83

といった感じでMXレコードとしてドメインとアドレスのマッピングを設定。
ちなみにnslookupでMXレコードの検索も可能。

[root@ip-10-162-38-78 ~]# nslookup -type=mx nantoka7.com
Server: 172.16.0.23
Address: 172.16.0.23#53

Non-authoritative answer:
nantoka7.com mail exchanger = 10 54.248.89.83.

Authoritative answers can be found from:

他のサイトでチェックするとMXレコードはIPアドレスを設定しているのではなく、mail.xxxx.com
のようなドメイン名で設定している例が多いのでそのうち直しましょう。

さらにEC2のSecurity Groupでポート25を開けます。
ちょっと怖いですが、httpと同様に全てのIPアドレスに対してオープンしました。

さらに、sendmailの設定ですが、まず以下のファイルを編集します。

/etc/mail/local-host-name
にメールのドメインを設定します。
nantoka7.com
これでxxxx@nantoka7.comのメールアドレスを受け付けるようになります。

最後に以下のファイルを編集します。
/etc/mail/sendmail.cf

以下の行をコメントに変更します。
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

そしてsendmailの再起動
/etc/init.d/sendmail restart

netstatで再起動前後のポート25の状態を確認すると、変更前はlocalhostに対してのみ
ポート25(smtp)がオープンしていますが、変更後には全てのIPアドレスに対してポートが
開かれます。

以上でEC2上のsendmailでメールの送受信が可能になりました。

いつものことですが、動いてしまえば簡単ですね。

AWS APIによるS3オブジェクトのパーミッション変更(復刻ページ)

以前のSerendipityの記事で比較的アクセスの多いものをWordpressに移行しています。

毎日気象庁のサイトから前日の気温を収集するプログラムをcurlで作成し、サーバの
cronで毎朝自動起動してMysqlに格納するプログラムもとりあえず安定動作の模様。

そこでこのデータの取得も確認も兼ねて毎日自動でデータの羅列をhtmlで作成することにした。
本当はこのあたりはツールを使って美しくフォーマットすべきなのだが、とりあえず、シンプルなhtmlの雛形にsqlの出力を改行だけを入れて表示する方法。
サーバローカル内ではつくったファイルを単に毎日上書きするだけなので特に問題はない。
さらにこのhtmlファイルをS3にもアップロードしてアクセス可能にしようと考えた。

今までの転送ツールを使って事前にWeb Accessを許容したBucketにファイルを転送。
1回アクセス設定をしたファイルに上書きするので特に問題はないだろうと思っていたら、ファイルが上書きされると、PermissionはOwnerのみのデフォルトに戻ってしまうことが判明。
ファイルをアップロードするたびに明示的にパーミッションを設定しなければならない…

これもあれこれ調べているうちにAPIを使用して以下のようなコードで変更できることを
確認。

AccessControlList acl = s3.getObjectAcl(bucketName, key);
acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
s3.setObjectAcl(bucketName, key, acl);

keyはBucket上に存在するファイルの名前と同義です。
定期的にデータは更新されるけれども、特にユーザとインタラクティブに通信する必要のないサイトはS3で構築するのがgoodかも…

 

カテゴリー: AWS

複数EBSを含むAMIとAMIのリージョン間コピー

EC2の無料期間も残り数ヶ月、EC2サーバを価格の安いOregon Regionに移行するテストを実施してみました。
現在ブートディスク以外に3つのデータディスクを使用しているのですが、AMIの作成でEBSをそのままRemoveしないで実行すると一つのAMIで表示されますが、データ用のEBSを含んで一つのAMIとして保存、登録されることを理解しました。ですからこのAMIからインスタンスをLaunchするとこれらのデータディスクも合わせて作成されることになります。
Tokyoで作成したAMIをOregonに移動するにはオリジナル側のRegionでAMIを選択してActionでCopyを実行するとコピー先のRegionを洗濯することができます。今回はここでOregonを選択しました。
バックグラウンドではそこそこ大きなデータの転送になるのでしょう。コピーが終了して使用可能になるのに数時間かかりました。
コピー終了後は問題なくインスタンスの起動ができましたし、少し試験した限りではアクセスも良好でした。コストを考えるとやはりOregonへの移行がリーゾナブルそうです。

カテゴリー: AWS

Bingのオープニング画面のリンクを自動取得

Bingの日替わり画面の画像を毎日自動的に取得しようというプロジェクト。
ページで使われている画像単体のURLを毎日自動的に取得しようということです。
基本的には以下の流れになります。

curlをつかってwww.bing.comにアクセス。
出力データからjpg,mp4をキーにしてサーチ。
さらに構文をばらばらにして、ファイルへのフルパスを取得。
ついでに、その結果を自動的にhtmlフォーマットでサイトにアップ。

データ取得用のスクリプトはこんな感じになります。

 

このスクリプトにて毎日、日付がついたファイル内に各画像へのフルパスが格納されます。curlの出力からコーテーションをスペースに置き換えています。これでスペースで分割されたデータになり、kshのforで扱いやすくなります。forで各エントリからjpgが含まれたもののみをファイルに格納していきます。同様の方法でmp4の動画のフルパスも取得可能です。
次にここからhtmlのページを作成します。

 二つの関数を階層で使用しています。
jpg.で始まるファイルのリストを作成して、そのファイル内のフルパスを一行ずつ取り出して、そこからhtml上のアンカーストリングを作成します。画面上のアンカー名がファイル名と同一ではちょっと悲しいので、日付ストリングだけになるようにしています。
この2種類のスクリプトを毎日cronで実行すれば毎日クリックするだけでBingの背景画像を楽しむことができるはずです。
パールを使えばもう少しスマートにできるかもしれませんが、依然Kshell人間です。

Bingのオープニングが好き

Bingはほとんど使わないのですが、日替わりのオープニング画面(背景)きれいだとおもいませんか?
ファイルがいつまでアクセスできるかわかりませんが、リンクを張ってみました。
2013/05/08
ムチャーチョス天文台(静止画)
ムチャーチョス天文台(動画)
個人的にはファイルもダウンロードしたのですが、それを貼ったら違法ですよね。
動画をリピートにしてPCの全画面で見ると素敵です。
以前カリフォルニアの海岸(カーメルかな?)の潮騒の動画があったのですが、あれは癒されました。

2013/05/09
ニュージーランドの氷河湖

2013/05/10
宮古島のサトウキビ畑
ペリカンの飛行