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

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

Embed Size (px)

Citation preview

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

JAWS-UG Japan IWATA

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

Agenda

2

①自己紹介

②資料の説明

③前回の振り返り

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

①自己紹介

3

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

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

好きなAWS AWS S3

AWS歴 約12ヶ月

Facebookアカウント

②資料の説明

4

資料の対象年齢層

こんな人・・・。

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

・ S3ってなに???

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

5

6

7

8

<第3者認証>

9

・イニシャル不要

・使った分だけ課金

<従量課金制>

10

<ロケーション>

世界に9リージョン

<ロケーション>

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

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

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

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

<サービス>

13

<汎用性>

発注 設定 設置

発注・設定・設置

2週間~1か月

数時間

14

・Trial and error

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

15

EOSL

設計

インフラ管理からの解放

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

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

発注

設置

運用

16

今回は・・・。

17

S3の基本的な概要説明

19

20

S3(Simple Storage Service)

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

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

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

高いスケラビリティ

容量に依存しない。

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

21

S3の用語

バケット

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

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

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

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

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

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

23

S3の利用想定

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

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

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

24

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

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

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

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

価格・利用頻度(高)

価格・利用頻(低)

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

25

100GB 約¥430

26

S3の転送料の価格

27

S3のリクエストの価格

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

28

S3の階層

29

AWS S3

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

階層に制限はない。

30

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

31

Bucket名

hoge

オブジェクト名

Index.html

(ルート)

└ hoge/└index.html

S3の階層

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

Key(フルパス) Value(値)

/hoge/index.html test

S3の階層(使用例)

32

AWS S3

バケット(www.hoge.com)

バケット(file-strage)

バケット(www.hogehoge.jp)

S3の基本的な機能説明

33

34

操作 説明 その他

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

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

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

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

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

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

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

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

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

35

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

AWS管理

コンソール

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

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

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

サードパティツール

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

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

• Couldberry、Cyberduck等

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

36

S3の機能一覧

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

37

アクセス管理

S3のアクセス権の種類

ユーザポリシー

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

• JSON形式

バケットポリシー

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

• JSON形式

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

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

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

1).ユーザポリシー

38

アクセス管理

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

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

39

アクセス管理

2).バケットポリシー

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

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

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

40

アクセス管理

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

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

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

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

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

アクセス管理

ユーザ

ポリシー

バケット

ポリシーACL

41

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

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

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

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

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

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

バケットを作成

独自ドメインを指定

リダイレクト機能

その他機能、連携

1). バケットを作成

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

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

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

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

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

43

バケット(www.hoge.com)

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

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

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). バケット時の注意

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

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

エンドポイント

46

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

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

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

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

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

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

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

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

47

5). リダイレクト機能

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

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

48

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

6). CORS(Cross-Origin Resource Sharing)

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

オリジン

Amazon S3

Ajax通信

リクエスト

Index.html

ブラウザwww.hogehoge.jp

www.gehogeho.jp

www.hogehoge.jpを許可

CORS

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

49

7). CloudFrontとの連携

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

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

ログ記録

50

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

API/SDKでの設定も可能

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

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

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 –

主なイベントトリガー

52

バージョニング

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

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

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

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

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

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

53

ライフサイクル

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

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

bucket with objects Amazon Glacierworkers

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

自動削除

自動削除

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

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

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

54

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

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

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

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

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

最大5TBまで対応可能

AWS S3

AWS CLISDK Java SDK PHP SDK Ruby SDK Python

データの暗号化

55

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

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

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

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

56

データの暗号化

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

-暗号化の種類

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

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

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

57

データの暗号化

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

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

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

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

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

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

58

データの暗号化

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

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

Key Mangement Serviceの暗号化KEYを利用

59

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

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

SDK Java SDK PHP SDK Ruby SDK Python

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

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

・CloudFront用のURLを発行

60

タグ管理

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

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

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

61

リクエスタ支払い

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

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

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

62

S3を使ってみよう!!

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

63

S3を使ってみよう!!

準備するもの。

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

-ブラウザ

-AWS アカウント

64

S3を使ってみよう!!

手順

-S3バケットを作成

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

-公開の設定

S3を使ってみよう!!

65

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

66

S3を使ってみよう!!

ストレージを構築する。

67

S3を使ってみよう!!

手順

-S3バケットを作成

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

68