Slide 1

Slide 1 text

AWS Lambda with AWS DataSync で実現する サーバレスファイル転送システム NRI ネットコム株式会社 西 洋平 NRI Netcom tech and design study #7 2023 年 05 月 31 日 #nncstudy

Slide 2

Slide 2 text

はじめに u 自己紹介 u 西 洋平 (にし ようへい) u 2020 年新卒入社 (4 年目) u AWS 上に構築された Web システムの運用/改善や PoC に従事 u Award u Japan AWS Jr. Champions (2023) u APN ALL AWS Certifications Engineers (2023) #nncstudy 1

Slide 3

Slide 3 text

#nncstudy 2 今日のお話 オンプレミスのファイル転送システムを AWS DataSync ベースに改修 & AWS 上へ移行した話 (入社 1~2 年目の新人の頃にやってた話)

Slide 4

Slide 4 text

#nncstudy 3 今日のお話 オンプレミスのファイル転送システムを AWS DataSync ベースに改修 & AWS 上へ移行した話 (入社 1~2 年目の新人の頃にやってた話) 元々どういう構成だったの? 改修してどうなったの? AWS DataSync って? よかった / 注意するポイントは?

Slide 5

Slide 5 text

以降のスライドでは以下の語句について省略した形で表記します #nncstudy 4 用語について

Slide 6

Slide 6 text

#nncstudy 5 AWS DataSync 導入前の構成 Application

Slide 7

Slide 7 text

#nncstudy 6 AWS DataSync 導入前の構成 Application 定期的に Amazon SQS をポーリング 対象ファイルを Amazon S3 から DL して転送 対象のファイル ID を通知 ファイルは AmazonS3 に配置

Slide 8

Slide 8 text

#nncstudy 7 AWS DataSync 導入前の構成 Application サーバに入らないと何もわからない e.g. • 今どの ID を転送してる? 進捗は? • エラーになったけどどうなってる? エラー時の対象 ID 検索が難しい…… そもそも管理が……

Slide 9

Slide 9 text

#nncstudy 8 AWS DataSync 導入前の構成 Application サーバに入らないと何もわからない e.g. • 今どの ID を転送してる? 進捗は? • エラーになったけどどうなってる? エラー時の対象 ID 検索が難しい…… そもそも管理が…… AWS 上へサーバレス化してリプレイスしよう!!!

Slide 10

Slide 10 text

#nncstudy 9 AWS DataSync 導入前の構成 Application サーバに入らないと何もわからない e.g. • 今どの ID を転送してる? 進捗は? • エラーになったけどどうなってる? エラー時の対象 ID 検索が難しい…… そもそも管理が…… AWS 上へサーバレス化してリプレイスしよう!!! → AWS DataSync の出番

Slide 11

Slide 11 text

u AWS マネージドなデータ / ファイル転送サービス u 帯域幅の調整や転送後のファイル検証が可能 u 様々なユースケースに対応可能 #nncstudy 10 AWS DataSync AWS to AWS AWS to On-premise AWS to Other cloud

Slide 12

Slide 12 text

#nncstudy 11 AWS DataSync

Slide 13

Slide 13 text

#nncstudy 12 AWS DataSync 転送処理を担う実体 (Amazon EC2 やオンプレミスの VM にインストール) Task には Task Execution の結果が 履歴として残っていく 転送元 / 先の情報

Slide 14

Slide 14 text

#nncstudy 13 AWS DataSync 転送処理を担う実体 (Amazon EC2 やオンプレミスの VM にインストール) Task には Task Execution の結果が 履歴として残っていく 転送元 / 先の情報 AWS DataSync を使ってサーバレス化すると……

Slide 15

Slide 15 text

#nncstudy 14 サーバレス化後の構成

Slide 16

Slide 16 text

#nncstudy 15 サーバレス化後の構成 AWS SAM で開発 / 管理 AWS DataSync での転送

Slide 17

Slide 17 text

#nncstudy 16 サーバレス化後の構成 Amazon DynamoDB で Task の情報を管理 (転送用 Task の割り当てに活用) 予め AWS DataSync タスクを複数作成してプール化 Amazon DynamoDB の情報を定期更新 Amazon SQS 駆動で Task Execution を起動

Slide 18

Slide 18 text

#nncstudy 17 サーバレス化後の構成 AWS DataSync から転送進捗や情報を確認可能 Amazon CloudWatch Logs でログも確認可能 DLQ 新設で re-run 性 / 追跡性を向上

Slide 19

Slide 19 text

u デプロイ体制についても整備 #nncstudy 18 サーバレス化後の構成

Slide 20

Slide 20 text

u デプロイ体制についても整備 #nncstudy 19 サーバレス化後の構成 詳細はネットコムブログで https://tech.nri-net.com/entry/teaching_uncle_jenkins_about_aws_sam

Slide 21

Slide 21 text

ポイント 開発関連 n AWS SAM を使って開発 n AWS Lambda 作成/開発の手軽さ n デプロイも設定ファイルでシンプルに 移行関連 n AWS DataSync 転送先の書き込み権限 n .aws-datasync/ の write 権限を要許可 運用関連 n AWS DataSync による恩恵 n Agent / Location 情報を流用しやすい n フォルダ単位で対象の限定も可能 n ファイルサイズや転送時間も表示 n 完全性の検証まで担ってくれる n 注意点 n Agent 単位の状態はウォッチしづらい #nncstudy 20

Slide 22

Slide 22 text

#nncstudy 21 ふりかえり サーバレス化してよかったこと 反省点 次やるなら……?

Slide 23

Slide 23 text

#nncstudy 22 ふりかえり サーバレス化してよかったこと ほぼ AWS DataSync 任せに!!! 反省点 次やるなら……?

Slide 24

Slide 24 text

#nncstudy 23 ふりかえり サーバレス化してよかったこと ほぼ AWS DataSync 任せに!!! 反省点 Agent の可視性も考えたかった 次やるなら……?

Slide 25

Slide 25 text

#nncstudy 24 ふりかえり サーバレス化してよかったこと ほぼ AWS DataSync 任せに!!! 反省点 Agent の可視性も考えたかった 次やるなら……? AWS StepFunctions で開発!!!

Slide 26

Slide 26 text

u AWS DataSync で転送処理をもっと便利に u 進捗や転送情報を可視化 / 転送後の検証まで u AWS SAM を利用 u AWS Lambda の開発からデプロイまでをとても手軽に #nncstudy 25 おわりに