# 📌 今日学んだことまとめ:NFS / S3 / Google Drive / CloudFront / SQS FIFO
---
## ✅ 1. NFS(Network File System)とは?
- ネットワーク越しにファイルシステムをマウントして、ローカルのように操作可能なプロトコル
- 主にUNIX/Linux環境で使われる
- サーバーの `/etc/exports` で共有フォルダを定義し、クライアントは `mount` コマンドで使用
### 🔹 特徴
- ローカルファイルのように使える
- LAN内でのファイル共有に最適
- 認証が弱いため、外部公開には不向き
---
## ✅ 2. Amazon S3との違い
| 比較軸 | NFS | Amazon S3 |
|--------|-----|-----------|
| ストレージ種別 | ファイルシステム | オブジェクトストレージ |
| 接続方法 | mount(POSIX準拠) | HTTP API(GET/PUT) |
| 拡張性 | 手動スケーリング | 自動スケーリング |
| 認証 | 弱い(IPベース) | IAM、ポリシーで制御可能 |
| 編集方法 | 直接編集可能 | オブジェクトごとに置き換え |
---
## ✅ 3. Google Driveはどちらに近いか?
- 内部構造はオブジェクトストレージに近い(S3型)
- UIやGoogle Drive for Desktopを通じてNFS風に操作可能
- REST API でアクセス可能(S3と似た構造)
---
## ✅ 4. CloudFrontとEdge Location
- **Amazon CloudFront**:AWSのCDN(コンテンツ配信ネットワーク)サービス
- **Edge Location**:CloudFrontが世界中に設置したキャッシュサーバーの場所
### 🔹 仕組み
- 最初のリクエストはS3などのオリジンから取得し、Edge Locationにキャッシュ
- 以降は最寄りのエッジから高速に配信
- 費用削減+パフォーマンス向上の最適解
---
## ✅ 5. SQS FIFOキュー
- メッセージを送信順に**正確に処理**し、**重複なし**で届けることができるキュー
- 標準キューと違い、順序が非常に重要な処理に向いている
### 🔹 特徴
- 順序保証(First-In-First-Out)
- MessageGroupIdで並列性を制御
- DeduplicationIdで重複排除
- 処理スループットに上限あり
### 🔹 使用例
- 注文処理フロー(例:注文 → 決済 → 出荷)
- 銀行トランザクション処理
- SNSタイムライン投稿の順序保持
### 🔹 コード例(Node.js)
```ts
import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs'
const client = new SQSClient({ region: 'ap-northeast-1' })
const command = new SendMessageCommand({
QueueUrl: 'https://sqs.ap-northeast-1.amazonaws.com/123456789012/my-queue.fifo',
MessageBody: '注文データ',
MessageGroupId: 'order-123',
MessageDeduplicationId: 'order-123-001'
})
await client.send(command)