ようへいの日々精進XP

よかろうもん

2018 年 09 月 16 日 (日)

ジョギング

  • 霧島ホテルから国道一号線を 15 分程下って折り返すというコースを 30 分程の 7 キロ程度
  • 下りは調子良かったけど... めちゃくちゃキツかった
  • 父が車で伴走してくれたけど, 掛け声も何もなかったので, ただダラダラ車で走っている感じが面白かった

日課

  • おやすみ

古稀祝い day 2

  • 昨晩のお酒が若干残っていたけど, ジョギングに行ったりして充実していたと思う
  • 朝湯に浸かり, 朝ごはんをたらふく食べてからチェックアウト
  • 両親と別れた後, そのまま帰る予定だったけど, 霧島神宮に手を合わせて帰ってきた

樹木希林さん

news.yahoo.co.jp

富士フィルムの CM とか本当にいい味だしていたよなあ. 合掌.

今日の AWS ~ AWS Certified Solutions Architect – Professional Level のサンプル問題に挑む ~

公開されているサンプル試験問題を解く. なぜ, その答えになるのかをちゃんと理解する必要がある.

Q2. ディザスタリカバリ戦略

設問

  • とある ERP アプリケーションが 1 つのリージョンの複数の AZ に配置されていましたとさ
  • 障害が発生した場合, RTO は 3 時間未満, RPO は 15 分未満
  • これを満たす選択肢はどれか

選択肢

A) Take 15-minute DB backups stored in Amazon Glacier, with transaction logs stored in Amazon S3 every 5 minutes.

  • 15 分毎に Glacier にデータベースのバックアップを取得
  • 5 分毎に S3 にトランザクションログを取得

B) Use synchronous database master-slave replication between two Availability Zones.

  • 2 つの AZ 間で同期するマスター, スレーブ構成のデータベースを利用する

C) Take hourly DB backups to Amazon S3, with transaction logs stored in S3 every 5 minutes.

  • 1 時間毎に S3 にデータベースをバックアップを取得する
  • 5 分毎にトランザクションログを S3 に取得する

D) Take hourly DB backups to an Amazon EC2 instance store volume, with transaction logs stored in Amazon S3 every 5 minutes.

解答

  • 多分 C... かな

なぜ, その答えなん?

  • 選択肢 A) は Glacier を使っている時点で, データを復旧する時間が RTO を満たさない可能性がある
  • 選択肢 B) はレプリケーションではデータ破損やロストは担保出来ない (破損データやロスト自体も同期されてしまう)
  • 選択肢 D) EC2 インスタンスストアにデータベースバックアップを取得している時点で殺される

ということで, 今回も消去法でいくと選択肢 C) になってしまう.

センセー, RTO とか RPO ってなんすか

  • RTO (被災時点からどれだけの時間で業務を復旧させるかという目標値)
  • RPO (過去のどの時点までのデータを保障して復旧させるかという目標値)

Q3. 費用対効果が高くてスケーラブルなアーキテクチャについて

設問

以下のようなアプリケーションを実装した.

  • JavaScript を利用して, 携帯電話やブラウザ, タブレット等で動作する
  • 80文字の要約でランダムな行為を知らせる (意味わかんないけど, 多分ツイッターみたいなのだと思っている)
  • 要約データを DynamoDB に保存する

このアプリケーションは大きなスパイクが発生しないことは既に確認出来ているが, どの選択肢が費用対効果が高くてスケーラブルなアーキテクチャか.

選択肢

A) Provide the JavaScript client with temporary credentials from the Security Token Service using a Token Vending Machine (TVM) on an EC2 instance to provide signed credentials mapped to an Amazon Identity and Access Management (IAM) user allowing DynamoDB puts and S3 gets. You serve your mobile application out of an S3 bucket enabled as a web site. Your client updates DynamoDB.

  • トークンを使用してセキュリティトークンサービスから一時的な資格情報を JavaScript クライアントに提供する
  • EC2 インスタンス上の TVM を使用して, IAM ユーザーにマップされた署名済みの資格情報を提供する

B) Register the application with a Web Identity Provider like Amazon, Google, or Facebook, create an IAM role for that provider, and set up permissions for the IAM role to allow S3 gets and DynamoDB puts. You serve your mobile application out of an S3 bucket enabled as a web site. Your client updates DynamoDB.

  • Amazon, Google, Facebook などの Web アイデンティティプロバイダにアプリケーションを登録して IAM を作成します
  • プロバイダのロールを設定し, S3 の get と DynamoDB の put 権限が付与された, IAM ロールのアクセス許可を設定
  • モバイルアプリケーションは Web サイトホスティングが有効になった Amazon S3 にて提供する

C) Provide the JavaScript client with temporary credentials from the Security Token Service using a Token Vending Machine (TVM) to provide signed credentials mapped to an IAM user allowing DynamoDB puts. You serve your mobile application out of Apache EC2 instances that are load-balanced and autoscaled. Your EC2 instances are configured with an IAM role that allows DynamoDB puts. Your server updates DynamoDB.

  • STS からトークンを使用して JavaScript クライアントに一時的な資格情報を提供する
  • TVM 使用して, IAM ユーザーにマップされた署名された資格情報を提供して DynamoDB へのデータ put を有効にする
  • ELB と AutoScaling を利用しした EC2 インスタンスからモバイルアプリケーションを提供する
  • EC2 インスタンスは, DynamoDB の put を許可する IAM ロールが構成されている

D) Register the JavaScript application with a Web Identity Provider like Amazon, Google, or Facebook, create an IAM role for that provider, and set up permissions for the IAM role to allow DynamoDB puts. You serve your mobile application out of Apache EC2 instances that are load-balanced and autoscaled. Your EC2 instances are configured with an IAM role that allows DynamoDB puts. Your server updates DynamoDB.

  • Amazon, Google, Facebookなどの Web アイデンティティプロバイダに JavaScript アプリケーションを登録
  • そのプロバイダの IAM ロールを作成し, DynamoDB へのデータ put を許可する IAM ロールのアクセス許可を設定する
  • ELB と AutoScaling を利用しした EC2 インスタンスからモバイルアプリケーションを提供する
  • EC2 インスタンスは, DynamoDB の put を許可する IAM ロールが構成されている

解答

  • 多分, B かな〜

なぜ, その答えなん?

  • 費用対効果が高い = コストを抑える, スケーラブルということを考えると EC2 を使うよりも S3 を使った方が良いと考える
  • Web アイデンティティプロバイダでアプリケーションを認証しておいて, 一時的に付与されるアクセス許可を以て AWS リソースにアクセスさせる

Web アイデンティティプロバイダについて