1. はじめに:なぜ子どもの写真が「技術ブログ」のテーマなのか?
皆さん、こんにちは。私は四児のパパエンジニアです。
子どもの成長は本当に早いものです。気づけばスマートフォンやデジタルカメラのストレージは、写真や動画でパンパンになっていませんか?「写真データ、どうしようかな...」と悩むのは、もはや現代人の共通の悩みかもしれません。そして、ITエンジニアであれば、その解決策に「クラウドストレージ」を思い浮かべるでしょう。
しかし、ただクラウドに保存するだけでは、本当の解決にはなりません。膨大なデータを効率的に、そして安全に、さらに「コストを最小限に抑えて永年保管する」には、専門的な知見が必要です。
そこで本記事では、ITエンジニアである私が、子どもの大切な思い出をS3 Glacier Deep Archiveに永年保管するためのアーキテクチャを、実践的な視点で解説します。
2. S3 Glacier Deep Archiveとは?
まずは、今回主役となるS3 Glacier Deep Archiveについておさらいしましょう。AWSのストレージサービスS3(Simple Storage Service)には、様々なストレージクラスがあります。
・S3 Standard: 頻繁にアクセスするデータ向け。
・S3 Intelligent-Tiering: アクセス頻度に応じて自動で階層を移動。
・S3 Glacier Instant Retrieval: ほとんどアクセスしないが、必要な時にすぐに取り出したいデータ向け。
・S3 Glacier Flexible Retrieval: 復旧に時間がかかってもコストを抑えたいデータ向け。
・S3 Glacier Deep Archive: 1年に1回程度しかアクセスしないような、長期保管が目的のデータ向け。
特徴 S3 Standard S3 Glacier Deep Archive
主な用途 頻繁にアクセスするデータ 長期、永年保管
アクセス時間 ミリ秒 数時間〜数日
ストレージ料金 高 非常に低
データ復旧料金 なし 復旧料金が発生
Google スプレッドシートにエクスポート
S3 Glacier Deep Archiveは、1GBあたり月額0.00099ドルという破格の安さが最大の魅力です。しかし、その代償として、データを復旧(リストア)するのに数時間から十数時間かかります。子どもの写真であれば、毎日見るわけではありませんから、この特性はむしろ最適と言えます。
「永年保管」という目的において、S3 Glacier Deep Archiveは費用対効果が最も高いソリューションなのです。
3. アーキテクチャの全体像
今回構築するアーキテクチャは非常にシンプルです。S3のライフサイクルルールを活用し、S3バケットにアップロードされた写真や動画データを、自動的にGlacier Deep Archiveに移行させる仕組みを作ります。
-
PCやスマートフォンからS3バケットに写真・動画をアップロードします。
-
アップロードされたデータは、S3 Standardに一時的に保存されます。
-
S3のライフサイクルルールが設定した期間(例:30日後)になると、データは自動的にS3 Glacier Deep Archiveに移行されます。
-
永年保管が開始されます。
-
もし写真を見たい場合は、S3コンソールからデータ復旧リクエストを送信します。
この構成の最大の利点は、一度設定してしまえば、あとは写真をアップロードするだけで自動的に長期保管が実現できる点です。
4. Step-by-Step:アーキテクチャの実装
それでは、具体的な実装手順を見ていきましょう。
4.1. S3バケットの作成とライフサイクルルールの設定
まずはAWSコンソールにログインし、新しいS3バケットを作成します。
S3コンソールに移動し、「バケットを作成」をクリックします。
バケット名を入力し、リージョンを選択します。今回は東京リージョン(ap-northeast-1)を選択しました。
すべての設定はデフォルトのままで「バケットを作成」をクリックします。
次に、このバケットにライフサイクルルールを設定し、データを自動的にGlacier Deep Archiveに移行させます。
作成したバケットを選択し、「管理」タブに移動します。
「ライフサイクルルールを作成」をクリックします。
ルール名を入力し、「バケット内のすべてのオブジェクトに適用」を選択します。
「ストレージクラスの移行」にチェックを入れます。
「現在のバージョン内のオブジェクトを移行」を選択し、以下のように設定します。
オブジェクトの作成から日数が経過した場合: 30日
移行先のストレージクラス: Glacier Deep Archive
この設定により、バケットにアップロードされたオブジェクトは30日後に自動的にGlacier Deep Archiveに移行されます。
4.2. 写真・動画のアップロード方法
最も簡単な方法は、AWSコンソールから手動でアップロードすることです。しかし、ここでは少しエンジニアらしく、AWS CLIを使った方法を紹介します。
まずは、AWS CLIをインストールし、認証情報を設定しておきます。
S3バケットにファイルをアップロードする
aws s3 cp "C:\Users\User\Desktop\child_photo.jpg" s3://[あなたのバケット名]/photos/ --storage-class STANDARD
--storage-classを明示的に指定しない場合、デフォルトのStandardでアップロードされます。ライフサイクルルールが設定されていれば、どちらでも問題ありません。
4.3. データの復旧(リストア)方法
「あの写真、やっぱり見たい!」となった場合、S3コンソールから簡単にリストアできます。
S3コンソールでバケットを開きます。
Glacier Deep Archiveに移行したオブジェクトは、ストレージクラスがGLACIER DEEP ARCHIVEと表示されています。
対象のオブジェクトを選択し、「アクション」→「オブジェクトの復元」をクリックします。
復元オプションを選択します。
標準復元: 数時間で復元されます。
一括復元: 5-12時間で復元されます。
有効期限(日)を指定し、「復元」をクリックします。
復元が完了すると、元のストレージクラス(Standardなど)に戻り、通常通りダウンロードできるようになります。
5. 費用シミュレーション
さて、一番気になるのがコストです。ここでは、写真や動画を合計100GB保管した場合の費用をシミュレーションしてみましょう。
項目 費用
ストレージ料金(100GB) 0.00099×100GB=約0.099/月
年間合計 約$1.19/年
Google スプレッドシートにエクスポート
なんと、1年間でわずか約1.2ドル(日本円で約180円)です。これだけの低コストで大切な思い出を半永久的に保管できるのは驚きです。
6. まとめと今後の展望
本記事では、S3 Glacier Deep Archiveを活用した、子どもの写真永年保管アーキテクチャについて解説しました。
このアーキテクチャのメリット:
手間いらず: ライフサイクルルールにより、一度設定すれば自動的に長期保管。
低コスト: 驚くほど安価なストレージ料金。
高い耐久性: S3の99.999999999%という高い耐久性でデータロスの心配なし。
今回は手動アップロードとCLIを使いましたが、さらに自動化を進めるなら、AWS LambdaとAPI Gatewayを組み合わせて、スマートフォンアプリから直接アップロードできるようなシステムを構築するのも面白いでしょう。
育児は時間との戦いです。ITエンジニアとして培った技術で、日々のタスクを自動化し、大切な家族との時間を増やしていきたい。そんな想いから、今回のブログを執筆しました。
この記事が、同じ悩みを持つITエンジニアの皆さんの一助となれば幸いです。
安心安全のホワイト高還元SESに転職を考えている方へ
新しい挑戦に踏み出すことは、人生において重要な一歩です。 転職活動は自分自身を知り、成長する貴重な機会でもあり、夢や成長を追求するためには必要な要素の一つ になるかと思います。 どんな選択をされるにせよ、その決断があなたに取って素晴らしい未来を切り開くことを願っています! グラディートと一緒に誇れるエンジニアを目指しましょう!
■『株式会社グラディート』では受託開発・SES・ブランディングデザイン・事業コンサルティングなどを事業として行う都内のIT企業です。現在、不遇な待遇で困っているエンジニアさんは、ぜひ一度グラディートに相談してみてね!(年収査定・SESへの転職相談も承っております!)
株式会社グラディート採用情報はこちら▼
https://en-gage.net/gradito/
株式会社グラディート公式サイトはこちら▼
https://www.gradito.co.jp/
