![見出し画像](https://assets.st-note.com/production/uploads/images/135462490/rectangle_large_type_2_e8531c79089cc9b72c2e4ae3e3e3f4ea.png?width=1200)
【AWS・aws_s3】拡張機能をAWS環境にインストールする
本稿は、私がAWSを学習しながら備忘録として書いたものです。
あくまでも私の理解を支援するための記事としてまとめているので、読みづらい点ご容赦ください。
前提.Teratermからすでにログインした状態であること
手順1.インストールコマンドを打つ
1つ目:CREATE EXTENSION aws_s3 CASCADE;
2つ目:GRANT USAGE ON SCHEMA aws_s3 TO XXXXX;
3つ目:GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA aws_s3 TO XXXXX;
※「GRANT」となればOKです。
手順2.「\dx」でインストール状況を確認する
このような表になっていればOK。
![](https://assets.st-note.com/img/1711685431159-DpFuNJ1raB.png?width=1200)
補足.すべての階層へインストールする必要がある
ユーザー=> \c データベース名
で、各データベースにログインし、拡張機能を使いたい全データベースに対して、インストールする必要があるので、ご注意ください。
Top階層のデータベースだけに拡張機能を入れても、その後動かしたらアクセスできないと言われた、などに繋がります。
![](https://assets.st-note.com/img/1711685703840-rqqcAgo9sA.png?width=1200)
「schema "aws_s3" does not exist」などが出たら、拡張機能が当該データベースに入っていないことを示しているので、インストールしましょう。
「Error could not upload to Amazon S3」「Detail Amazon S3 client returned Unabled to connect to endpoint」と出たら拡張機能はインストールできているが、AWSから外へのHTTPS接続許可として、アウトバウンド設定がされていないことになるので、そちらも併せて設定していきましょう。
![](https://assets.st-note.com/img/1711687432374-fwF6Co0KRb.png)
AWSのサービス内からS3にアクセスするには、インターネット経由かエンドポイント経由かのどちらかになる。RDSが動いているSubnetにS3のエンドポイントが設定されているかを確認する。