2021/05/17

AWSファイル共有が可能になるサービス「Amazon S3」について詳しくご紹介

 
  

AWSファイル共有とは?


AWSファイル共有とは、Amazon Web Services(以下AWS)のストレージサービスを利用して、インターネットを介したデータの受け渡しを行うことです。

AWSが提供しているストレージサービスを利用してファイル共有するには、以下に示すようにいくつかの方法があります。

  • Amazon Simple Storage Service(以下 Amazon S3)
  • Amazon Elastic File System(以下Amazon EFC)
  • AWS Storage Gatewey
  • AWS Transfer Family
  • AWS Data Sync

Amazon S3は、クラウド上にデータを保管するサービスで、アクセス方法も多数用意されています。

Amazon EFCは、CLIからDNSまたはIPアドレス経由でマウントして使用するタイプのストレージで、Amazon S3とのデータ転送にAWS Transfer Familyを使用します。

AWS Storage Gateweyはファイルサーバとして仮想マシンを立てることで、Amazon S3へのアクセスを実現するサービスです。

AWS Data Syncは、オンプレミスとAWS間でのデータ転送を高速化および自動化するために使用するサービスです。

ここではAmazon S3に焦点を当て、インターネットを介したAWSユーザーとAWSアカウントを持たない不特定多数の相手とファイル共有することに重きを置いて記載します。

Amazon S3とは?


業務用データの格納、アーカイブデータやテープの代替など、バックアップに適した機能やデータ転送機能、ファイル共有の機能などを持つストレージサービスです。

AWSの各サービスのストレージとしても機能する他、個人間でファイル共有をする際にも使用することができます。個人間でファイル共有を実現するには、署名および有効期限付きのダウンロード用URLを使用します。

これには、AWS Identity and Access Management(以下AWS IAM)とAWS CLIの機能を組み合わせる必要があり、発行したURLを送り合うことで、遠距離間でのセキュアなファイル共有が実現できます。

この手順については記事の最後に記載していますので、最後まで読んでぜひ試してみてください。

この他にも、Amazon S3に保管したデータへのアクセス方法は多岐にわたりますが、先ずはWebブラウザを使用したAWSマネジメントコンソールからバケットの作成やデータのアップロードなどをAWS無料枠の中で行うところから始めることができます。

AWS IAMとは?

AWSに保管しているデータへのセキュアなアクセスを実現するための、認証サービスです。WebブラウザからAWSマネジメントコンソールにログインすることでアクセス権を管理します。

ファイル共有を行う際には、AWS IAMによって発行したアクセスキーを使ってファイル共有用のURLを発行します。

アクセス管理はバケットやIAMユーザー、グループ等の各オブジェクトにIAMポリシーを適用することで実現します。

Amazon S3の7つの機能


Amazon S3において、ストレージを使用する目的や場面に応じて、全7種類の「ストレージクラス」という概念に分けてサービスが展開されています。

利用料金の請求もこのストレージクラスごとに単価が異なるため、使用方法や保存方法の違いをしっかりと抑えておくことがAmazon S3を利用する上で必要な知識になります。

データへのアクセスは、S3コンソール、AWS SDK、AWS CLIなどを利用します。S3コンソールを使用したデータへのアクセスは無料枠ですぐに体験できます。

Amazon S3にデータをアップロードする際に、どのストレージクラスにするのかを選びます。

アクティブデータをAWSに保管する4つの機能

使用目的に汎用性があるのが「Amazon S3 標準」、アクセス頻度別の階層4つを用いてスループットを意識した管理ができるのが「Amazon S3 Intelligent-Tiering」です。

そして、バックアップデータの保存に適しているのが「Amazon S3 標準 – 低頻度アクセス(IA)」です。

これら3つのストレージクラスは、3つ以上のアベイラビリティーゾーンに保存することで可用性の高さを活用できます。

対照的に、1つのアベイラビリティーゾーンでのみ保存され、より低コストで利用することができるストレージクラスに「Amazon S3 1 ゾーン – 低頻度アクセス(IA)」があります。

これら4つのストレージクラスは、アクティブなデータの保管に適しており、1つのバケット内に混在させることができるので、必要に応じて仕様を変更することになります。

アーカイブデータをAWSに保管する2つの機能

「Amazon S3 Glacier」は、データのアーカイブ先に適しています。必要に応じて上4つのいずれかのストレージクラスへ、数分から数時間かけてデータを転送することもできます。

「Amazon S3 Glacier Deep Archive」は、磁気テープの代替となるような機能を備えており「Amazon S3 Glacier」を補完する位置づけにあります。3つ以上のアベイラビリティーゾーンにコピーして保存されるため高可用性も併せ持っています。

ここまでのアクティブデータ、およびアーカイブデータを保存するための6つのストレージクラスはGB単位での料金加算形式を採用しており、保存容量や転送容量に応じた課金システムが適用されます。

AWS Outposts環境専用の機能

「S3 Outposts」は、Amazon S3 on Outpostsのサービス内で利用するストレージクラスです。オンプレミスの AWS Outposts環境でAmazon S3を利用できるように用意されたのがこのストレージクラスです。

機密なデータなど、そのデータの保管場所が制限されている場合などに適したストレージクラスです。

Amazon S3 on Outpostsでは、サーバ機材へのパッチ適用などをAWSのサービスからインターネット経由で自動管理することで、メンテナンス性を向上させることができます。

AWS コマンドラインインターフェイス(CLI)を使用してAmazon S3 にデータを転送することで、アーカイブ保存することもできます。

他6つとは料金体系も異なり、無料枠では使用できないストレージクラスで、月額制での課金になります。

Amazon S3のメリット5つ


機能が充実しているAmazon S3ですが、実際に使用する際はどのようなメリットがあるのでしょうか。

ここからは、Amazon S3のメリットを5つに分けて紹介していきます。

メリット1:パブリックアクセスを設定一つでブロックできる

Amazon S3のメリット1つ目は、パブリックアクセスを設定1つでブロックできることです。

Amazon S3に作成したバケットに対して「パブリックアクセスをすべて ブロック」という設定を行うことで、セキュアな環境の保持が可能です。

メリット2:バージョニング機能が使える

Amazon S3のメリット2つ目は、バージョニング機能が使えることです。

Amazon S3に保存したデータの全バージョンを保存する機能を有効にすることで、任意のバージョンに復元することができます。

メリット3:使用状況をモニタリングすることができる

Amazon S3のメリット3つ目は、使用状況をモニタリングすることができることです。

割り当てた容量を超過しそうになるとアラートを発するなど、イベント通知を設定してユーザーへの指示を促すことができます。

メリット4:データ転送において複数のソリューションがある

Amazon S3のメリット4つ目は、データ転送において複数のソリューションがあることです。

冒頭でご紹介した、AWS Storage GatewayやAWS Transfer Family、およびAWS Data SyncなどAmazon S3へのデータ転送サービスは多岐にわたります。

サードパーティー製のサービスなどもあるので、既存システムとの相性や実現したい機能で選ぶことになります。

メリット5:7つのストレージクラスによってアクセスの最適化ができる

Amazon S3のメリット4つ目は、7つのストレージクラスによってアクセスの最適化ができることです。

アクセス頻度を分析し、アクセス頻度の低いデータを低頻度アクセス層に自動で移動させることなどができます。低頻度アクセス層はより安価な料金が設定されているので、コスト削減にも役立つ機能です。

Amazon S3を使ってファイル共有してみよう!


ここでは、署名・有効期限付きURLを発行することで、AWSアカウントを持っていない人とも、インターネットを介してファイル共有を行う方法についてご紹介します。

AWSには無料枠があり、Amazon S3も5Gまでは12カ月間無料で使用することができます。

今回は、AWS CLIの環境をご自身の既存PCにインストールするのではなく、無料枠内で使用可能なAmazon EC2と呼ばれる、クラウドに仮想マシンを作成できるサービスを使うことで、その仮想マシンにAWS CLIをインストールしてURLを発行します。

  • AWSアカウントを作成します。
  • AWSマネジメントコンソールにログインしてAmazon S3にバケットを作成します。
  • 作成したバケットにフォルダを作成し、共有したいデータをアップロードします。
  • AWSマネジメントコンソールから、IAMマネジメントコンソールを起動します。
  • IAMマネジメントコンソールでIAMユーザーとグループを作成します。
  • 作成したグループにIAMポリシー「Amazon S3 ReadOnlyAcsess」を適用します。(「アクセス許可の追加」から設定できます)
  • IAMユーザーの「認証情報」からアクセスキーを作成します。(キー情報をcsvダウンロードしておく)
  • AWSマネジメントコンソールからEC2コンソールを起動します。
  • EC2インスタンスを新規作成します。(すべて規定値で作成した場合、OSはAmazon Linux 2 AMIになります)
  • EC2インスタンスに接続します。(Linuxのコンソールが開きます)
  • EC2インスタンスにAWS CLIをインストールします。
  • AWS CLIのaws configureコマンドで認証情報を設定します。(手順7で取得したアクセスキーを指定します)
  • AWS CLIのaws s3 presignコマンドに手順3でアップロードしたデータのS3 URLを指定して実行することで、署名・時間制限付きのURLを発行します。(–expires-inオプションの指定をしない場合は1時間の有効期限が付きます)

ここに記載した以外でも、AWSマネジメントコンソールを介して、IAMユーザーを使い、同じフォルダにアクセスすることでデータ共有を実現する方法などもあります。

上記の手順を一度試してみることで、ポリシーの適用など、必要な用語に一通り触れることができます。ぜひ試してみましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】