Slide 1

Slide 1 text

初心者が S3バケット作ってみた件 おもにクラウドの話してます#4 - ナカオクタカヒロ

Slide 2

Slide 2 text

ナカオク タカヒロ 仕事 : ネットワーク作る人 最初に触ったAWSサービス : Elemental MediaLive コミュニティ クラウド資格 AZ-104 AZ-900

Slide 3

Slide 3 text

https://unityroom.com/users/kamera25

Slide 4

Slide 4 text

おことわり ・本資料にはWebから引用をしている、画像や資料などがあります。  引用元はURLで示しているので、正しい情報についてはそちらをご確認ください。 ・本資料は個人の見解に基づき作成されたものであり、 所属する組織の見解 や 代表する内容 ではございません。 ・引用以外の情報は クリエイティブコモンズ -表示 4.0 国際 (CC BY 4.0)でご利用いただけます。 ・この情報は2024年12月8日時点の情報となります。

Slide 5

Slide 5 text

Amazon S3 Simple Service Strage

Slide 6

Slide 6 text

https://aws.amazon.com/jp/s3/

Slide 7

Slide 7 text

最初(大学生の頃)の印象 WebDAVとなにが違うん?

Slide 8

Slide 8 text

S3 Webのプロトコル(?) Amazonの超技術で作られた クラウドの上で動作する SLA 99.99999999%の Web?ベースのストレージ

Slide 9

Slide 9 text

https://dnobori.cyber.ipa.go.jp/ppt/download/20230610_soumu/230610%20%E8%AC%9B%E6%BC%94%20%E7%AC%AC1%E9%83%A8% 20(%E7%99%BB)%20-%20%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99.pdf

Slide 10

Slide 10 text

S3 Webのプロトコル(?) Amazonの超技術で作られた クラウドの上で動作する SLA 99.99999999%の Web?ベースのストレージ クラウドへの理解が無い =  恐怖 SIerさんのクラウド恐怖事例集 ☝ クラウド破産、権限ミスのセキュリティインシデント、 魔法の呪文のようなリファレンス

Slide 11

Slide 11 text

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Welcome.html

Slide 12

Slide 12 text

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Welcome.html 実際に検証してみよう

Slide 13

Slide 13 text

AWSCLIをインストールします。

Slide 14

Slide 14 text

お馴染み WireShark を起動します。

Slide 15

Slide 15 text

※お詫び : 検証のため、本番のS3を用いずにクローンサーバで確認しました。 パケットキャプチャ AWSCLI s3 cp test01.txt s3://aaa S3

Slide 16

Slide 16 text

Slide 17

Slide 17 text

80/tcp S3 ※お詫び : 検証のため、本番のS3を用いずにクローンサーバで確認しました。 パケットキャプチャ AWSCLI s3 cp test01.txt s3://aaa Webサーバ ☝

Slide 18

Slide 18 text

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

クライアント HTTPリクエスト サーバ HTTPレスポンス

Slide 21

Slide 21 text

クライアント HTTPリクエスト サーバ HTTPレスポンス HTTP PUT パス/日付/ファイル長/認証データ等 スペース データ(メッセージボディ) 200 OK ETAG (データのMD5SUM値) 日付 ・内部ストレージへ データの保存 ・MD5SUMの計算

Slide 22

Slide 22 text

クライアント HTTPリクエスト サーバ HTTPレスポンス HTTP PUT パス/日付/ファイル長/認証データ等 スペース データ(メッセージボディ) 200 OK ETAG (データのMD5SUM値) 日付 ・内部ストレージへ データの保存 ・MD5SUMの計算 ぶち、シンプルじゃ!!

Slide 23

Slide 23 text

80/tcp AWSCLI ワシだぞん S3 with ncコマンド ファイル保存して MD5SUMを返せば 楽勝w ☝ クライアント HTTPリクエスト サーバ HTTPレスポンス

Slide 24

Slide 24 text

80/tcp AWSCLI ワシだぞん S3 with ncコマンド ファイル保存して MD5SUMを返せば 楽勝w ☝ クライアント HTTPリクエスト サーバ HTTPレスポンス 俺が S3 だ!

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

S3サーバ作りたい!

Slide 27

Slide 27 text

雑ネットワークプログラムを書こう!

Slide 28

Slide 28 text

雑ネットワークプログラム 鉄の掟とは? ・エラーハンドリングしない   →minioを作りたい訳では無い、四角い車輪を作りたいだけ。 ・分からない応答がきたら、RSTを投げて強制切断   →既読スルーじゃないだけ温かみがある ・暗号化しない   →平文でOK ・認証と認可の処理をしない   →全世界、性善説でいきましょう。 ・非同期で書かない   →困らないのであれば。 ・得意な言語 や環境で書く   →カッコつけて、不慣れな言語 (私ならRustとか)で書かない。 ・インターネットに公開しない(最重要)   →インターネットや NGNで公開したい? Amazon S3使いなさい!

Slide 29

Slide 29 text

お馴染み Unity でS3サーバを作っていきます。

Slide 30

Slide 30 text

Webブラウザ Webサーバ (Unity) Step1 : Webサーバを作る

Slide 31

Slide 31 text

SQLite(Unity) Step2 : データベースを構築する

Slide 32

Slide 32 text

レスポンス表示 +内部でMD5SUMの計算 Step3 : AWSCLIに正常応答を返す スクリプト AWSCLI - 受信OK

Slide 33

Slide 33 text

データベース(SQLite)の Select * Step4 : データベースに受信したデータを突っ込む AWSCLI - ファイル送信OK

Slide 34

Slide 34 text

コードは200行程度!!

Slide 35

Slide 35 text

データベース(SQLite)の Select * Step4 : データベースに受信したデータを突っ込む AWSCLI - 受信OK 完成!

Slide 36

Slide 36 text

S3 Webのプロトコル(?) Amazonの超技術で作られた クラウドの上で動作する SLA 99.99999999%の Web?ベースのストレージ

Slide 37

Slide 37 text

80 や 443/tcp S3 AWSCLI s3 cp test01.txt s3://aaa Webサーバ ロードバランサ データベースサーバ 世界規模の分散型のすごいやつ WAF IAM的な制御をやる ポリシーサーバ (たぶんnotAD) AWSネットワーク (ホワイトボックス的な ) CloudWatch的 なサーバ キャッシュ サーバ

Slide 38

Slide 38 text

80 や 443/tcp S3 AWSCLI s3 cp test01.txt s3://aaa Webサーバ ロードバランサ データベースサーバ 世界規模の分散型のすごいやつ WAF IAM的な制御をやる ポリシーサーバ (たぶんnotAD) AWSネットワーク (ホワイトボックス的な ) CloudWatch的 なサーバ キャッシュ サーバ 車輪を作ると、解像度が上がる

Slide 39

Slide 39 text

https://dnobori.cyber.ipa.go.jp/ppt/download/20230610_soumu/230610%20%E8%AC%9B%E6%BC%94%20%E7%AC%AC1%E9%83%A8% 20(%E7%99%BB)%20-%20%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99.pdf

Slide 40

Slide 40 text

まとめ Wireshark と nc で 君も今日から S3だ! S3はプロトコルまでシンプルだった! 簡単なS3サーバからを作ってみましょう!

Slide 41

Slide 41 text

初心者が S3バケット作ってみた件 おもにクラウドの話してます#4 - ナカオクタカヒロ で

Slide 42

Slide 42 text

来年1月 ゲームジャムを開催します! よろしくお願いします〜 https://hirouni.connpass.com/event/325586/ 宣伝!