1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

S3にコンテナデータを保存

Posted at

ハンズオン教材を使って、S3にコンテナデータを保存をしたので備忘録として残します。

インストール

AWS CLI をインストールします。

pip install --upgrade --user awscli

アクセスキーID とシークレットアクセスキーを使用します。
us-east-1デフォルトのリージョンとして使用します。
出力は今回はjsonとします。

aws configure
AWS Access Key ID [None]: xxxx
AWS Secret Access Key [None]: xxxx
Default region name [None]: us-east-1
Default output format [None]: json

資格情報をユーザーにrootをコピーします。

sudo cp -r ~/.aws /root

s3fs-fuseインストールします。

sudo yum install s3fs-fuse -y

バケット設定

サーバーにマウントポイントを作成します。

sudo mkdir /mnt/widget-factory

S3 バケットをマウントします。

export BUCKET=xxxx

AWSの請求額を抑えるためS3への余計な呼び出し減らすには、use_cacheマウント時にオプションを設定して、ローカルファイルシステムのキャッシュを有効にします。

sudo s3fs $BUCKET /mnt/widget-factory -o allow_other -o default_acl=public-read -o use_cache=/tmp/s3fs

ll /mnt/widget-factory
total 0

ll
total 0
drwxrwxr-x. 4 xxxx xxxx 29 Oct  8 23:42 widget-factory-inc

ウェブサイトのファイルをバケットにコピーします。

cp -r ~/widget-factory-inc/web/* /mnt/widget-factory

ファイルがフォルダーにあることを確認します。

ll /mnt/widget-factory
total 13
drwxrwxr-x. 1 cloud_user cloud_user    0 Oct  9 02:09 img
-rw-rw-r--. 1 cloud_user cloud_user 3059 Oct  9 02:09 index.html
-rw-rw-r--. 1 cloud_user cloud_user 2910 Oct  9 02:09 quote.html
-rw-rw-r--. 1 cloud_user cloud_user 2611 Oct  9 02:09 support.html
-rw-rw-r--. 1 cloud_user cloud_user 2645 Oct  9 02:09 widgets.html

ファイルがS3バケットにあることを確認します。

aws s3 ls s3://$BUCKET
                           PRE img/
2022-10-09 02:09:31       3059 index.html
2022-10-09 02:09:32       2910 quote.html
2022-10-09 02:09:32       2611 support.html
2022-10-09 02:09:32       2645 widgets.html

DockerコンテナでS3バケットファイルの設定

Webサイトを提供するコンテナを実行します。
バケットをマウントし、WebサーバーのHTTPポートを公開します。

docker run -d --name web1 -p 80:80 --mount type=bind,source=/mnt/widget-factory,target=/usr/local/apache/htdocs,readonly httpd:2.4

ファイルに先ほどの設定が反映されているか確認します。

ll /tmp/s3fs/
total 0
drwxr-xr-x. 3 root root 93 Oct  9 02:09 widgetfactory-xxxx

ll /tmp/s3fs/widgetfactory-xxxx
total 16
drwxr-xr-x. 2 root root   76 Oct  9 02:09 img
-rw-------. 1 root root 3059 Oct  9 02:09 index.html
-rw-------. 1 root root 2910 Oct  9 02:09 quote.html
-rw-------. 1 root root 2611 Oct  9 02:09 support.html
-rw-------. 1 root root 2645 Oct  9 02:09 widgets.html

ブラウザでパブリックIPを入力し、Webページを表示します。

既存のページのコピーを作成して、バケット内にnewPage.htmlという新しいページを作成します。

cd /mnt/widget-factory/
cp index.html newPage.html

ブラウザーで下記の新しい Web ページを表示します。
http://<パブリックIP>/newPage.html。

新しい Web ページが S3 バケットにあることを確認します。

aws s3 ls $BUCKET
                           PRE img/
2022-10-09 02:09:31       3059 index.html
2022-10-09 02:23:05       3059 newPage.html
2022-10-09 02:09:32       2910 quote.html
2022-10-09 02:09:32       2611 support.html
2022-10-09 02:09:32       2645 widgets.html
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?