Top Banner
第4回勉強会 はじめてのAWS JAWS-UG Japan IWATA AWSを使ってみよう ~ S3編~
68

第4回はじめてのAws jaws ug-iwata

Jan 17, 2017

Download

Documents

iwata jaws-ug
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第4回はじめてのAws jaws ug-iwata

第4回勉強会はじめてのAWS

JAWS-UG Japan IWATA

AWSを使ってみよう ~ S3編~

Page 2: 第4回はじめてのAws jaws ug-iwata

Agenda

2

①自己紹介

②資料の説明

③前回の振り返り

④初めてのAWS ~S3編~S3の基本的な概要説明S3の基本的な機能説明S3を使ってみよう!!

Page 3: 第4回はじめてのAws jaws ug-iwata

①自己紹介

3

鈴木善久(すずき よしひさ)

JWAS-US磐田 3リーダーの1人

好きなAWS AWS S3

AWS歴 約12ヶ月

Facebookアカウント

Page 4: 第4回はじめてのAws jaws ug-iwata

②資料の説明

4

資料の対象年齢層

こんな人・・・。

・ AWSを始めるにはどうしたらいい???

・ S3ってなに???

Page 5: 第4回はじめてのAws jaws ug-iwata

ちょっと振り返り・・・。

5

Page 6: 第4回はじめてのAws jaws ug-iwata

6

Page 7: 第4回はじめてのAws jaws ug-iwata

7

Page 8: 第4回はじめてのAws jaws ug-iwata

8

<第3者認証>

Page 9: 第4回はじめてのAws jaws ug-iwata

9

・イニシャル不要

・使った分だけ課金

<従量課金制>

Page 10: 第4回はじめてのAws jaws ug-iwata

10

<ロケーション>

世界に9リージョン

Page 11: 第4回はじめてのAws jaws ug-iwata

<ロケーション>

各リージョンに2つ~3つの

アベイラビリティーゾーンが存在

※現在は9つのリージョン

Page 12: 第4回はじめてのAws jaws ug-iwata

12

インスタンスEC2

ストレージS3、EBS

データベースRDS

仮想ネットワークVPC

専用線回線DirectConnect

コンテンツ配信CloudFront

DNSRoute 53

監視CloudWatch

ロードバランシング

ELBAuto Scaling

低コストストレージGlasier

データウエアハウスサービス

RedShift

モバイルデバイスのプッシュサービス

SNS

デスクトップソリューションWorkSpaces

大量メール送信サービス

SES

メッセージキューSQS

オンプレミス環境との接続

Strage Gateway

ログ配信サービスCloudTrail

暗号化サービスCloudSearch

リソースコントロール

IAM

データベースDynamoDB

データベースSimpleDB

<サービス>

Page 13: 第4回はじめてのAws jaws ug-iwata

13

<汎用性>

Page 14: 第4回はじめてのAws jaws ug-iwata

発注 設定 設置

発注・設定・設置

2週間~1か月

数時間

14

・Trial and error

・導入検討から、構築までのスピードの迅速化。

Page 15: 第4回はじめてのAws jaws ug-iwata

15

EOSL

設計

インフラ管理からの解放

・Hypervisorから下の運用が一切不要。

・5年ごとの機器のEOSLサイクルからの解放

発注

設置

運用

Page 16: 第4回はじめてのAws jaws ug-iwata

16

今回は・・・。

Page 17: 第4回はじめてのAws jaws ug-iwata

17

Page 18: 第4回はじめてのAws jaws ug-iwata

S3の基本的な概要説明

Page 19: 第4回はじめてのAws jaws ug-iwata

19

Page 20: 第4回はじめてのAws jaws ug-iwata

20

S3(Simple Storage Service)

インターネットのどこからでも安全にアクセス可能なストレージ

容量制限なし。1ファイル5TBまで

耐久性。 99.999999999%(イレブンナイン)※1万個のオブジェクト保存した場合の、障害による損失は1000万年かかる。

高いスケラビリティ

容量に依存しない。

安価な金額。※1TB/月 $0.0330/GB

Page 21: 第4回はじめてのAws jaws ug-iwata

21

S3の用語

バケット

・オブジェクトの格納場所・Globalでユニークな名前にする必要がある・最大100オブジェクト作成可能

オブジェクト・バケットに置くファイルでURLが紐づく・数に制限なし

オブジェクトキー・オブジェクトに付与される一意のキー

ACL・バケットとオブジェクトへのアクセスを管理する

アクセスコントロールリスト

Page 22: 第4回はじめてのAws jaws ug-iwata

22

Availability Zone#B

Availability Zone#A

Availability Zone#C

オンプレミス

AWS S3

Tokyo Region

S3の堅守性

インターネット

自動同期

S3のリージョン1.US Standard2.Oregon3.Northern

California4.Ireland5.Singapore 6.TOKYO7.Sydeny8.Sao Paulo9.Frankfurt

Page 23: 第4回はじめてのAws jaws ug-iwata

23

S3の利用想定

データ保存・分析用ストレージ・解析のためのデータ保管

データバックアップストレージ・ファイルサーバとして保存・拠点間のレプリケーション・サーバ/データベースバックアップ

コンテンツの保存と配信・静的コンテンツ

Page 24: 第4回はじめてのAws jaws ug-iwata

24

S3のデータストレージの選択

S3 スタンダードストレージ耐久性:99.999999999%

Glacier アーカイブストレージ耐久性:99.999999999%データの取り出しに時間がかかる。

低冗長化ストレージ(S3 RRSオプション)耐久性:99.99%

価格・利用頻度(高)

価格・利用頻(低)

Page 25: 第4回はじめてのAws jaws ug-iwata

S3のデータストレージの価格

25

100GB 約¥430

Page 26: 第4回はじめてのAws jaws ug-iwata

26

S3の転送料の価格

Page 27: 第4回はじめてのAws jaws ug-iwata

27

S3のリクエストの価格

Page 28: 第4回はじめてのAws jaws ug-iwata

S3との連携可能なアーキテクチャ

28

Page 29: 第4回はじめてのAws jaws ug-iwata

S3の階層

29

AWS S3

バケット バケット バケット

階層に制限はない。

Page 30: 第4回はじめてのAws jaws ug-iwata

30

S3にはフォルダという概念はない。

Page 31: 第4回はじめてのAws jaws ug-iwata

31

Bucket名

hoge

オブジェクト名

Index.html

(ルート)

└ hoge/└index.html

S3の階層

S3は単純なKVS(Key-Value型データストア)になる。

Key(フルパス) Value(値)

/hoge/index.html test

Page 32: 第4回はじめてのAws jaws ug-iwata

S3の階層(使用例)

32

AWS S3

バケット(www.hoge.com)

バケット(file-strage)

バケット(www.hogehoge.jp)

Page 33: 第4回はじめてのAws jaws ug-iwata

S3の基本的な機能説明

33

Page 34: 第4回はじめてのAws jaws ug-iwata

34

操作 説明 その他

GET ファイルのダウンロード Range GET リクエストに対応

PUT ファイルのアップロード シングルPUT5GB

LIST ファイル一覧の情報を取得 1000オブジェクト情報可能

COPY オブジェクトのコピー シングルCOPY最大5GB

DELETE オブジェクトの削除 シングルDELETE最大1000オブジェクト

RESTORE アーカイブストレージにあるオブジェクトの取り出し

データの取り出し3-4時間RESTOREの時間を指定できる

オブジェクトに対するオペレーション

S3で実行できる操作の説明

Page 35: 第4回はじめてのAws jaws ug-iwata

35

• ブラウザからAWS管理コンソールからS3を操作可能

AWS管理

コンソール

• AWS CLI からコマンドラインでの操作AWS CLI

• AWSが各プログラミング用に調整したAPIでの操作

• 「Java」、「PHP」、「Ruby」、「Python」など。AWS SDK

サードパティツール

オペレーション実行ツール

S3を操作できる実行ツール

• Couldberry、Cyberduck等

※HTTP/HTTPSでS3で接続する。

Page 36: 第4回はじめてのAws jaws ug-iwata

36

S3の機能一覧

-アクセス管理-静的ウェブサイトホスティング-ログ記録-イベント通知-バージョニング-ライフサイクル-クロスリージョン レプリケーション-タグ管理-マルチパートアップロード機能-データの暗号化-Pre-Signed Object URL-RRSオプション-リクエスタ支払い

Page 37: 第4回はじめてのAws jaws ug-iwata

37

アクセス管理

S3のアクセス権の種類

ユーザポリシー

• IAM USERに対して、S3や複数のバケットに対してのアクセス権を付与

• JSON形式

バケットポリシー

• S3バケットに対してアクセス権を付与

• JSON形式

ACL• S3のバケット、オブジェクトのアクセス権限を付与。

• 簡易的なアクセス権を付与する場合に利用

デフォルトではOWNERに対してのアクセスのみ付与されている。

Page 38: 第4回はじめてのAws jaws ug-iwata

1).ユーザポリシー

38

アクセス管理

例:特定のIPアドレスのみ許可したい場合。

IAM Userを利用して、S3バケット及び、オブジェクトに対して、アクセス権を付与

Page 39: 第4回はじめてのAws jaws ug-iwata

39

アクセス管理

2).バケットポリシー

バケットポリシーを利用して、すべてのユーザに対してバケット及び、

オブジェクトに対して、アクセス権を付与。

例:特定のIPアドレスのみ許可したい場合。

Page 40: 第4回はじめてのAws jaws ug-iwata

40

アクセス管理

3). ACLバッケット単位で設定するバッケットACLと、オブジェクト単位でACLを

設定するオブジェクトACLが存在する。

バケットACLはバケット内のすべてのオブジェクトに反映される。

オブジェクトACLはバケットACLよりも優先される。

ACLよりも、ユーザポリシー、バケットポリシーが優先される。

Page 41: 第4回はじめてのAws jaws ug-iwata

アクセス管理

ユーザ

ポリシー

バケット

ポリシーACL

41

4). S3のアクセス権の優先度

優先度(高) 優先度(低)

Page 42: 第4回はじめてのAws jaws ug-iwata

静的ウェブサイトホスティング

静的なWebサイトをS3で公開できる。

ファイルをアップロードして、公開するだけ!!

PHPなどの動的なファイルやデータベースは利用できない。

バケットを作成

独自ドメインを指定

リダイレクト機能

その他機能、連携

Page 43: 第4回はじめてのAws jaws ug-iwata

1). バケットを作成

バケット名の変更はできない。

バケット名は、3~63文字以内にする必要がある。

バケット名は、IPアドレスの形式(192.168.5.4など)にはできない。

バケット名は1つのラベルか、または複数のラベルをピリオドでつなげて構成する必要がある。

小文字の英文字、数字、およびハイフン(-)が利用できる。先頭、末尾には小文字の英数字を利用する。

43

バケット(www.hoge.com)

Amazon S3に保存されるあらゆるオブジェクト(ファイル)を置いておくための入れ物(バケツ)のこと。

静的ウェブサイトホスティング

Page 44: 第4回はじめてのAws jaws ug-iwata

44

バケット名に独自ドメインの利用もできる。

(バケット名例) www.example.com

証明書も利用できる。

デフォルトでワイルドカード証明書を保持している。

独自証明書を利用したい場合は、CloudFrontが必要。

S3Internet

CloudFront

S3のエンドポイントに対して、CNAMEを宛がう。

(CNAME例) www.example.com IN CNAMEwww.example.com.s3-website-ap-northeast-1.amazonaws.com

静的ウェブサイトホスティング

2). バケット時の注意

Page 45: 第4回はじめてのAws jaws ug-iwata

45

3). S3 エンドポイント(URL)

http://s3-ap-northeast-1.amazonaws.com/hoge.jp/hoge.jpg

http://hoge.jp.s3-ap-northeast-1.amazonaws.com/hoge.jpg

例: hoge.jpのバケット名を作成し、オブジェクト”hoge.jpg”を置いた場合

SSLの場合>

SSLのパスの指定の仕方に注意

https://s3-ap-northeast-1.amazonaws.com/hoge.jp/hoge.jpg

https://hoge.jp.s3-ap-northeast-1.amazonaws.com/hoge.jpg

静的ウェブサイトホスティング

エンドポイント

Page 46: 第4回はじめてのAws jaws ug-iwata

46

4). オブジェクト(Object)

-1つ以上のバケットに格納するデータ(ファイル)のこと。

オブジェクト名は任意に設定できる。

オブジェクト数や階層の制限はない。

オブジェクトの登録、変更、削除、切り取り、コピー、貼り付けができる。

オブジェクトのアップロード・ダウロードができる。

静的ウェブサイトホスティング

Page 47: 第4回はじめてのAws jaws ug-iwata

静的ウェブサイトホスティング

47

5). リダイレクト機能

・簡易リダイレクト機能バケットのウェブサイトエンドポイントへのリクエストをすべて別のホストにリダイレクトすることができる

・高度なリダイレクト機能バケットをウェブサイトホスティング用に設定する場合はXMLでルーティングルールを指定する。

Page 48: 第4回はじめてのAws jaws ug-iwata

48

静的ウェブサイトホスティング

6). CORS(Cross-Origin Resource Sharing)

Ajaxを利用して異なるドメインの情報を取得ができる。

オリジン

Amazon S3

Ajax通信

リクエスト

Index.html

ブラウザwww.hogehoge.jp

www.gehogeho.jp

www.hogehoge.jpを許可

CORS

Page 49: 第4回はじめてのAws jaws ug-iwata

静的ウェブサイトホスティング

49

7). CloudFrontとの連携

独自証明書を利用したい場合

バケットポリシーで、CloudFront経由のHTTP・HTTPSの通信のみを許可することも可能。

Page 50: 第4回はじめてのAws jaws ug-iwata

ログ記録

50

S3へのアクセスログの保存

API/SDKでの設定も可能

-リクエスタ、バケット名、リクエスト時刻、リクエストアクション、応答ステータス、およびエラーコード(存在する場合)

アクセスログの保存で課金が発生削除はいつでも可能アクセスログのアクセスに若干の課金が発生

Page 51: 第4回はじめてのAws jaws ug-iwata

51

イベント通知

S3でオブジェクトが作成されたり、上書きされた場合のアクションを通知することができる。

• HTTP PUTの操作により、オブジェクトが作成された時

s3:ObjectCreated:Put –

• HTTP POSTの操作により、オブジェクトが作成された時

s3:ObjectCreated:Post –

• S3コピーの操作により、オブジェクトが作成された時

s3:ObjectCreated:Copy –

• S3マルチパートアップロードが完了し、オブジェクトが作成された時

s3:ObjectCreated:CompleteMultipartUpload –

• オブジェクトが、上記のイベントもしくは将来的に追加されるイベントで作成された時

s3:ObjectCreated:* -

• 低冗長化で保存されているS3オブジェクトがロストした時

s3:ReducedRedundancyObjectLost –

主なイベントトリガー

Page 52: 第4回はじめてのAws jaws ug-iwata

52

バージョニング

オブジェクトの更新した際に、前の世代のオブジェクトを自動保管する機能

オブジェクトのバージョン管理下に置き、保存・検索・リストアが可能

バージョニング有効化時には、オブジェクトは削除されないため、ユーザのオペレーションミスに有効

PUT、POST、COPYの操作でオブジェクトに任意のバージョンIDが付与される。

課金はバージョニング分かかる。

ライフサイクルとの連携で世代管理が可能

Page 53: 第4回はじめてのAws jaws ug-iwata

53

ライフサイクル

バッケット内のオブジェクトに対して削除やアーカイブの自動設定が可能

最大1000個のライフサイクルルールが設定可能

bucket with objects Amazon Glacierworkers

Amazon S3アップロード 自動アーカイブ

自動削除

自動削除

アーカイブや削除の日程を指定することも可能

UTC0:00から順次処理が実行される

Page 54: 第4回はじめてのAws jaws ug-iwata

マルチパートアップロード機能

54

大容量オブジェクトの高速伝送が可能

S3にオブジェクトをアップロードする際にファイルを複数のチャンクに分割して並列アップロード

ファイルが100MBを超える場合利用を推奨

チャンクは5GB以下に設定

全てのチェンクがアップロードされるとS3側でオブジェクトに結合される。

最大5TBまで対応可能

AWS S3

AWS CLISDK Java SDK PHP SDK Ruby SDK Python

Page 55: 第4回はじめてのAws jaws ug-iwata

データの暗号化

55

1). S3でのデータ暗号化方式

サーバサイド暗号化 (Server Side Encryption - SSE)

クライアントサイド暗号化

-S3での暗号化方式は2種類ある

Page 56: 第4回はじめてのAws jaws ug-iwata

56

データの暗号化

サーバサイド暗号化 (Server Side Encryption - SSE)

-暗号化の種類

SSE-C: ユーザが提供した暗号化KEYを利用

SSE-KMS: Key Mangement Serviceの暗号化KEYを利用

SSE-S3: AWSが管理する暗号化KEYを利用

Page 57: 第4回はじめてのAws jaws ug-iwata

57

データの暗号化

2). サーバサイド暗号化 (Server Side Encryption - SSE)

暗号化、復号化(復号)、鍵管理の全てを自動化

オブジェクトの保存やコピーの際に暗号化可能。

暗号化データをGETする際は、キーを取り出して復号化し、

それを使ってデータを復号化する。

AES-256の暗号化アルゴリズムを利用

Page 58: 第4回はじめてのAws jaws ug-iwata

58

データの暗号化

3). クライアントサイド暗号化

クライアント側の独自の暗号化KEYを利用

Key Mangement Serviceの暗号化KEYを利用

Page 59: 第4回はじめてのAws jaws ug-iwata

59

Pre-Signed Object URL(事前署名付き(期限付き)URL)

一時的に特定の方を対象にしたURLを作成することができる。

SDK Java SDK PHP SDK Ruby SDK Python

URL 生成機能は SDK でのみ利用可能

CloudFrontを経由して事前署名付きURLも設定可能

・CloudFront用のURLを発行

Page 60: 第4回はじめてのAws jaws ug-iwata

60

タグ管理

バケットに対して、タグの指定が可能

タグを利用することで、リソースグループとの連携が可能

リソースグループとは、タグの一元管理機能

Page 61: 第4回はじめてのAws jaws ug-iwata

61

リクエスタ支払い

バケットをリクエスタ支払いバケットとして設定することができる。

リクエスタ支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、所有者でなくリクエストを実行したリクエスタが支払います。

データの保管にかかるコストは常にバケット所有者が支払います。

Page 62: 第4回はじめてのAws jaws ug-iwata

62

S3を使ってみよう!!

静的Webサイトを構築する。

Page 63: 第4回はじめてのAws jaws ug-iwata

63

S3を使ってみよう!!

準備するもの。

-インターネットに接続可能なPC

-ブラウザ

-AWS アカウント

Page 64: 第4回はじめてのAws jaws ug-iwata

64

S3を使ってみよう!!

手順

-S3バケットを作成

-オブジェクトをアップロード

-公開の設定

Page 65: 第4回はじめてのAws jaws ug-iwata

S3を使ってみよう!!

65

将浩さん、お願します!!

Page 66: 第4回はじめてのAws jaws ug-iwata

66

S3を使ってみよう!!

ストレージを構築する。

Page 67: 第4回はじめてのAws jaws ug-iwata

67

S3を使ってみよう!!

手順

-S3バケットを作成

-オブジェクトをアップロード

Page 68: 第4回はじめてのAws jaws ug-iwata

68