はじめに

どうも、こんにちはニートです。
ここではのりぴーとでも書いたほうがいいのであろうか
どっちでもいいかな~。
ちなみに、今年からcloudpackで新入社員としてお世話になってます!

今回、社内勉強会に参加してみたので、いい機会だからとりあえず書いてみようかなと
かる~い気持ちで書いておくんで、あんまり深く読まないでください。
そもそも「こんなブログ誰が読むのか、どんな人に需要があるのか」
自分にはわからないですが、個人の日記程度に書いておきたいと思います。

勉強会について

第一回、社内勉強会の内容は、
「DevOps Pro認定」についてです。

もうすでにタイトルから意味がわからないレベルの自分でしたが、
とりあえず参加しておけば何か見につくであろう、
という淡い気持ちで参加しました。

勉強会の参加メンバーは、自分含めて5人でした。
たぶん開始時も終了時も、仕事されてる方が多かったので、
参加メンバーは少なかったのでしょう。

AWSのDevOpsについてはこちら
AWS 認定 DevOps エンジニア – プロフェッショナル

勉強会の流れ

    試験概要、傾向など
    サンプル問題を解いてみよう!
    答え合わせ

今回の流れはこんな感じ。
サンプル問題を解いて、答え合わせで解説いただければ自分でもわかるっしょ~
なんて思っていましたが、現実は厳しかった・・・

今回の内容についての注意

正直な話、参加してる方々のレベルが高すぎ(自分が低すぎ&前提知識不足)て
何を言っているのか聞き取れませんでした。。。
なので、以下の私が聞き取った内容は
『まったく的外れな話』が書いてある可能性が高いです。
もし発見しても「アホなこと書いてるな~」ぐらいで流してください。

内容

まず簡単に概要から
「AWS認定DevOps Pro試験」とは
6月2日~3日にAWS Summit Tokyoで開催された際に開始された試験らしい

この試験の受験対象者には以下が求められます。

  • AWS 認定デベロッパー – アソシエイト、またはAWS 認定 SysOps アドミニストレーター – アソシエイトの取得
  • AWS 環境のプロビジョニング、運用、および管理における 2 年以上の経験
  • 1 つ以上のハイレベルプログラム言語でのコード開発の経験
  • スクリプト作成やプログラミングによる自動化とテストの経験
  • アジャイル開発プロセスやその他の開発プロセスと方法論の知識

ちょっとちょっと!!
前提の時点で意味がわからないんですけど!!!
どうしよう、来る場所間違えたのだろうか・・・

試験ガイドによると、出題範囲と配点は以下のものらしい

    分野 1: 継続的配信とプロセス自動化 55%
    分野 2: モニタリング、メトリックス、およびログ記録 20%
    分野 3: セキュリティ、ガバナンス、および検証 10%
    分野 4: 高可用性と伸縮自在性 15%

話によると、
「継続的配信とプロセス自動化」の比重が高いので、ここを押さえておけば
あとは日常業務の範囲でわかるらしい。
で、その「継続的配信とプロセスの自動化」について話を聞いていたのですが、

    1.1 ローリングデプロイ?
    アプリケーションのversion1に対して、version2を無停止でアップグレード。
    version1やversion2が存在している中で両方に効率よく流すバージョン管理?
    1.2
    インフラストラクチャの設定及び自動化に関する理解
    インフラストラクチャの設定、クラウドフォーメーション及び自動化など
    どういう使い方をすればどういうアプリを配布できるか
    AWS無停止で最新のアプリケーションの配信をするときにどのようにやるか
    1.3 聞き取れなかった
    1.4 ユーザーデータを使ったもの、ブートストラッピングなどの問題

上記の内容を理解していると解けるという話でした。(まず日本語が聞き取れていない)
他の人は普通に理解している様子・・・

本試験は80問を170分で回答するということなので
1問2分ぐらいかけることができるという話

自分は「まあ、現状はわかんないけどとりあえずサンプル問題いくか!!」
という感じで問題解きに進みました。

サンプル問題について

みなさんも是非、解いて見ましょう!

サンプル問題はこちら
AWS 認定 DevOps エンジニア – プロフェッショナル サンプル試験問題

第一問目!!

    1)あなたは Amazon EBS ボリュームを使用する Amazon EC2 上で実行されているアプリケーションサーバー向けに、自動データバックアップソリューションを導入する業務を担当しています。
    単一障害点を回避し、データの耐久性を高めるために、分散データストアを使用してバックアップを取りたいと考えています。
    また、データを 1 時間以内に復元できるように、毎日のバックアップを 30 日間保存する必要があります。
    アプリケーションサーバーでスケジューリングデーモンにより毎日スクリプトを実行し、この仕組みを実装するには、どうすればよいですか?

えーっと・・・

わからない!!!

Amazon EBSってなんか保存できるやつだっけ・・・
EC2はサーバー的なやつだよな・・・
単一障害点ってなんだろう、なんかやばそう
とりあえずバックアップと復元ができるスーパープログラム作って入れるって話だろうか・・・
選択肢はどうだろう・・・

  • A) ec2-create-volume API を呼び出すためのスクリプトを作成し、現在の日時を使用して Amazon EBS ボリュームにタグを付けて、バックアップデータを 2 つ目の Amazon EBS ボリュームにコピーする。ec2-describe-volumes API を使用して既存のバックアップボリュームを列挙する。ec2-delete-volume API を呼び出して、30 日より前の日時のタグが付けられているバックアップボリュームを削除する。
  • B) Amazon Glacier UploadArchive API を呼び出すためのスクリプトを作成し、現在の日時を使用してバックアップアーカイブにタグを付ける。ListVaults API を使用して既存のバックアップアーカイブを列挙する。DeleteVault API を呼び出して、30 日より前の日時のタグが付けられているバックアップアーカイブを削除する。
  • C) ec2-create-snapshot API を呼び出すためのスクリプトを作成し、現在の日時を使用して Amazon EBSスナップショットにタグを付ける。ec2-describe-snapshots API を使用して既存の Amazon EBS スナップショットを列挙する。ec2-delete-snapshot API を呼び出して、30 日より前の日時のタグが付けられている Amazon EBS スナップショットを削除する。
  • D) ec2-create-volume API を呼び出すためのスクリプトを作成し、現在の日時を使用して Amazon EBS ボリュームにタグを付けて、ec2-copy-snapshot API を使用して新しい Amazon EBS ボリュームにデータをバックアップする。ec2-describe-snapshot API を使用して既存のバックアップボリュームを列挙する。ec2-delete-snaphot API を呼び出して、30 日より前の日時のタグが付けられている Amazon EBSバックアップボリュームを削除する。

選択肢、長っ!

おいおい、APIってなんか他のプログラムから呼び出せる便利ななんかなんだろ?
それも覚えるとかもうわかんないですよ・・・

とりあえずわからないから「D」を選択。

答えあわせによると「C」らしい
(答えは公式に置いてなかったので、会場の答えです)

Snapshot取得してS3を使用
単一障害点を回避する
S3の耐久性は高い
SnapshotをS3に入れておく
Glacierだと1時間の取り出しは厳しい

といったのが会場の意見でした。(内容はわからない)

「このくらい一般常識だよね~」という話があって
みんなコレを普通に覚えてるのか!!
という衝撃を受けました。

あとはサンプル問題2~10まであるんですけど
全部わからない!という状態でした、

その中でも4番について

    4)あなたは、Auto Scaling group に含まれる Amazon EC2 インスタンスが起動された後、設定とアプリケーションの動的なデプロイを自動化するためのシステムを導入しました。このシステムでは、マスターノードのないスタンドアロン構成で機能する設定管理ツールを使用しています。アプリケーションの負荷は随時変化するため、新しいインスタンスは、インスタンスのオペレーティングシステムの起動後 3 分以内に稼働状態にする必要があります。各デプロイステージが完了するまでかかる時間は以下のとおりです。
    • 設定管理エージェントのインストール: 2 分
    • アーティファクトを使用したインスタンスの設定: 4 分
    • アプリケーションフレームワークのインストール: 15 分
    • アプリケーションコードのデプロイ: 1 分
    このようなスタンドアロンのエージェント構成でのデプロイを自動化するには、どの手順を採用する必要がありますか?

こちらの問題、
簡単にまとめると「なんかいろいろあるけど3分で支度しな!」
ということらしい。

つまり、
4分かかるものと、15分かかるものは事前にまとめておいて
2分+1分=3分で稼動させる!!
という話でした。これには目から鱗状態。

じゃあ選択肢はなんなのってことですが

わかんねえ!!!

とりあえずまとめられてる感じの選択肢を選べばいいという感じ。
答えは「C」らしいです。

最後に

参加したものの、ほぼまったく身についてないような状態で
終わってしまったのが悲しいところ。
今後、こういったのが普通にわかるようにならないと仕事していけないのかな~と不安になる次第でした。
サンプル問題の答えや解説などはこちらを参考にしてください。

AWS認定DevOpsエンジニア-プロフェッショナル試験のサンプル問題を解いてみる #awssummit
http://yoshidashingo.hatenablog.com/entry/2015/06/02/101355

【AWS】AWS 認定 DevOps エンジニア – プロフェッショナルの模擬試験
http://qiita.com/iron-breaker/items/cc7dc0ae7ab526539337

元記事はこちら

cloudpack社内勉強会に参加した話