見出し画像

AWS EFS を図解で完璧に理解!ソリューションアーキテクト – アソシエイト


EFSとは?

EFS (Elastic File System) は、フルマネージドなNFSサービスです。

  • フルマネージド: AWSがEFSのインフラストラクチャを管理してくれるため、ユーザーはストレージの管理に時間を割く必要がありません。

  • NFS (Network File System): Linuxなどで広く利用されているファイル共有システムです。EFSはNFSインターフェースを提供するため、Linuxインスタンスから簡単にマウントして利用できます。

特徴

  • 容量無制限

  • 複数のEC2インスタンスから同時アクセス可能

  • 高い耐久性(イレブンナイン)と可用性(最大フォーナイン)

ユースケース

  • ウェブサイトのコンテンツストレージ

  • ビッグデータ分析

  • メディア処理

  • アプリケーションのコードリポジトリ

図解

```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph LR
    EFS(("EFS\n(Elastic File System)"))
    EC2_1(("EC2"))
    EC2_2(("EC2"))
    EC2_3(("EC2"))

    EC2_1 -->|NFS| EFS
    EC2_2 -->|NFS| EFS
    EC2_3 -->|NFS| EFS

    subgraph "EC2 インスタンス"
        EC2_1
        EC2_2
        EC2_3
    end

```

EFSの構成要素

EFSは、「ファイルシステム」と「マウントターゲット」という2つの主要な構成要素から成り立ちます。

  • ファイルシステム: ファイルを保存するための論理的なストレージ領域です。VPC内に作成され、複数のAZにまたがってデータを複製することで高可用性を実現します。

  • マウントターゲット: ファイルシステムへのアクセスを提供するエンドポイントです。各AZにマウントターゲットが作成され、EC2インスタンスはそのマウントターゲットを介してファイルシステムにアクセスします。

図解

```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph LR
    subgraph "VPC"
        subgraph "AZ 1"
            MT1(("Mount Target"))
        end
        subgraph "AZ 2"
            MT2(("Mount Target"))
        end
        subgraph "EFS"
            FS(("File System"))
        end
        FS --- MT1
        FS --- MT2
    end
    subgraph "EC2 インスタンス (AZ 1)"
        EC2_1(("EC2"))
    end
    subgraph "EC2 インスタンス (AZ 2)"
        EC2_2(("EC2"))
    end
    EC2_1 -->|NFS| MT1
    EC2_2 -->|NFS| MT2

```

パフォーマンスモード

EFSには、以下の2種類のパフォーマンスモードがあります。

  • 汎用パフォーマンスモード (General Purpose): ほとんどのワークロードに適したデフォルトのモードです。レイテンシとスループットのバランスが取れています。

  • 最大I/Oパフォーマンスモード (Max I/O): 大量の小さなファイルを読み書きするワークロードに適しています。スループットを最大化しますが、レイテンシがわずかに増加します。

図解

```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph LR
    EFS(("EFS")) --> GP["汎用パフォーマンス\n(General Purpose)\n- デフォルト\n- バランス重視"]
    EFS --> MI["最大I/Oパフォーマンス\n(Max I/O)\n- 高スループット\n- レイテンシ増加"]

```

スループットモード

EFSには、以下の2種類の スループットモードがあります。

  • バーストスループットモード (Bursting Throughput): 使用中のストレージ容量に応じてスループットが自動的に拡張されます。ほとんどのワークロードに適したデフォルトのモードです。

  • プロビジョニングスループットモード (Provisioned Throughput): 安定したスループットが必要なワークロードに適しています。スループットを事前に指定することで、必要なパフォーマンスを確保できます。

図解

```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph LR
    EFS(("EFS")) --> BT["バーストスループット\n(Bursting Throughput)\n- 容量に応じてスループット拡張\n- デフォルト"]
    EFS --> PT["プロビジョニングスループット\n(Provisioned Throughput)\n- 安定したスループット\n- 事前定義"]

```

まとめ

EFSは、スケーラブルで高可用性なファイルストレージサービスであり、複数のEC2インスタンスから同時にアクセスできます。パフォーマンスモードとスループットモードを適切に選択することで、ワークロードに最適なパフォーマンスを実現できます。

この記事が気に入ったらサポートをしてみませんか?