0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ActiveStorageとS3の初心者まとめ

Posted at

はじめに

こんにちは、メダカです。今回は私のポートフォリオでAWSが提供しているサービスである「S3(Amazon Web Services)」を取り入れたいと思い調べた内容を共有いたします。

ActiveStorageとS3について

S3を調べているとどうやら、ActiveStorageをまずは理解していないといけないっぽい。ということで、調べました。

ActiveStorage

公式には、「Active Storage を使用すると、Amazon S3、Google Cloud Storage、Microsoft Azure Storage などのクラウド ストレージ サービスにファイルをアップロードし、それらのファイルを Active Record オブジェクトに添付することができます。」とのことです。
なるほど、、、全く理解できませんでした。ということでもう少し調べてみると、分かってきました。
簡単に一言で言えば、railsに標準で装備されている「ファイル管理の仕組み」のことらしい。これがあることで、画像や動画、PDFなどのファイルをアップロードしたり表示ができる。

ActiveStorageの役割
①ファイルのアップロード

ユーザーが画像や動画をアプリにアプロードできます。今回の私はこの機能を使用して、筋トレの自撮り動画を送るシステムを考えています。

②外部ストレージとの連携

また難しい単語が出てきましたが、これはActiveStorageがローカル上のファイル保管庫だとしたら、外部ストレージはクラウドストレージ上(S3など)のファイル保管庫のことです。つまり、ローカルで容量などが足りない時などに外部ストレージと連携がすぐできる。今回はこちらも実践します。

③ファイルのデータを保存(アタッチ)

ユーザーがファイルをアップロードした時に、ファイル本体は指定したストレージ(ローカルや外部)に保存されます。そして次にファイル情報がactive_storage_blobsに保存され、モデルとの紐付け情報(これがアタッチというらしい)がactive_storage_attachmentsに保存される。勝手にモデルとの紐付けをしてくれるのはすっごく便利ですね。

S3(Amazon Simple Storage Service)

AWSが提供しているオンラインストレージサービス。ユーザーの規模が多くなったときの利用負荷の増大に対応できることや、優れた可用性、セキュリティなどを提供しています。

手順

用意しておくこと

以下の2つのアカウントを用意します。
・AWSアカウント
・IAMユーザー

S3バケット(S3におけるフォルダという認識)

まずはAWS CLIでバケットの作成をするので、インストールします。

bash
brew install awscli

次にIAMユーザーの情報をもとにAWS CLIの設定をします。

bash
aws configure

上記のコマンドを入力するとIAMユーザーのAccess Key IDやSecret access Keyなどが求められるので入力してください。
いよいよバケットの作成です。

bash
aws s3 mb s3://バケット名

上記のコマンドでバケットの作成は完了です。
もし、パブリックアクセスの設定等が必要な場合はここで、コマンドを入力します。ここら辺はまだ理解が浅いところです。。。

Active Storageの設定

こちらはActive Storageのガイドを参考にしたところ簡単にできました。

config/storage.yml
amazon:
    service: S3
    access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
    secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
    region: ap-northeast-1
    bucket: バケット名

コメントアウトされているところを外して修正すると良いです。

以上でActiveStorageとS3の設定が完了しました。

終わりに

なかなかこれらを暗記はできませんが、何度も使っているうちに覚えてくる日を願い、今日も勉強を進めていきます。ここまで閲覧いただき誠にありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?