AWS
devops
設計
資格

AWS 認定 Associate level を大体一ヶ月で取った話

はじめに

  • 7-8月の一ヶ月でAWS認定 associate levelの試験 Solutions Architect,Developer,Sysops Administratorの三つを取得したので、各試験で勉強したことをまとめました。

AWS経験とか

  • 前職まではオンプレのみでAWS経験なし。
  • サーバサイドエンジニア(主にPHP使用)
  • 今の会社に入って1年でVPC,EC2,RDS,ELB,S3を業務で使用。SNS,SQS、DynamoDBなどのサービスは触ったことがない。

勉強期間

  • 7月初めぐらいからの大体1か月勉強をしてから、各試験を受験しました。

試験の難易度について

  • 個人的な印象ですが、難易度は Sysops Administrator >> Solutions Architect > Developer だと感じました。
  • Solutions Architectでは可用性の配分が多く、知識 + 利用方法を問うものが多く、 Developer、SysOpsでは暗記していないと解けない問題(API名やデフォルト値の挙動)の問題が多く、中でもSysOpsは各分野の採点配分が15%で出題範囲が大きいことが難易度に起因していて、試験という形式の難しいところですが難易度と実用度は必ずしも比例していないと思います。

取得した資格

  • AWS Certified Solutions Architect - Associate 2017/7/23 取得
  • AWS Certified Developer - Associate 2017/8/13 取得
  • AWS Certified Sysops Administrator - Associate 2017/8/19 取得

学習を始める前の注意

出題範囲と配点をよく確認する。

  • 各認定のページで出題範囲とサンプル問題がダウンロードできるので、出題範囲と配点はよく確認しておく。
  • AWSのサービスは大量にあるのでむやみやたらに勉強するときりがない。出題されない部分ばかりを勉強してしまうと悲劇を起こします。(実体験)
  • 資格によって、各分野の採点配分が異なるので重点を置いて、学習する部分も出題範囲を目安にした方がより効率的に学習できると思います。
  • 公式のblack beltでもAWS認定についてのslideがあるのでこちらを確認することもオススメです。

試験更新タイミング

  • AWSのサービスは日々更新されていますが、試験はそうではありません。問題の答えが必ずしも最新のサービスと同一ではないので注意が必要。
  • 試験の更新タイミングはどこに書いてあるかが確証が得られなかったのですが、とりあえず今年と去年中頃ぐらいに変更されたサービスは範囲になっていないと思われます。(誰か教えてください。。。)

勉強方法

  • 大体下記のような形で勉強していました。
  • ソリューションアーキテクトの対策本を繰り返し読み、参考問題を解く(http://amzn.asia/hPvjP5K)
  • よくわからなかったり不十分な部分はblack beltのスライドを読む。(https://aws.amazon.com/jp/aws-jp-introduction/)
  • Developers.IOの再入門シリーズを読む (http://dev.classmethod.jp/series/aws-re-entering-2015/)
  • それでもよくわからないサービスは実際にAWSで触ってみる。
  • 各サービスのよくある質問を確認する。
  • サンプル問題、模擬試験を解く。
  • 理解が不十分なところは1からまた繰り返す。

対策本について

  • 現在一冊だけAWS認定についての対策本が出ています。
  • EC2,VPC,S3,RDS,SNSなど、使うことが多いAWSの基本的なサービスを図を含めた形でわかりやすい形で紹介しているので、まずはこの本を読むのがオススメです。ただ概要レベルで、本試験よりも難易度が全体に低く、サービスの細かいところを知ろうとする際には他の勉強も必要だと思います。しかし、この本の内容を隅々まで理解すれば、この本だけでも合格レベルに達することは可能だと思いました。

black belt

  • AWS公式が行っているWebセミナーです。AWS クラウドサービス活用資料集 (https://aws.amazon.com/jp/aws-jp-introduction/) やgoogleで AWS blackbelt {調べたい機能名}で検索するとslideshareにあがっている記事を検索することができます。サービスの概要やユースケースがわかりやすくまとめられているので、まずはこちらを読むのがオススメです。私はslideshareのアプリを携帯に入れて、電車の中とかで読んだりしていました。

Developers.IOの再入門シリーズ

  • AWSを利用した人は誰でも一度は読んだことがあるクラスメソッドさんのDevelopers.IOの再入門シリーズのアドベントカレンダーもサービスの理解の導入として便利だったのでblackbeltと合わせて補助的に読んでいました。ただし試験範囲ではないものあるので注意。

White Paper

  • ホワイトペーパーは古いものがあったり、black beltと内容がかぶるものがあったりで正直あまり読みませんでした・・・

サンプル問題について

  • AWS認定試験は公式に試験範囲が書いてあるものの具体的な項目までは記載されていないので範囲の絞り込みが難しいです。サンプル問題の内容は数少ない本番の試験で出る可能性が高い問題なので、わからない部分があった場合はよく復習することをおすすめです。

よくある質問について

  • 実際に存在するユースケースから問題が作成されることもあるらしく、よくある質問にある設定方法や課題解決が出ることもあるので、各サービスのよくある質問を読んで、black beltだけでは把握しきれない部分も理解しておくことも重要です。

AWSを実際に触る

  • associate lebelの試験はAWSに触らなくても合格することは可能だと思います。ただ実際にAWSのコンソールやCLIで環境を構築した方がどのサービスが連携しているかということが理解しやすいので、理解が不十分だと思った箇所はAWSで実際に設定・構築してみることがおすすめです。

模擬試験

  • ネット上で各試験の模擬試験を受けることができます。ある程度勉強して自信がついたら本試験を受ける前に受けることおすすめです。
  • 概要
    • 試験時間 30分
    • 問題数 20問
    • 受験料 2,160円
    • ネット上でブラウザから受験する。
    • 問題は複数選択からの択一もしくは複数選択で本番と同様
    • 答えは教えられず、分野ごとの正解率のみが送られる。
  • 問題量は本試験より少ないですが、数少ない本試験と同じ環境の問題を受ける方法です。ただ全体的に本試験より難易度が低く感じたので、模擬試験の点数が高かったとしても模擬試験の正解率は本試験の合格率というよりも各分野への理解度チェックぐらいに思っていた方が良いと思います。あまり問題数が多くないようで、複数回受けると同じ問題が出るようです。

本試験

  • 本試験はネット上から申し込みを行い、テストセンターで受験します。
  • 概要
    • 試験時間 80分
    • 問題数 55問
    • 受験料 16,200円
    • ネット上から申し込みして、テストセンターで受験
    • 問題は複数選択からの択一もしくは複数選択
    • 答えは教えられず、分野ごとの正解率のみが送られる
  • 本試験はテストセンターで受験します。結果は最後の問題を答えた後にすぐに表示されます。 テストセンターで受験する際は身分証明証が2つ(顔つきのものともう一つ)が必要になるので注意。

学習範囲について

  • 各試験の分野で学習して重要だと思った部分を記載します。ここに書いてないからといって試験に出ないわけではないです。。。

EC2 (Elastic Compute Cloud)

  • クラウド環境上に仮想サーバーを構築するサービス
  • 抑えておきたい点
    • ユーザーデータとメタデータの違い
      • ユーザーデータはインスタンスの起動時にコマンドを渡すことができる。
      • メタデータはインスタンスのpublic IP,Instance Typeなどのインスタンスの各種情報を取得することができる。
    • オンデマンドインスタンス
      • 通常で購入するインスタンスのこと
    • リザーブドインスタンスとスポットインスタンスの活用
      • リザーブドインスタンスは1年、3年単位でインスタンスを予約して購入することで安く利用できる。
      • スポットインスタンスは入札ベースでインスタンスを購入し、安く利用できる。
    • EBS最適化インスタンス
    • KMSのキーペアをSSHの鍵にできる
    • EC2のライフサイクルを把握する
    • AMI(Amazon Machine Image)
      • Amazon EBS-Backed と Instance Store-Backed の違い
        • Instance Storeは停止ができない。
      • AMIは指定したregionのみで使用できる。
      • 暗号化
        • 暗号化されたAMIはprivateとなり、他のアカウントと共有することができない。
    • 基盤にしているソフトウェアは Xen
  • 参考にしたURL

VPC (Virtual Private Cloud)

  • クラウド上にネットワークを構築することができるサービス
  • 抑えておきたい点
    • セキュリティグループとネットワークACLの違い
      • セキュリティグループ
        • 許可のルールのみを設定できる。
        • インスタンスレベルで設定できる。
        • ステートフル
          • インバウンド、アウトバウンド両方の通信の設定が必要
        • デフォルトの設定
          • セキュリティグループ外からのインバウンドの通信は全て拒否
          • 同一セキュリティグループ内からのアウトバウンドの通信は全て許可
          • 同一セキュリティグループ内での双方向の通信は全て許可
      • ネットワークACL
        • サブネットレベルで設定できる。
        • 許可と拒否のルールが設定できる。
        • ステートレス
          • 通信したい場合、インバウンド、アウトバウンド両者の設定をする必要がある。
        • デフォルトの設定
          • インバウンド、アウトバウンドの両者が全許可
    • パブリックサブネットとプライベートサブネットの違い
    • NATインスタンス
    • インターネットゲートウェイ
    • 仮想VPNゲートウェイ
    • プレースメントグループ
    • DHCPオプションセット
  • 参考にしたURL

CloudWatch

Auto Scaling

  • AWS上にdeployされた仮想サーバー群を条件によって、スケールさせるサービス。負荷が大きい時にはサーバー台数を多く、少ない時はサーバー台数を少なくする。
  • 抑えておきたい点
    • auto scaling policy
      • auto scalingする条件
    • auto scaling launch configuration
      • auto scalingで扱うインスタンスの種類
    • auto scaling group
      • auto scalingの台数
    • スケールアップ、スケールダウン、スケールイン
    • クールダウンの設定
      • Auto Scaling グループにおける構成可能な設定で、以前の規模の拡大や縮小が適用される前に、Auto Scaling が追加のインスタンスを起動または終了しないようにします。
    • デフォルトの挙動について
    • auto scalingのインスタンスはstoppedのステータスを持たない。
    • auto scalingの利用自体は無料であること
  • 参考URL

S3 (Simple Storage Service)

Glacier

RDS (Relational Database Service)

  • マネージネド型のRDBMSサービス
  • 抑えておきたい点
    • AZサービス
    • 利用できるデータベースエンジンの種類
      • MySQL
      • MariaDB
      • PostgreSQL
      • Oracle
      • SQL Server
    • Mutli AZ配置
      • Multi AZのにすることの利点について
    • プライマリーセカンダリーの扱い
    • リードレプリカの同期タイミング
      • 非同期で行われる
    • フェイルオーバー
  • 参考URL

ELB (Elastic Load Balancing)

Route 53

  • 可用性が高くスケーラブルなクラウドドメインネームシステム (DNS) ウェブサービス
  • 抑えておきたい点
    • ルーティングポリシー
      • シンプルルーティングポリシー – ドメインで特定の機能を実行する単一のリソースがある場合に使用します。たとえば、example.com ウェブサイトのためにコンテンツを提供する 1 つのウェブサーバーなどです。
      • フェイルオーバールーティングポリシー – アクティブ/パッシブフェイルオーバーを設定する際に使用します。
      • 位置情報ルーティングポリシー – ユーザーの位置情報に基づいてトラフィックをルーティングする際に使用します。
      • レイテンシールーティングポリシー – 複数の場所にリソースがあり、レイテンシーの最も小さいリソースにトラフィックをルーティングする際に使用します。
      • 複数値回答ルーティングポリシー – アトランダムに選ばれた最大 8 つの正常なレコードを持つ DNS クエリに Amazon Route 53 を応答させる場合に使用します。
      • 加重ルーティングポリシー – 指定した比率で複数のリソースにトラフィックをルーティングするのに使用します。
    • Aliasレコードでzone apexを解決する。

CloudFront

  • Amazon CloudFront は低レイテンシーの高速転送によりデータ、ビデオ、アプリケーション、API をビューワーに安全に配信するグローバルコンテンツ配信ネットワーク (CDN) サービス
  • 抑えておきたい点
    • 静的コンテンツをキャッシュし、CroundFrontからキャッシュを返すことでウェブサーバーへの負荷を減らすことができる。
    • エッジロケーション、アクセスされた場所から近いキャッシュサーバー
  • 参考URL

EBS (Elastic Block Store)

ElastiCache

  • クラウドでのメモリ内データストアまたはキャッシュのデプロイ、運用、および縮小/拡張を容易にするウェブサービス
  • 抑えておきたい点
    • マネージドサービス
    • RDBMSのクエリ結果をインメモリにキャッシュしてDBの負荷を下げることができる。
    • RedisとMemchachedの二週類を選んで使うことができる。
    • セッションキャッシュにも利用できる。
    • Multi AZ - Multi AZの利点について
    • フェイルオーバー時の挙動
  • 参考URL

IAM (Identity and Access Management)

  • AWS操作を権限管理周りの仕組み
  • 抑えておきたい点
    • ロール、ユーザー、グループの違い
    • 暗号化
      • 暗号化されIAMは鍵を持つ人以外で共有することができない
    • IAMで使う認証情報の種類について
      • アクセスキーID
      • シークレットアクセスキー
      • パスワード
      • MFA(多要素認証)
    • 最小責任で設定することがベストプラクティスということを理解する
    • JSON形式で記載する
    • デフォルトの設定は全拒否
      • 明示的な拒否は明示的な許可よりも優先される。
    • AWS STS (AWS Security Token Service)
      • Tokenを利用することで一時的なユーザーを作成し、権限を委譲することができる。
    • AWS federationによる連携
    • IAMのベストプラクティスは読んでおいたほうがよい。
    • IAMの使用自体は無料
  • 参考URL

CroudFront

KMS (AWS Key Management Service)

Trusted Advisor

  • ベストプラクティスに沿ってリソースをプロビジョニングすることにより、システムのパフォーマンスや信頼性を向上させ、セキュリティを高め、コスト削減の可能性を探せるサービス
  • 抑えておきたい点
    • コンソールパネルから利用者のaws環境を「コスト最適化」、「パフォーマンス」、「セキュリティ」、「フォールトトレーランス」の観点から分析し、推奨設定を教えてくれる。
  • 参考URL

CloudTrail

  • AWS CloudTrail は、AWS アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を可能にするサービス
  • 抑えておきたい点
    • 各APIの呼び出しを記録して、ログをS3に保存することができる。
  • 参考URL

AWS Config

  • レポジトリ情報からAWSリソースの変更履歴、構成変更を管理するサービス
  • 抑えておきたい点
    • AWS Configに対応しているサービス
      • EC2
      • VPC
      • EBS
      • IAM
      • RDS
      • CloudTrail
      • Certificate Manager
  • 参考URL

AWS Import/Export

  • 安全な物理的な移動を目的として設計されたストレージアプライアンスを使用して、または AWS への移動をスピードアップさせるためのデータ転送ソリューション
  • 抑えておきたい点
    • 数百テラを超える場合はこれを使う。
    • 大量データテラからペタバイト、最近はsnowmobileというのが出てヘクサバイトまで対応し始めた。
    • VMImport/Exportと混同しやすい。
  • 参考URL

AWS Storage Gateway

  • AWS Storage Gateway は、オンプレミスアプリケーションが AWS クラウドでのストレージをシームレスに使用できるようにする、ハイブリッドストレージサービス
  • 抑えておきたい点
    • ユースケース
      • オンプレミスの環境とクラウドの環境を接続して、段階的な移行を実現する。
      • S3やGlacierとの連携を行うことができる。
  • 参考URL

AWS Direct Connect

DynamoDB

SQS (Amazon Simple Queue Service)

  • Amazon Simple Queue Service (SQS) は、完全マネージド型のメッセージキューイングサービス
  • 抑えておきたい点
    • ユースケースについて
    • SNSと連動した利用方法について
    • ロングポーリングについて
      • ロングポーリングを行った方が良いケースについて
      • 各種設定値の意味について
    • API仕様
  • 参考URL

SNS (Amazon Simple Notification Service)

SWF (Amazon Simple Workflow Service)

Elastic Beanstalk

OpsWork

CloudFormation

  • AWS CloudFormation は、開発や本運用に必要な、互いに関連する AWS リソースのコレクションを作成しておき、そのリソースを適切な順序でプロビジョニングするためのサービス
  • 抑えておきたい点
    • インフラのリソース作成の自動化を行うツールであることに対し
    • 記述形式
      • JSON
      • YAML
    • CloudFormationの用語
      • Resources
      • Stack
      • Template
      • Parameter
      • Conditions
      • Outputs
    • CloudFormer
    • デフォルト時の挙動について
      • デフォルト時の途中でResourceの作成に失敗した場合
    • 参考URL
    • https://aws.amazon.com/jp/cloudformation/faqs/

セキュリティ

AWS Directory Service

Aurora

サービスの各種制限

各試験の印象

  • 基本的にはAWSの試験範囲をよく確認することが重要です。個人的に受けた各試験の傾向の印象を記載します。

Solutions Architect

  • 可用性の視点が重視されている。
  • EC2,VPC,S3,Glaciar,Elasticache,ELB,RDS,EBSなどを使った構成や結果整合性などの仕組みは抑えておくべき。
  • AWSの各ベストプラクティスに沿った内容が出るのでblackbeltやwhite paperなどでベストプラクティスを把握しておく。
  • 案件でがっつりAWSを使っている人はほぼ勉強でも理解できる範囲は大きいと思った。
  • ELB EC2 RDSを利用したMulti Server Patternは一度自分で作っておくと勉強になる。

Developer

  • 実際にAWSを利用したプロダクトの開発が重視されている。
  • AWS SDKのAPI名や各設定値がそのまま出てくることがある。
  • SNS,SQS,DynamoDBなど、AWSのマネージドサービスを抑えておく必要がある。

Sysops Administrator

  • Solutions Architect の範囲 + デプロイ面(Opswork,Elastic Beanstalk)や運用面(CloudWatchやコスト計算)などの視点が重視されている。
  • 他の資格の二つと比べて、配点分野が多岐にわたっているので広く用語を覚える必要があります。

おわりに

  • まずは基礎的な知識を叩きこみたいと思って、一気に受験しました。assciate levelはAWSを活用するというレベルよりもまずAWSのことをよく知ろうという温度感なので、AWSを触り始めた。もしくはもっとよく知りたいという人はオススメだと思います。

  • 次はprofessional levelを目指そうと思います!

  • 何か記事の間違いやこうしたほうがいいよ。などの指摘をいただけるとありがたいです。