Upload
amazon-web-services-japan
View
1.293
Download
2
Embed Size (px)
Citation preview
AWS Black Belt Online SeminarAWS体験ハンズオン~Amazon S3 バックアップ~
2016.3.31アマゾン ウェブ サービス ジャパン株式会社ソリューションアーキテクト舟崎 健治
自己紹介
• 名前:舟崎 健治
• 所属:アマゾン ウェブ サービス ジャパン株式会社
エンタープライズソリューション部ソリューションアーキテクト
• 好きなAWSのサービス:AWS OpsWorks
2
本ハンズオンの目的
• AWS CLIを使って、S3にバックアップデータを保存する手順を理解する– 操作環境統一のため、今回はEC2インスタンスでAWS CLIを実行
– S3へのコピー・同期・S3のバージョン管理の動作確認をする
3
事前に準備すべきもの
• AWSアカウント– AWSアカウント作成の流れとポイント
• https://aws.amazon.com/jp/register-flow/
• インターネット接続可能なWindows PCまたはMac/Linux– WebブラウザとしてFirefoxまたはChromeを推奨
4
ハンズオンAgenda
• 関連するAWSのサービスのおさらい
• ハンズオン– S3バケットの作成
– EC2インスタンスの起動
– IAMユーザの作成
– AWS CLIのインストール・S3へのコピー操作
– AWS CLIによるS3へのコピー
– S3バケットのバージョニングの設定
– ハンズオン環境を削除する
5
関連するAWSのサービスのおさらい
6
Amazon Simple Storage Service (S3)
• 特徴 (http://aws.amazon.com/jp/s3/)
– 高い堅牢性 99.999999999%
– 格納容量無制限。利用した分のみ課金
– 様々なAWSサービスと連携するセンターストレージ
• 価格体系 (http://aws.amazon.com/jp/s3/pricing/)
– データ格納容量
– データ転送量(OUT)
– APIリクエスト数
マネージドオンラインストレージサービス
Amazon S3
7
Amazon Elastic Compute Cloud (EC2)
• 特徴 (http://aws.amazon.com/jp/ec2/)
– 必要な時に必要なだけ1時間単位の従量課金で利用できる仮想サーバリソース
– 世界11箇所のリージョンで利用可能
– 様々なスペック・OSを選択可能
• 価格体系 (http://aws.amazon.com/jp/ec2/pricing/)
– インスタンス利用料($0.02/hour 〜)
– データ転送量(OUT $0.14/GB )
仮想クラウドサーバ
8
AWS Identity and Access Management (IAM)
• 特徴 (http://aws.amazon.com/jp/iam/)
– AWS リソースへのきめ細かなアクセス制御
– 認証情報の利用状況を一目で把握できるレポート機能
– 社内ディレクトリとの統合も可能
– ウェブ ID プロバイダーを使った、モバイルアプリケーションへのアクセスコントロールの管理
– 権限の高いユーザーに対する多要素認証の利用( Multi-Factor Authentication)
• 価格体系 (http://aws.amazon.com/jp/iam/pricing/)
– IAMの利用自体は全て無料
AWS サービスおよびリソースへのアクセスを安全にコントロール
多様なMFAデバイスをサポート
9
ハンズオン
10
ハンズオン構成イメージ
AWS CLI 実行用EC2インスタンスclient Amazon
S3 bucket
11
SSH ログイン
EC2インスタンス内で生成したファイルをS3にコピーする(IAMユーザ権限を利用)
※操作環境統一のためEC2インスタンスを利用しますが、こちらはオンプレミスのサーバまたはPCを想定した環境となります。
AWS マネージメントコンソールにログイン
https://console.aws.amazon.com へアクセスし、ログインする
管理者アカウント、またはIAMユーザーでログインする
IAMユーザーでアクセスする場合は、そのユーザーにAdministrator権限を与えられていることが推奨。最低限EC2, S3の権限は必要
12
言語設定を日本語にする
13
1
2
リージョンを選択、S3の画面に移動する
14
1
2
3
S3 バケットを作成する
15
S3 バケットを作成する
16
1
2
3
バケット名に半角英数字で任意の名前を入力する
バケットが作成されていることを確認する
17
EC2の画面へ移動する
18
1
2
キーペアを作成する
19
1
2
3
インスタンスを作成する
20
1
2
Amazon Linux AMIを選択する
21
t2.microのインスタンスタイプを選択する
22
1
2
インスタンスの詳細設定
23
「サブネット設定を使用(有効)」または「有効化」を選択
1
2
3
インスタンス作成の確認
24
キーペアを選択して、インスタンスを作成する
25
1
2
「既存のキーペアの選択」を選択、作成したキーペアを選択する 3
起動されたインスタンスのステータスを確認する
26
インスタンスの状態がrunning、ステータスチェックで「2/2のチェックに合格しました」と表示されるのを確認する
EC2インスタンスへSSHでログイン
• 必要なもの– インスタンス作成時に指定したキーペアの秘密鍵ファイル (demo-
key.pem)– インスタンスに割当てたElastic IPアドレス(前章でのメモ)
• SSHログイン方法(具体的な操作方法は次ページより説明しています)
– 接続先ホスト:インスタンスに割当てたElastic IP (EIP) アドレス– ログインユーザ名: ec2-user– 接続方法:公開鍵暗号方式(秘密鍵ファイルを指定)
Windowsから:インスタンスへSSHでログイン
• Windowsからログインする場合– TeraTerm (ttssh.exe) を起動 http://sourceforge.jp/projects/ttssh2/
– 1.接続するインスタンスのElastic IPを入力
– 2.SSH2を指定
– 3.「OK」をクリック
– 4.この画面が出たら「続行」をクリック
→
1
2
3 4
Windowsから:インスタンスへSSHでログイン– ユーザ名: ec2-user– 「RSA/DSA/ECDSA/ED25519鍵を使う」を選択– 秘密鍵ファイル(handson.pem)を選択して接続
→→1
2 35
6
7
4. すべてのファイル(*.*)を選択する(選択しないと鍵が表示されない)
補足)この認証画面で時間が掛かりすぎた場合、タイムアウトにより「OK」をクリックしても繋がらない場合があります。その場合は再度Teratermを起動してやり直してください。
Mac/Linuxから:EC2インスタンスへSSHでログイン
• Mac/Linuxからログインする場合– ターミナルからコマンドラインでログイン (事前に秘密鍵(pemファイル)のパーミッションを600にしないと接続出来ません)
$ chmod 600 ~/Downloads/handson.pem$ ssh -i ~/Downloads/handson.pem ec2-user@割当てられたPublic IPアドレス
SSHログインがうまくいかない場合
• インスタンスは完全に起動完了しているか?
• 起動時に指定した内容どおりに起動しているか?
• 接続先のIPアドレス あるいは ホスト名は正しいか?
• 指定したSecurity Groupは 22(SSH) を有効にしているか?
• 指定したKey Pairと対応する鍵ファイルを指定しているか?
• 秘密鍵ファイルのパーミッションは600になっているか?(Mac/Linuxから)
インストール済みのAWS CLIを削除して、最新版のAWS CLIをインストールする
• AWS CLIの削除
• AWS CLIのインストール
32
$ sudo yum remove –y aws-cli
$ sudo pip install awscli
AWSマネージメントコンソールでIAMの画面に移動
33
1
2
IAMユーザーを追加する
34
IAMユーザーの設定
35
1
2
任意のユーザー名を入力
3
IAMユーザーに与えるアクセス権限の設定
36
1
2
AmazonS3と入力
AmazonS3FullAccessを選択
3
設定を確認後、ユーザーの作成ボタンをクリック
37
ユーザーのアクセスキー、シークレットアクセスキーをメモしておく
38
1
2
AWS CLIの設定
• PATHを設定する
39
$ aws configure
AWS Access Key ID [None]: AKIAXXXXXXXXXXXXXX
AWS Secret Access Key [None]:
DZA8adZzucXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]:
$ export PATH=$PATH:/usr/local/bin/
• AWS CLIのアクセスキー・シークレットアクセスキーを設定する
サンプルファイルを作成
40
$ echo hello > hello.txt
$ mkdir local
$ cd local
Localという名前のディレクトリを作成、ディレクトリへ移動する
hello.txtを作成、中身にhelloを追記する
$ ls
hello.txtが作成されていることを確認する
S3 バケットの中身の確認
• 空である(何も表示されない)ことを確認する
41
$ aws s3 ls s3://<自分のバケット名>
(例) aws s3 ls s3://funasaki-handson331/
1つのファイルをS3バケットへコピーする
• コピーされたファイルを確認する
42
$ aws s3 cp ./hello.txt s3://<自分のバケット名>
$ aws s3 ls s3://<自分のバケット名>
2017-03-17 11:09:06 6 hello.txt
Amazon S3Bucketローカル
追加でローカルにサンプルファイルを作成する
43
$ echo HelloWorld > helloworld.txt
$ echo HelloAWS > helloaws.txt
S3 syncコマンドでローカルとS3バケットを同期する
44
$ aws s3 sync ./ s3://<自分のバケット名>
Amazon S3Bucketローカル
ローカルのファイルを削除後に、S3からファイルを戻す(S3からリカバリする)
45
$ aws s3 cp s3://<自分のバケット名> ./
$ rm ./hello.txt
$ ls
ローカルAmazon S3
Bucket
ローカルのファイルを削除後にS3と同期してS3上のファイルも削除する
46
$ rm ./hello.txt
$ ls
$ aws s3 sync --delete ./ s3://<自分のバケット名>
S3の画面へ移動する
47
1
2
作成したバケットを選択する
48
バケットのプロパティを選択する
49
S3バケットのバージョニングを有効化する
50
1
2
3
既存のファイルに追記して、再度S3バケットと同期する
• helloworld.txtに追記する
51
$ echo Hello Japan >> helloworld.txt
$ aws s3 sync ./ s3://<自分のバケット名>/
S3バケットにて、旧バージョンのファイルも残っていることを確認する
52
1
2
3
環境の削除方法(課金を止める手順)
• EC2インスタンスを削除する
• S3に保存したファイルを削除する
53
EC2インスタンスを削除する
54
2
13 アクション→インスタンスの状態→削除
を選択する
S3に保存したファイルを削除する
55
2
13
すべてのファイルにチェックを入れる
以上でハンズオンは終了となります。
56
ご参加ありがとうございました
57
58