Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ツクリンクで実践している 画像処理

Tetsu Nishimura
September 17, 2024
5

ツクリンクで実践している 画像処理

Tetsu Nishimura

September 17, 2024
Tweet

Transcript

  1. AWS Cloud
 CloudFront
 S3
 User(Frontend) 
 Application
 ImageMagick
 Ruby on

    Rails
 ECS
 ALB
 DB
 画像アップロードの処理の流れ
  2. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 フォームで画像を選択した時点で 
 S3へアップロードするための1時的な事前署名付きURLをリクエスト 
 DB
 User(Frontend) 
 画像アップロードの処理の流れ
  3. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 事前署名付きURL(tmpディレクトリ)に 
 画像をアップロードしてURLを取得 
 DB
 User(Frontend) 
 画像アップロードの処理の流れ
  4. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 FormをSubmitしてImageレコードがcreateされる 
 DB
 Imageレコードがcreate 
 tmpのurlを記録 
 User(Frontend) 
 画像アップロードの処理の流れ
  5. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 画像の軽量化処理を 
 非同期のActiveJobで実施 
 DB
 User(Frontend) 
 画像アップロードの処理の流れ
  6. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 DB
 User(Frontend) 
 画像には1時的にtmp画像にCloudFrontでアクセスできるようになる 
 画像アップロードの処理の流れ
  7. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 Imageレコードを 
 軽量化した画像のURLに更新 
 DB
 User(Frontend) 
 画像アップロードの処理の流れ
  8. AWS Cloud
 CloudFront
 S3
 Application
 ImageMagick
 Ruby on Rails
 ECS


    ALB
 DB
 User(Frontend) 
 軽量化した画像にCloudFrontでアクセスできるようになる 
 画像アップロードの処理の流れ
  9. 縮小
 メタデータ
 削除
 webp変換
 解像度: 3840px x 2160px 容量: 1,531,760

    バイト(1.5MB) 解像度: 1200px x 675px 容量: 111,911 バイト(115 KB) 現在軽量化で実施していること