nagu log

忘れないために

ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得のおぼえがき

f:id:csnagu:20191123173559p:plain

はじめに

山浦 清透(@ kiyotoyamaura)さんがUdemyで公開している「AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得」を観てみたおぼえがき。
AWSのLambdaやS3は使ったことがあったが、AWSのサービスを組み合わせてインフラを作ったことがなかったため、勉強がてらやってみた。

Udemyのコース: https://www.udemy.com/share/101YbyCUYed1xXR3Q=/

コースの内容

コースは基礎編と発展編の2セクションに大別できる。

基礎編

IAM / CloudWatch / CloudTrail / VPC / EC2 / Elastic IP / Route53 / RDS / WordPress についての説明とハンズオンがある。
主にやることは以下の通り。

GCPやAzureなど使ったことがなくAWSほんとになんもわからんという人向けに感じた。キイタコトアル人は2倍速で再生すると丁度いい。 インフラを作ろうということで、コースの途中でTCP/IPやHTTPとはみたいな話があるが、あまり深く掘り下げないので別に参照するものをおいていたほうが良さそう。下記参考書籍を読んでおけば特に詰まることなく進められた。

参考書籍:
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
マスタリングTCP/IP―入門編―(第6版)

発展編

S3 / CloudFront / ELB / RDS / AMI / CloudWatch / IAM についての説明とハンズオンがある。 主にやることは以下の通り。

  • WPの画像保存先をS3に変更する
  • S3の画像をCloudFrontでキャッシュする
  • 独自ドメインで画像を取得できるように代替ドメインを設定する
  • EC2インスタンスを増やしてELBでWebサーバを冗長化する
  • RDSを冗長化する
  • CloudWatchでメトリクスの監視設定をする。アラートを飛ばす
  • IAMでポリシーやユーザグループ、ロールなどを作成してアクセス管理を学ぶ

インフラ設計における重要な観点

  • 可用性 ... サービスを継続的に利用できること
  • 性能・拡張性 ... 性能は十分であること、将来的にシステムを拡張できること
  • 運用保守性 ... 運用保守がしやすいこと
  • セキュリティ ... 情報が守れらていること
  • 移行性 ... 他のシステムに移行しやすいこと

メディアの保存先をWebサーバーから分離するメリット

  • Webサーバのストレージをメディアで圧迫しない
  • HTMLへのアクセスと、メディアへのアクセスを分けて負荷分散する
  • Webサーバの台数を増やしやすくなる
  • コンテンツ配信サービス(CloudFront)から配信することで、高速化できる

IAMについて

  • ポリシー ... EC2とS3といったリソース対するアクセス権限の定義
  • ユーザー ... 君や私。ポリシーが割り当てられる
  • グループ ... 複数ユーザへのポリシー割り当てをまとめて行える
  • ロール ... EC2やLambda等のAWSリソースに対して設定するアクセス権限

ポリシーは基本的にユーザやグループへ割り当てるために利用する。一方で、ロールはAWSのリソース(EC2、Lambda等)に対してアクセス権限を付与する際に利用する。アクセス権限が必要な操作を行うときに、一時的にアクセスキーとシークレットキーを発行して利用する。バックではAWSのKMS(Key Management Service)を利用しているらしい。 ポリシーとロールの違いがチョット怪しい。(~_~)

WebサーバとDBサーバを分けたら何が嬉しいのかと言うのは [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) に詳細に書いていた気がする。

感想

AWSとかいうの正直サービスが多すぎて何から手を付けて良いのかわからんという状態だったが、目的を持って(今回の場合はWordPressを立ててみよう)体系的に学べるのは非常に良い。こういうのを積み重ねていくとユースケースが自然と刷り込まれていって、課題に対する反射神経が上がるのかなと思った。
Route53でドメイン利用できるようにしたり、CloudFrontを利用したら本当に早くなってるじゃんって確認するところは楽しかった。WebサーバとDBサーバを分けるところのように、何故するのかが説明されているのは良き。

また、初Udemyということで書籍との感覚の違いについてもメモしておく。LTとかスライド的なものを見るのが好きな人はもちろん、初めてで何もわからんからハンズオン的に手を動かして学びたい場合は、書籍よりもUdemyやpluralsighのような動画コンテンツで学ぶほうが圧倒的に良いと思った。目の前で操作がされており、操作を見逃したとしても5秒前とかに戻って確認することが容易なためとにかくとっつきやすい。
一方で既に知っている内容をスキップするときにスキップしすぎたりということが発生するので、ここらへんは書籍のほうがペースをつかみやすいなと思った。