1ヵ月で取得するAWSソリューションアーキテクト (1日目)

#概要

自分の経験が他の人の役に立つといいなってわけで書いていこうと思います。
…といいつつも半分、自分が勉強する過程を振り返るための目的を含んでます。

中途半端に勉強してたAWS。
最近、このQiitaに記事を書き始めたの良い機会にソリューションアーキテクトを
ちゃちゃっと取得してしまおうということを目的に書きます。

##資格の内容

試験を受けるからにはまずは敵を知ることというわけで、
とりあえず、資格要項について記載されたページを読んでみる。

https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/

↑ググるとすぐに出てくるこれですが…

```

AWS 認定ソリューションアーキテクト – 
アソシエイト試験は、AWS プラットフォームでの分散アプリケーションと
システムの設計経験がある個人を対象としています。

この試験では以下について理解していることが求められます。

・AWS におけるスケーラビリティ、高可用性および高耐障害性の設計とデプロイ
  ―既存のオンプレミスアプリケーションの AWS への引き上げおよびシフト

・AWS とのデータの送受信
  -データ、コンピューティング、データベースまたはセキュリティ要件に基づく
   適切な AWS サービスの選択

・AWS アーキテクチャのベストプラクティスの適切な使用の識別

・AWS のコストの予測とコストコントロールメカニズムの識別

```

要はAWSを使ってシステム設計する人を対象とし、AWSの基本事項と
コスト・設計面におけるベストプラクティスを理解している人であれば合格できる？

ふ～ん…

じゃあ、AWSの基本事項を理解していけばいいってことか…
そしたら、実際にアカウントを作って、使ってみるっきゃないでしょ！

##AWSアカウントの作成
というわけで実際にAWSアカウントを作成してみました。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/b4d88381-f7ce-f572-51ca-b8b945f00463.png)

結構、色々とめんどくさかったです。

順序立ててやるべきことを書くと以下のような形でしょうか。

1.まずは「AWS」とGoogleで検索をかける。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/38583b2e-5cd5-6191-1b78-e379411a3060.png)

検索結果の一番上に表示された「アマゾンウェブサービス(AWS) -クラウドコンピューティングサービス」をクリックします。

2.ルートアカウントを作成する

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/b3d5be2d-7398-3dd4-8b65-85af0b144f18.png)

とりあえず、「コンソールへサインイン」をクリックしてみます。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/e8e4cf1a-bd64-eff1-d4d7-ee1a9f4a3b6d.png)

どうやって、アカウントを作成するのか？

アカウントは無いので、唯一クリックすることの出来る
「ルートアカウント認証情報を使用してサインイン」
をクリックしてみます。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/8604082e-71a1-9a0f-e5c3-756a21b4e43e.png)

お～、「Sign In or Create an AWS Account」と表示されました。
メールアドレスを入力して「I am a new user」を選択し、
「Sign in using our secure server」をクリックしてみます。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/d2ac58fa-5f65-fc0e-7c99-469b742a92d0.png)

アカウント作成画面が表示されました。
入力して次に進むと…

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/8b103750-d523-9bf4-96b0-b4ef61f25b61.png)

あれっ…元の画面に戻ってきました。

気を取り直して、「ルートアカウント認証情報を使用してサインイン」
をクリックしてみます。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/8604082e-71a1-9a0f-e5c3-756a21b4e43e.png)

また、同じ画面ですがここに先ほど作成したアカウントの情報を入力して、
「Sign in using our secure server」をクリックしてみます。

![image](https://qiita-image-store.s3.amazonaws.com/0/138274/443f21b1-ff69-d981-5856-d8019e6d7d61.png)

おっ、入力画面が表示されました。
ここにアカウント情報を入力してどんどん次に進めていきます。

…

3.IAMアカウントを用意する

まぁ、アカウントの作成手順はどこかのサイトに書いてあいたりするので割愛しますが、
要はAWSを使用するには当然、アカウントが必要なわけで…
AWSのアカウントには2種類あるようです。

(1)ルートアカウント
AWSに関するあらゆる権限を有したアカウント。
あらゆるということは当然、リソースを無制限に使用することができます。

そして、ルートアカウントはクレジットカードと紐づけるので、
アカウントを乗っ取られたお金の面にも影響が…

というわけでルートアカウントにはMFA(Multi-Factor-Authentication)の設定を行います。

MFAってなんじゃい？というわけなんですが、
まぁ、ワンタイムパッドのような形で発行されるパスワードみたいな感じです。
※個人の主観です。

要はアカウント + パスワード + α のような形でセキュリティ強化を目的にしています。
詳しくは以下のページに書かれています。

Multi-Factor Authentication
https://aws.amazon.com/jp/iam/details/mfa/

(2)IAMアカウント
IAMアカウントを知る前にどうやら「IAM」という言葉を理解する必要がありそうです。

Amazonさんの説明によると…

AWS Identity and Access Management (IAM) 
ユーザーに対して AWS へのアクセスを安全に制御するための仕組み

とのこと。

そして、具体的には以下の機能を提供してくれるとのことです。

[1]AWS アカウントへの共有アクセス
パスワードやアクセスキーを共有しなくても、AWS アカウントのリソースを
管理/使用するためのアクセス権限を他の人に付与できる。

[2]詳細なアクセス権限
細かくアクセス権を設定し、管理することができる。

[3]AWS リソースへの安全なアクセス
 AWS リソースにアクセスするために必要な認証情報を安全に付与できる。

[4]ID フェデレーション
他の場所（社内ネットワーク、インターネット ID プロバイダーなど）でパスワードをすでに持つユーザーに、AWS アカウントへの一時的なアクセスを許可する。

これはなかなかイメージがつきませんが…
別のサービスで利用しているアカウントにアクセス許可を行える機能ということでしょうか…

[5]保証のための ID 情報
AWS CloudTrail を使用している場合、アカウントのリソースを
リクエストしたユーザーに関する情報がログレコードに保存される。

文章から読み取れる情報だけですが、これは証跡を残す機能を意味しているようです。

[6]PCI DSS への準拠
マーチャントまたはサービスプロバイダーによるクレジットカードデータの処理、
ストレージ、および伝送をサポートしており、
Payment Card Industry（PCI）Data Security Standard（DSS）に準拠している。

あかん…完全に見失いました。

マーチャント？
Payment Card Industry（PCI）？
Data Security Standard（DSS）？

というわけでそれぞれを調べてみました。

マーチャント：
英語で「商人」という意味。そこから派生して業者という意味合いもある。
今回の場合は業者という意味で捉えたほうが良いのでしょうか。

PCI DSS:
クレジットカード情報および取り引き情報を保護するために2004年12月、
JCB・American Express・Discover・マスターカード・VISAの
国際ペイメントブランド5社が共同で策定した、
クレジット業界におけるグローバルセキュリティ基準
(出典 Wikipedia)

これは調べてみたら言葉の通りでしたね。
ちゃんと基準に則ってお金のデータを管理してますよという感じですかね。

[7]多くの AWS サービスとの統合
IAMアカウントは複数のAWSサービスと連携することが可能。

[8]結果整合性
ここはAmazonさんの言葉をそのまま引用しますが、

```

IAM は、世界中の Amazon のデータセンターに配置された
複数のサーバー間でデータを複製することで、高可用性を実現します。

何らかのデータの変更リクエストが成功すると、
変更はコミットされ、安全な場所に保管されます。

ただし、変更は IAM 全体で複製される必要があり、
これには多少時間がかかることがあります。

```

要は世界中にあるAmazonの複数サーバー間でデータを複製しあって可用性を高めている。
IAMとは個人単位で行われるものではなく、皆が使用しているサーバー単位で
複製が行われるので変更が反映されるまで時間が掛かることがある。

う～ん、イメージつきにくいですが、IAMというのはそういうものなのですね。

[9]使用料無料
まぁ、これは触れなくてもいいですね。

1日目はアカウントも出来たし、アカウントの種類が2種類あることも分かったので、
とりあえず、ここまでということで。

※実はここまで書くのに2日掛かってんじゃんというのはとりあえず置いておいて…