【AWS入門】初学者が知りたい10個のAWS用語

2022年7月14日のAWS Builders Online Seriesで初学者向けに開催された講座「いちばんはじめに押さえておきたい初学者向けAWS キーワードTop10」の内容をまとめました。

# 1. region
AWSが提供する世界中で使えるクラウドプラットフォーム、グローバルインフラストラクチャを理解するためのキーワードとなります。

> AWSクラウドは、全世界 26 の地域にある 84 のアベイラビリティーゾーンにまたがっており、オーストラリア、カナダ、インド、イスラエル、ニュージーランド、スペイン、スイス、およびアラブ首長国連邦 (UAE) に 24 アベイラビリティーゾーンと 8 AWS リージョンを追加する計画が発表されています。
![AWS_keyword_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/32918330-630f-7468-391e-c744209c0a89.png)
https://aws.amazon.com/jp/about-aws/global-infrastructure/
（2022年7月時点）

リージョンの定義は2つあります。
- 複数のAZが存在し、複数のインターネット接続で構成される
- AZ間距離が100km以内、それらがネットワークで繋がっている

リージョン間は、グローバルネットワークという太いたくさんのネットワークで繋がっています。

世界中に26地域あり、隔離され物理的にも分離された84のアベイラビリティゾーンで構成されています。

日本のリージョンは、東京と大阪です。
リージョンは、AWSコンソールから簡単に切り替えることができます。

# 2. アベイラビリティゾーン Availability Zone(AZ)
AZもまた、グローバルインフラストラクチャを理解するためのキーワードとなります。

リージョンとAZは、内包関係にあります。
- 少なくとも２つのトランジットセンタで外部と接続
  - トランジットセンタは、インターネット、AWS Direct Connect、別リージョンと
の結節点として機能します
- 1つ以上のデータセンターで構成される、互いに独立したインフラ
  - 自然災害、電源、ネットワーク等を考慮
- データセンター間は冗長化された独立した高速回線で接続

![AWS_keyword_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/273fcd84-8b69-5ae0-510f-0eb0b5eaba26.png)

1つのデータセンターに見えるものですが、実際には、1つ以上のデータセンターがネットワークでつながっている仮想データセンター群が正確なAZの定義です。サーバーが立ち上がる場所です。

なぜこのような設計となっているのでしょうか。
1つのAZが災害にあってもリージョンとして稼働し続けられるようにするためです。


AWSの基本は「マルチAZ構成」
複数のAZにまたがった構成にすることで、障害発生のリスクを低減に役立ちます。

# 3. Black Belt
AWSが動画で公開しているオンラインセミナーのことです。
分からないサービスがあったら、[アーカイブサイト](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)に資料と動画まとまっています。

# 4. Amazon VPC
AWSのサービスの1つです。
クラウド内にプライベートネットワークを構築
- 論理的に独立したネットワーク環境
  - 1アカウントで複数のVPCを作成できる
  - マルチAZ構成にすることができる

# 5. AWS STS（セキュリティ：認証と認可のサービス）
一時的に利用するトークンを発行するサービス
- 動的にIAMユーザーを作成し、ポリシーを適用できる
- IAM Role for EC2は、STSを利用

# 6. AWS IAM（セキュリティ：認証と認可のサービス）
セキュリティのAWSサービスの1つで、AWS操作をより安全に行うための認証・認可の仕組みです。
- AWS利用者の承認とアクセスポリシーを管理
- ユーザーごとに認証情報の設定ができる

**認証と認可とは？**
```
認証
その人が本人か確認をとること
例：ユーザーID/パスワード

認可
その人がどんなことをしていいのか許可を与えること
例:アクセス制御機能
```

**AWSルートアカウントとは？**
```
- アカウント作成時に使用したアドレスとパスワードでのサインイン
- アカウントすべてのAWSサービスとリソースへの完全なアクセス権限をもつ
```
セキュリティを考慮して、ルートユーザーは多要素認証(MFA)を設定し、極力利用しないべきです。代わりに使うのがIAMユーザーです。

**IAMの構成要素**
```
IAMユーザー：ログインと特定の権限を付与
IAMグループ：グループ内のユーザーに対して特定の権限を付与
IAMロール：特定のユーザーやAWSサービスに対し権限を委任
IAMポリシー：どのリソースにどの操作を許可するか権限を定義
```

##  IAMユーザー
ルートユーザーの代わりに、日常作業はIAMユーザーを使用します。
- 利用者ごとにIAMユーザーを作成
- リソースを操作する方法を提供（コンソール、CLI、SDK）
- デフォルトの権限はない
- 名前と認証情報で構成される


**IAMユーザーを使う方法**
```
1. ルートユーザーでIAMグループとIAMユーザーを作成
2. IAMグループに管理者権限でIAMユーザーを追加
3. ルートユーザーをサインアウトして、IAMユーザーでログイン
```
## IAMポリシー
どのAWSリソースに何ができるか定義するものです。
- IAMの「認可」を司る機能
- どんな条件で、だれが、どのリソースに、どんな操作をしていいか定義
- IAMユーザー、IAMグループ（任意）、IAMロールにIAMポリシーをアタッチする

## IAMグループ
IAMユーザーをまとめて管理するためのものです。運用者の規模が大きく大きくなったときに利用します。
- IAMユーザーは複数のIAMグループに所属することができる（最大10）
- IAMグループに関連付けられたIAMポリシーは所属するIAMユーザーに継承できる

## IAMロール
AWSリソースへのアクセスを委任するために使用します。
 - 誰に委任できるかという情報と、IAMポリシーが紐づいている
 - IAMユーザーやIAMグループには紐づかない
 - 一時的なセキュリティ認証情報を取得するときに使用される

AWSは人間以外にも、リソース同士・サービス同士の認証・認可を行うことも頻繁に行われます。
その時にはセキュリティを考慮して、ルートユーザーのアクセスキーを使わず、IAMロールを利用して、AWSリソースへのアクセスを委任します。

**仮想サーバーのサービス「EC2」上のプログラムから「S3」にアクセスしたい場合**
ずっと使える鍵をAWS IAMで作るのは、NG。
「EC2」のプログラムを共有したときに、鍵情報が洩れる可能性があるためです。
![AWS_keyword_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/3c0f4fab-5692-3adb-5cb7-5b2f72cacc0e.png)

IAMロールをIAMで用意し、「S3を触ってよし」というポリシーを付けます。
そのIAMロールをサービスEC2に付けます。
![AWS_keyword_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/597f64d0-bf84-12d4-729d-ef67ecfcb5e2.png)

その時AWS STSから一時的な鍵が払い出され、認証が通ってアクセスができるようになります。
![AWS_keyword_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/66101b9c-f90e-f2ae-2511-a574d1d0314c.png)


# 7. 結果整合性
S3のデータの整合性モデルの話です。
以前のデータ整合性モデルは、「結果整合性」を採用していました。
2020年12月にアップデートして現在のモデルは、「強力な書き込み後読み取り整合性」を採用しています。

主な変更点は、データ更新・削除したタイミングをいつ伝えるか。
結果整合性では、更新が終わっていない状態でも、OKの結果が返され、時間がたてば完了となっていました。
現在は完了してから、OKの結果が返ります。

詳細は、[Amazon S3 アップデート](https://aws.amazon.com/jp/blogs/news/amazon-s3-update-strong-read-after-write-consistency/)

※DynamoDBは、「結果整合性」の考え方がデフォルトです。

※「S3」とは、ストレージデータの置き場のサービス
データを上げたら上げた分無制限で、安くて安全に利用できます。
3拠点にまたがってデータのレプリケーションコピーを自動的に行うため、データを失う可能性が低いです。


# 8. 責任共有モデル
AWSとカスタマーで責任分担しています。
AWSはセキュリティを最優先事項としています。
データプライバシー（データの保存、管理、保護の方法）、カスタマーが選択します。
[Amazon S3 による効果的なデータ保存・保護方法(Youtube)](https://www.youtube.com/watch?v=tpSSQTHgra4)

# 9. CCoE（Cloud Center of Excellence = クラウド推進組織）

AWSがクラウド利用における課題をサポートする組織。

クラウド利用における課題
- 技術的ノウハウの収集・共有
- 利用基準がなく非効率
- 人材育成
- 統制のないセキュリティリスク

CCoEの主な役割
- ガバナンス
- 人・組織
- プラットフォーム
- 運用
- セキュリティ

# 10. エッジロケーション
高速で安定したアクセスのために、近くに存在するAWSリソース群
- グローバルで300箇所以上ある
- なるべくユーザーに近いネットワークでアクセスを提供
- 主に下記の機能を提供する基盤
  - コンテンツキャッシュ(Amazon CloudFront)
  - DNSサービス(Amazon Route 53)
  - セキュリティ(AWS WAF, AWS Shield)

# 参照元・リンク先
https://pages.awscloud.com/rs/112-TZM-766/images/10-things-network.pdf

https://aws.amazon.com/jp/blogs/news/2022-aws-beginner-learning/

https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-level-100/