始めに
実務でminioを用いて自社規定のファイルサーバーを構築する案件に入った。minioはawsのs3に互換性があり、性能も今のところ気にしないレベルで高いので個人開発でも取り入れていきたいと思ってる。
そんな折、minioでawsの仕組みやコマンドを調べる機会が多くなってきたのでどうせならSAA取得に向けて勉強をしてみようと思った次第である。完全に個人のアウトプットです。
前提
- アプリ側実装(Rubyとか、react)1年ちょい
- Azure案件に半年関わってた
- 現在minioを用いてファイルサーバ構築中
ストレージ周りの用語集
- AMI
ソフトウェア構成を記録したテンプレのこと。AmazonMachineImage。EC2インスタンスを作成するためのテンプレート(OS、メモリ、CPU)バックアップに使える。別リージョンにコピー可能。 - IAM
AWSリソースへのアクセスを安全に管理するためのサービス。Identity and Access Management。 - EC2
サーバー構築サービス。OSを乗せた仮想環境をクラウド上に作ることができる - S3
クラウド型のオブジェクトストレージ - DynamoDB
フルマネージドNoSQL
S3とは(SimpleStorageService)
- 高い耐久性、容量無制限
- ファイルストレージと異なり、ディレクトリ構造を持たない
- メタデータ(付加情報)を定義できる
- 複数のAZに複製し、冗長性をもたせる(AZ、アベイラビリティゾーン。リージョン内のデータセンター単位)
- バージョニングやMFAのより誤作動を防ぐ
- 強い整合性を持つ
S3の用途
- バックアップ
AWSのバックエンドサービス(EBSのスナップショットに使われる) - データレイク
ビックデータを保存する容器のこと - 静的コンテンツ
(HTML/CSS)のホスティング。(動的言語はEC2にホスティング)
S3の構成要素
- バケット
保存領域のこと。一意の名称を持つ - オブジェクト
データそのもの。一意のURLを持つ - メタデータ
作成日時、サイズなど。どんな情報をもたせるかユーザーがカスタマイズする
S3関係で試験でそうなとこ(個人感触)
- 耐久性と可用性の違い
耐久性はイレブンナイン(9が11桁並ぶくらい強固)だが可用性(ダウンタイムのリスクの低さ)は99.99% - STANDARD > STANDARD-IA > ONEZONE-IAのレベル
STANDARD-IA
はコールド層のような考え。読み取りで従量課金。
ONEZONE-IA
は単一のAZのみで構成。安い代わりにそのAZが障害起きるときつくなる。
間を取ったINTELLINGENT-TIERINGもある。最初はSTANDARD。何もしないと該当ファイルは30日後にSIAに落ちる。 - Glacierの部分
アクセス頻度が低いデータのバックアップ。安価なアーカイブ。
速度が高速(1~5分)、標準(3~5時間)、バルク(5~12時間)のオプションがある。