このすみノート

Webエンジニアが技術や趣味を書くブログです。

AWSの基礎を、ハンズオンで勉強しながら理解する - AWSをはじめよう

mochikoAsTechさんの「AWSをはじめよう~AWSによる環境構築を1から10まで~」を読みました。

ちなみにダウンロード版です。BOOTHにて購入できます。

booth.pm

本書は技術書典5の大ヒット作なのですが、読んでみたらヒットの理由も納得です。あまりに読みやすいので、AWSの画面を操作しつつ、一気読みしてしまいました。

200ページ超えでも一気読みしたくなる技術書って、すごいことなのでは?

note.mu

AWSには「EC2, ELB, IAM, RDS・・・」と、多種多様なサービスがあります。本書は、これ一冊で主要どころのサービスをハンズオンで勉強することができます。

読み終わりましたので、まとめと感想を書いていきます。

目次

サーバーが分からない、インフラが苦手を解きほぐす

いきなりAWSの解説からはじめないところが、本書の特徴です。まずは「インフラとは何か?」「サーバーとは何か?」の解説からスタートします。

本書は、技術の解説がとてもユニークです。一例として、サーバーの解説にはビアサーバーを例えとして使っています。

  • ビアサーバーは、客に対してビールというサービスを提供する
  • ウェブサーバーは、客に対してウェブページを提供する

ここから「サーバーとは、クライアントに対してサービスを提供するもの」という結論へと繋がります。

なぜクラウドが必要とされているのか

詳しくは本書を見て欲しいのですが、一言でいえばお手軽だからです。

  • オンプレミスと違って、初期のサーバーコストを抑えることができる
  • ウェブサイト上だけで、新規にサーバーを立てることができる
  • 負荷が上昇した時に、柔軟にサーバーのサーバーの台数をコントロールすることができる
  • ...etc

なんだかんだ、オンプレミスな物理サーバーは大変なのです。今は良い時代になりました。

クラウドの有名どころ

本書でも。いくつか紹介されています。AWSがもっとも有名ですが、GCPは「Google BigQuery」が強みなど、それぞれ特徴があります。

  • AWS(Amazon Web Services)
  • GCP(Google Cloud Platform)
  • Microsoft Azure* Azure
  • ...etc

CloudWatchで請求アラートを設定する

AWSのアカウントを作成したら、まず初めに行なうのが請求アラートの作成です。

AWSは従量課金制です。設定の間違いなどにより、知らない間に課金されている可能性があります。昔で言えば、携帯電話のパケ死にあたります。

請求アラートを設定しておくと、不足の事態にすばやく気づくことができます。

IAMで権限を絞ったアカウントの作成

最初にAWSを契約したマスターアカウントでは、すべての操作が可能です。そのため実際の作業は、必要な権限だけを与えたアカウントだと安心です。

また、多要素認証(2段階認証)により、アカウントを保護することもできます。

サーバーを作成するリージョンに注意

AWSには、アメリカや日本をはじめ、いくつかのリージョン(場所)があります。サーバーを作ったりする時などは、必ず東京リージョンであることを確認しましょう。

サーバーの物理的な距離は需要です。遠方にサーバーを作ってしまうと、日本からの通信ではそれなりのレイテンシー(通信の遅延)が発生します。

EC2でWEBサーバーを立ててみる

実際にWEBサーバーを立ててみます。インスタンスには「t2.micro」の無料枠を使います。セキュリティグループでは、SSHとHTTPのみを開放し、SSHは鍵認証を有効にします。

初期状態のEC2は、そのままだとサーバーをシャットダウンしたり起動した時に、IPアドレスが毎回かわってしまいます。固定するには「Elastic IP」を使います。

最後に、起動したEC2でWEBサーバー(Apache)を立てます。無事に起動できると、WEBアクセスで以下のような画面が見れますよ!

f:id:konosumi:20181106001717p:plain

ちなみに、本書はとても丁寧です。SSH接続も、SSHクライアントの解説からはじまります。

RDSでデータベース(MySQL)を作成する

本書の最終目的は、WordPressの構築です。そのため、データベースが必要です。本書ではRDSを使います。

実際にMySQLのインスタンスを作り、WordPressと接続してみます。具体的には、セキュリティグループの作成や、日本語用のMySQLの設定(my.cnfに相当)など行ないます。

スナップショットとAMI

バックアップ用のスナップショットと、サーバー用のマシンイメージ(AMI)の作成をやってみます。

  • スナップショット: EC2インスタンスのバックアップです。
  • AMI: マシンイメージがあると、サーバーの複製やAuto Scalingで役立ちます。

違いの説明は、endokさんのブログが分かりやすいです。

endok.hatenablog.com

ロードバランサーとAuto Scalingを構築してみる

ロードバランサーは、負荷分散やAuto Scalingで活躍します。

本書では、実際にロードバランサーとAuto Scaling構成を作成します。

f:id:konosumi:20181106003759p:plain

さいごに

本書は、学生やエンジニアになりたい方のみならず、フロントエンドやプログラミング寄りのエンジニアにもオススメできる内容でした。

インフラやサーバーの理解を明確化した上で、それからAWSの主要サービス(IAM, EC2, RDS, ELB, Auto Scaling...)の解説へと進んでいきます。

私が本書を手にとった目的は、実は同じ技術同人作家として大ヒットの理由が知りたかったからなのですが、とても納得しました。

本書を読み進めながら手を動かしていると、実際にAWS上で動くサーバーができあがります。読み終えた後の達成感が心地良いです!

ちなみにですが、AWSは多岐に渡るため、この本一冊でAWSが全て理解できるわけではありません。その代わり、次のステップとして「もっとAWSについて勉強したい!」という章が用意されています。

booth.pm