こちらの投稿は2025 Japan AWS Jr.Championsの有志メンバーで作成した『30日間で主要AWSサービスを構築できるようになる』をテーマにした初学者向けのハンズオン問題集のDAY23になります!
問題集の趣旨や作成に至るまでの経緯は以下の記事をご覧いただければと思います。
📝 概要
| 項目 | 内容 |
|---|---|
| 所要時間 | 約2時間 |
| メインサービス | Amazon EC2, Amazon S3, AWS Storage Gateway |
| 学べること | EC2-S3間の各種マウント方法 |
| 想定費用 | 約500円(※稼働時間により変動します) |
⚠️ 注意:以下のリソースを削除し忘れると課金が継続します。
🎯 課題内容
EC2とS3の接続パターンをいくつかやってみましょう。
-
Linux - S3バケットをStorage GatewayでNFSマウント
-
Linux - CLIでS3バケット内のファイルを操作
📊 アーキテクチャ図
🔧 実装機能
- EC2にS3をマウントし、ファイルを操作できます。
💡 実装のヒント
セキュリティグループの設定
作成したリソース同士の繋がりを考え、「どのリソースが」「どのポートで疎通する必要があるか」を考えましょう。
✅ 完成後のチェックポイント
- (S3の場合)EC2内で作成・配置したファイルが、マネジメントコンソールから確認できる
🧰 使用資材
🔗 リファレンスリンク
- AWS Storage Gateway 公式ドキュメント
- AWS Storage Gateway - AWS Black Belt Online Seminar
- ファイルゲートウェイのセットアップ要件
🛠️ 解答・構築手順(クリックで開く)
解答と構築手順を見る
✅ ステップ0: 接続元EC2の準備
- AWS マネジメントコンソールを開く
- 「EC2」→「インスタンス」→「インスタンスを起動」
- パラメータは以下の通り。
AMI:Amazon Linux2023
セキュリティグループを作成
その他の項目は全てデフォルト - 入力項目を確認し、「インスタンスを起動」
✅ ステップ1: S3バケット の作成
-
AWS マネジメントコンソールを開く
-
「S3」→「バケットを作成」
-
パラメータは以下の通り。
バケットタイプ:汎用
バケット名:グローバル一意の値(例:handson-[名前]-[日付])
パブリックアクセスをすべてブロック:チェックを入れる
その他の項目は全てデフォルト -
入力項目を確認し、「バケットを作成」
✅ ステップ2: Storage Gatewayの作成
-
AWS マネジメントコンソールを開く
-
「VPC」→「セキュリティグループ」→「セキュリティグループを作成」
-
パラメータは以下の通り。
セキュリティグループ名:任意(作成後編集不可)
VPC:EC2と同じ
他はデフォルトで[セキュリティグループを作成]する。
※8.で追記を行うので、タブを残しておく。
-
「VPC」→「エンドポイント」→「エンドポイントを作成」
-
パラメータは以下の通り。
タイプ:AWSのサービス
サービス:com.amazonaws.[リージョン].storagegateway
VPC:接続元のEC2と同じVPC
DNS名を有効化:チェックを入れる
DNSレコードのIPタイプ:IPv4
サブネット:接続元のEC2と同じAZ・サブネット
セキュリティグループ:3.で作成したもの
他はデフォルトで[エンドポイントを作成]する。
-
「Storage Gateway」→「ゲートウェイ」→「ゲートウェイの作成」
-
パラメータは以下の通り。
ゲートウェイ名:任意の名前
ゲートウェイタイプ:Amazon S3 ファイルゲートウェイ
プラットフォームオプション:Amazon EC2
デフォルト設定を使用:チェックを入れる
VPCネットワーク:接続元のEC2と同じ
VPCサブネット:接続元のEC2と同じ
キーペア:任意のキーペア
[インスタンスを起動]し、[次へ]進む。
-
3.で使用していたセキュリティグループのタブに戻り、以下のインバウンドルールを追加する。
タイプ:HTTPS
プロトコル:TCP
ポート:443
ソース:7.で作成したEC2インスタンスのセキュリティグループ -
続いて、7.で作成したEC2インスタンスのセキュリティグループに以下2つのインバウンドルールを追加する。
タイプ:カスタムTCP
プロトコル:TCP
ポート:111
ソース:接続元のEC2のセキュリティグループタイプ:NFS
プロトコル:TCP
ポート:2049
ソース:接続元のEC2のセキュリティグループ -
接続元となるEC2インスタンスのセキュリティグループに、以下2つのインバウンドルールを追加する。
タイプ:カスタムTCP
プロトコル:TCP
ポート:111
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:カスタムTCP
プロトコル:TCP
ポート:2049
ソース:7.で作成したEC2インスタンスのセキュリティグループ -
StorageGateway用のセキュリティグループに、以下6つのインバウンドルールを追加する。
タイプ:カスタムTCP
プロトコル:TCP
ポート:1026
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:カスタムTCP
プロトコル:TCP
ポート:1027
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:カスタムTCP
プロトコル:TCP
ポート:1028
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:カスタムTCP
プロトコル:TCP
ポート:1031
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:カスタムTCP
プロトコル:TCP
ポート:2222
ソース:7.で作成したEC2インスタンスのセキュリティグループタイプ:HTTPS
プロトコル:TCP
ポート:443
ソース:接続元のEC2のセキュリティグループ -
7.のタブに戻り、Storage Gatewayの作成を進める。
パラメータは以下の通り。接続オプション:IPアドレス
IPアドレス:規定値
サービスエンドポイント:ホストされたVPC
既存のVPCエンドポイントを識別する方法を選択:VPCエンドポイントID
VPCエンドポイントID:5.で作成したもの
他のパラメータはデフォルトで作成・アクティブ化する。
✅ ステップ3: ファイル共有の作成
-
AWS マネジメントコンソールを開く
-
「Storage Gateway」→「ストレージリソース」→「ファイル共有」→「ファイル共有の作成」
-
パラメータは以下の通り。
ゲートウェイ:上記手順で作成したもの
ファイル共有プロトコル:NFS(Linuxの場合)、SMB(Windowsの場合)
- 入力内容を確認し、[ファイル共有の作成]を実施する
✅ ステップ4:動作確認
- EC2にサインインし、任意の名前でマウント用のディレクトリを作成する
mkdir storage01
- ステップ3で作成したファイル共有から確認したマウントコマンドでマウントし、確認する
df -h
- EC2側のディレクトリ内に配置したファイルを、マネジメントコンソールのS3側から確認する
touch test
🧹 片付け(リソース削除)
- EC2からアンマウント
- ファイル共有を削除
- Storage Gatewayを削除
- デプロイ先のEC2を削除
- VPCエンドポイント(StorageGateway用)を削除
- エンドポイント用セキュリティグループを削除
- デプロイ先のEC2用セキュリティグループを削除
🏁 おつかれさまでした!
この課題では Storage Gateway を用いたEC2 と S3 間でのファイル連携を通して、クラウドデータ管理スキルが身につきます。次回は応用編としてIoTサービスやデータ収集・分析サービスとの連携にも挑戦してみましょう!














