S3環境構築・公開設定


1. コレクション/S3バケット作成/オブジェクトアップロード

まずは、LIFFからアクセスするためのS3の作成、公開設定などを行います。

下記スクリプトを実行すると作成するS3バケット名の入力が求められますので、英数字、もしくはハイフンのみで、ユニークなS3バケット名を指定してください

~/environment/20200206_LIFF_HandsOn/tools/01_create_bucket.sh

このバケット名は以降の手順で利用しますので、メモ帳などに控えておいてください。

なお、このシェルスクリプトは下記のような実装となっております。

#!/bin/bash

echo -n "小文字/数字/ハイフンのみで構成されるバケット名を入力して下さい(ex: 20200206-ryoishim-handson):"
read input

while true;
do
  aws s3api create-bucket --bucket ${input} --region ap-northeast-1 --create-bucket-configuration LocationConstraint=ap-northeast-1 2> /dev/null
  if [ $? == 0 ]; then
    echo "バケットの作成に成功しました"
    echo "必要な資材をアップロードします"
    aws s3 sync /home/ec2-user/environment/20200206_LIFF_HandsOn/handson-1/ s3://${input}/
    if [ $? != 0 ]; then
      echo "【ERROR!!】バケットへのアップロードが失敗しました。サポートメンバーにお声がけください。"
      exit 1
    fi
    echo "バケットの公開設定を変更します"
    aws s3api put-bucket-policy \
      --bucket ${input} \
      --policy '{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AddPerm",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::'"${input}"'/*"
            }
        ]
    }'
    if [ $? != 0 ]; then
      echo "【ERROR!!】バケットの公開設定変更が失敗しました。サポートメンバーにお声がけください。"
      exit 1
    fi
    echo "バケットの公開設定を変更しました"
    break
  else
    echo "既にそのバケットは存在します、もしくは入力されたバケット名が適切ではありません。"
    echo -n "小文字/数字/ハイフンのみで構成されるバケット名を入力して下さい(ex: 20200206-ryoishim-handson):"
    read input
  fi
done

echo "全ての処理が正常に完了しました"
echo "下記のURLにアクセスし、ページが表示されることを確認してください"
echo "https://${input}.s3-ap-northeast-1.amazonaws.com/index.html"


exit 0

この操作により、バケット作成・資材のアップロード・コンテンツの公開設定が完了しました。

ここで、コマンド実行結果の指示通り、下記URLにブラウザからアクセスし、htmlファイルが表示できることを確認しておきましょう。

https://YourS3BucketName.s3-ap-northeast-1.amazonaws.com/index.html
※バケット名はご自身のものに書き換えてください。

htmlの表示が確認できましたら、LIFFの設定に移ります。