awsクラウドプラクティショナー受験記(2021/07)

# はじめに

2021年も終わりを迎えようとしているので、今年紙に勉強した内容をメモとして保存します(年末大掃除的な感じで)
※こちらの記事は、awsサービスの基本を詳しく説明しているではなく、個人的に受験するにあたって特に間違えた・イメージがつきにくかったものを個人的なメモです。
(補足などいただけると幸いです!)

## アンマネージドサービス、マネージドサービス
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701238/fbe10167-597d-d1be-78e3-14548464773e.png)


## インスタンスストア、EBS、EFS

### インスタンスストア

- EC2インスタンスに内蔵されているローカルストレージ
- 一時的なデータが保存され、EC2の停止と共にデータが消滅してしまう

### EBS(Elastic Block Store)

- EC2インスタンスにアタッチして利用するブロックレベルのストレージサービス
- EC2インスタンスを停止しても<font color="Red">データが残る</font>
- 一つにつき最大16TB
- スナップショットをS3に保存することが可能(バックアップ方式は<font color="Red">増分バックアップ</font>)
- <font color="Red">複数インスタンスにアタッチして使用することができない</font>
- 費用
  - ボリューム
  - スナップショット
  - アウトバウンドのデータ転送

### EFS(Elastic File System)

- ファイルストレージサービス
- <font color="Red">複数のインスタンスに共有することができる</font>
- マルチAZに冗長的にデータが保存される

## Elastic IPアドレスの料金が発生しない例

- Elastic IPがEC2インスタンスに紐づけられている
- 関連付けられたEC2インスタンスが実行中
- インスタンスに1つのElastic IPしか添付されていない

## awsのサポートチームについて

### プロフェッショナルチーム

- ビジネス成果の実現を支援

### コンシェルジュチーム

- 技術以外のサポート、請求及びアカウントのベストプラクティス

### aws Trusted advisor

- コスト最適化、セキュリティ、フォールトトレランス、パフォーマンス、サービス制限の5つに対しベストプラクティス
    - <font color="Red">ベージックプラン、開発者プランは4つの項目しか利用できない</font>
- プランが4種類
    - **ベーシック**
        - 無料、基本的なサポート
    - **開発者**
        - プロフェッショナルから業務時間内でサポート
    - **ビジネスサポート**
        - プロフェッショナルから24hのサポート
        - サポートセンターで電話・チャット・メールでのやり取りが可能
    - **エンタープライズサポート**
        - プロフェッショナルから24hのサポート
        - サポートセンターで電話・チャット・メールでのやり取りが可能
        - テクニカルアカウントマネージャーへ直接連絡可能

### AWS Artifact

- コンプライアンスレポートの作成
- AWSアカウントとの契約の確認、受託、管理を実施

### AWSサポートプラン

- **ベーシック**
- **開発者**
- **ビジネスサポート**
- **エンタープライズサポート**
    - 24h以内で一般的なガイダンス
    - ビジネスに不可欠なシステムのダウンは15分未満で解答される

## DBの種類

- おおまかに分けると、まずはRDS(リレーショナルデータベースサービス)とNoSQLの2種類
- RDS・RedShift・Redis(後述)は自動バックアップが標準装備

### RDS

- <font color="Red">トランザクション処理が得意</font>
- スケールアウトが難しい -> 煩雑なスケールアップが必要
- 取り扱えるRDSの種類(<font color="Red">6種類</font>)
    - Aurora: MySQLよりも約5倍、PostgerSQLよりも約3倍高速で互換性がある
    - PostgreSQL
    - MySQL
    - MariaDB
    - Oracle
    - SQL Server
- <font color="Red">バックアップが自動化</font>
- <font color="Red">マルチAZによる冗長化</font>

- +αで覚えておいた方が良いもの
    - RedShift: データウェアハウスサービス

### NoSQL

- RDSとは対照的にデータには一貫性が無いものの、高速に処理が可能
- 代表的な2種類
    - <font color="Red">DynamoDB</font>: 数ミリ秒のパフォーマンスで、テーブルを自動的にスケールアップする
    - <font color="Red">ElastiCache</font>: キーバリューストアと互換性のあるインメモリデータストアサービス
        - <font color="Red">Redis</font>: マスター・スレーブ型レプリケーションにより負荷分散できる
        - <font color="Red">Memcached</font>: ノードを追加したり減少させ、負荷分散できる

- +αで覚えておいた方が良いもの
    - Neptune: グラフ指向データベースサービス

## S3のストレージクラスについて

- コストがかかる順番としては「standard->standard-IA->One-Zone-IA」
- standard: 可用性は99.99%、耐久性はイレブンナイン
- One-Zone-IA: 可用性は99.95%、耐久性はイレブンナイン
- RSS(非推奨): 可用性は99.99%、耐久性は99.99%
- standard-IA: 可用性は99.9%、耐久性はイレブンナイン

※　IAとは「Infrequent access」の略称

### 各ストレージクラスの用途

- standard: 頻繁にアクセスされるデータ向け
- standard-IA: 存続期間は長く、あまり頻繁にアクセスされないデータ向け
- Intelligent-Tiering: アクセスパターンが変化する or 不明、存続期間が長いデータ向け
- One-Zone-IA: 存続期間が長く、頻繁にアクセスされないかつ重要度が低い
- Glacier: 取得時間が数分から数時間許容される長期アーカイブ向け
- Glacier Deep archive: 取得時間が12時間許容される長期アーカイブ向け

## ELB(Elastic Load Balancer)の種類

- NLB(Network LB): <font color="Red">トランスポートレイヤー(L4)</font>でのルーティング、<font color="Red">毎秒数百万のリクエスト処理</font>、※pre-warmingの申請が不要
- ALB(Application LB): <font color="Red">アプリケーションレイヤー(L7)</font>でのルーティング1つのクラスター内で複数のリクエストを処理
- CLB(Classic LB): ネットワーク・アプリケーションどちらでもルーティング可能、ただし静的マッピングのためサービスと同じ数だけコンテナインスタンスが必要、classicというだけあり後方互換性あり

## ネットワークACL・セキュリティグループの違い

### ネットワークACL(Access Control List)

- <font color="Red">サブネット</font>に適用させる、<font color="Red">ステートレス</font>なファイアウォール機能
- <font color="Red">設定した順番</font>でルールが適用される

### セキュリティグループ

- <font color="Red">EC2などのインスタンス</font>にセットする、<font color="Blue">ステートフル</font>なファイアウォール機能
- 設定した<font color="Red">すべてのルール</font>が適用される

### ※<font color="Blue">ステートフル</font>/<font color="Red">レス</font>の違い
- <font color="Blue">ステートフル</font>は戻りのトラフィックを考慮しなくて良い
- <font color="Red">ステートレス</font>は戻りのトラフィックも明示的に許可する設定が必要

## CDNの最適化について(Cloud Front/Global Accelerator)

### Cloud Front

- データ・動画・アプリケーション・APIなどを<font color="Red">低レイテンシーで高速転送</font>を行う
- <font color="Red">地理的に近いエッジサーバーにキャッシュを保持することで配信効率を向上</font>
- AWS Shield Standardが含まれている

### Global Accelerator

- 世界中にアプリケーションの可用性、パフォーマンスを改善
- <font color="Blue">地理的に近いエンドポイントにトラフィックを最適ルーティング</font>

## 間違えやすかった単語群

### Cloud Trail/aws config/System Manager

#### Cloud Trail

- インフラストラクチャ全体で<font color="Red">ユーザアクティビティログ</font>を取得する
- アカウントガバナンス・<font color="Red">コンプライアンス・運用監査・リスク監査を行う</font>

#### aws config

- リソース単位の監視・依存関係・設定履歴の確認が可能
- <font color="Red">リソース設定の評価・監査・審査できるサービス</font>

#### System Manager

- インフラストラクチャの可視化・制御・<font color="Red">運用タスクを自動化</font>

### インターネットゲートウェイ/NATゲートウェイ

#### インターネットゲートウェイ

- <font color="Red">VPC内のインスタンスとインターネット間の通信を行う</font>
- トラフィックの送信先をVPCルートテーブルに追加
- <font color="Red">public IPv4アドレスが割り当てられたインスタンスに対し、NAT変換を行う</font>

#### NATゲートウェイ

- private IPとpublic IPをn：1で変換
- privateネットワークからインターネットへの通信を実現
- プライベートサブネットからインタネットにルーティングを実現(インターネットゲートウェイは必要)

### IAM(Identity and Access Management)全般

#### IAM

- AWSアカウント(すべての権限をもつルートアカウントのこと)でIAMユーザの作成し、適切な権限を付与することで主にセキュリティの向上を実現
- AWS上でのアクセス管理は「IAMポリシーの作成」 -> 「IAMアイデンティティ(ロール・ユーザー・グループ) or リソースにアタッチ」

#### IAMポリシー

- AWSのどのリソースに対して、どのような操作を許可するか
- ユーザーやグループ・ロールにアタッチするもの

#### IAMユーザー・IAMグループ

- 人が手動で行う操作の権限
- <font color="Red">ユーザー</font>: AWSの操作を行う一人の人間
- <font color="Red">グループ</font>: 同じ権限(ポリシー)を複数アタッチする際に、グループを作成しそのグループに対象ユーザーを追加する -> つまりはIAMユーザーの集合体(<font color="Red">※グループの入れ子は禁止</font>)

要約すると権限が必要なユーザーが一人だとIAMユーザーを一つ作成すれば良いが、100人とかになった時に一人一人に権限付与するのは手間なので、グループ(例えば部署ごととか)に権限を付与してそこに対象のユーザーを追加した方が楽ということ。

#### IAMロール

- インスタンスなどが自動で行う操作の権限
- 例) EC2インスタンスがS3にフルアクセス可能