LoginSignup
0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

AWSのEC2とS3を使って写真共有サービスを作成する

Last updated at Posted at 2024-07-09

AWSのEC2とS3を使って写真共有サービスを作成する

写真を保存するS3バケットを作成する
WebサーバーとなるEC2を起動する
S3 Bucketにアクセス可能なIAMポリシーを作成する
EC2が使用するIAMロールを作成する
EC2にIAMロールを設定する
EC2のセットアップをする

写真を保存するS3バケットを作成する

記載中

WebサーバーとなるEC2を起動する

  1. サービス一覧から「EC2」を選択する
  2. 「インスタンス起動」を選択
  3. Launch an instaceのページが開くので、「名前とタグ」に適当な名前を付ける。今回は
    PhotoShareWebServer
  4. スクリーンショット 2024-07-09 200642.png
  5. OSはUbuntuを選択
  6. 「Ubuntu マシンイメージAMI」と「アーキテクチャ」はデフォルトのまま
  7. 「インスタンスタイプ」はt2.microを今回は選択した。利用料と相談して、今後変更も検討する
  8. 「キーペア」はキーペアなしで続行(推奨されません)
  9. 「ネットワーク設定」の「ファイアウォール (セキュリティグループ)」はセキュリティグループを作成
    セキュリティグループのルールは後々検討する
  10. ストレージ設定はデフォルト
  11. 「インスタンスを起動」を選択する

S3 Bucketにアクセス可能なIAMポリシーを作成する

※特定のバケットにのみアクセス許可を与える場合に作成する。
すべてのバケットにアクセス可能にして良いのなら、AmazonS3FullAccessを使用すればよい。

  1. サービス一覧から「IAM」を選択する
  2. 左側のメニューから「ポリシー」を選択する
  3. 右上の「ポリシーの作成」ボタンをクリック
  4. 「ポリシーエディタ」で「JSON」を選択する
  5.  ポリシーエディタに以下をコピペする
    photopublicが今回許可を与えたいバケット
ポリシーのJSON
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::photopublic"
            ]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::photopublic",
                "arn:aws:s3:::photopublic/*"
            ]
        }
    ]
}

EC2が使用するIAMロールを作成する

  1. サービス一覧から「IAM」を選択する
  2. 左側のメニューから「ロール」を選択する
  3. 右上の「ロールを作成」ボタンをクリック
  4. 「信頼されたエンティティタイプ」は「AWSのサービス」を選択する
  5. 「ユースケース」の項目で「EC2」を選択して次へ
  6. 「許可ポリシー」で先ほど作成したポリシーを選択する
  7. 次へを選択して、ロール名に適当な名前を付ける。今回はEC2-PhotoPublic-Access
  8. 「ロールを作成」をクリックする

EC2にIAMロールを設定する

  1. サービス一覧から「EC2」を選択する
  2. 左のメニューから「インスタンス」を選択する
  3. 作成したPhotoShareWebServerを選択して
  4. 右上の「アクション」から「セキュリティ」→「IAMロールを変更」
  5. 作成したロールEC2-PhotoPublic-Accessを選択する
  6. 「IAMロールの更新」ボタンをクリックする

EC2のセットアップをする

  1. サービス一覧から「EC2」を選択する
  2. 左のメニューから「インスタンス」を選択する
  3. 作成したPhotoShareWebServerを選択して「接続」をクリックする
  4. 接続タイプ「EC2 Instance Connect を使用して接続する」を選択する
  5. 「ユーザー名」はデフォルトのUbuntuのまま「接続」をクリックする
  6. コマンド入力の画面が開く
$ sudo su
@ apt update -y
@ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
@ unzip awscliv2.zip
@ apt install unzip
@ unzip awscliv2.zip
@ ./aws/install 
@ exit
$ mkdir photopublicS3
$ mount-s3 photopublic photopublicS3/

これでphotopublics3フォルダにS3のphopublicがマウントされる

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