見出し画像

AWSの社内教育を開始 - 第3回:ガチの環境を構築するところをデモする

某月某日

ここまででAWSの作業目的と各コンポーネントの概念を教えてきたので、ここで、実際に本物のクラウド環境を構築することをデモすることにした。

今回は、
VPC1つに、AZが2つ、それぞれのAZにプライベートなサブネットが1つ、パブリックなサブネットが1つずつの冗長化した構成のネットワークを構築し、それぞれのAZのパブリックサブネットにEC2を1つずつ配置し、プライベートな方のサブネットにRDSを1つおく構成をデモした。

冗長性のないもっとシンプルな構成でも良かったが、サブネットやAZの意味(価値)を教えるためにはこの構成が良いと思ったのである。

シンプルな構成は後々自分で演習をやってもらう時の題材にとっておこうということになった。

ここでリージョンについても説明し、東京リージョンにネットワークを作り始める。

ここでAWSコンソールのUIについても慣れ親しんでいくためにゆっくりと操作しながら説明した。AWSコンソールは正直UXに一貫性が欠けている部分もあり、あるものは「アクション」ボタンからメニューを表示して、選び、あるものは直接アクションがボタンになっているため、説明が難しい。
いろいろなものの名付けもTagにNameタグをつけて設定するものとそうでないものがある。
このあたりの一貫性が無い部分にも慣れながら使うもの、ということを説明しながら
VPC、サブネット、セキュリティグループ、EC2という順に構築していく。

ここでも第2回で使った昔々のネットワークの絵を再度使いながら、前回説明した概念の中で説明したものが、AWSコンソール上でどういうところに該当しているのかを説明していった。

この順番で説明していけば、AWSコンソール自体には「難しそうだな」、とか「慣れないと難しそう」と感じたとしても、何をやっているかがわからない、ということは避けることができる。

僕は最初AWSをブログなどで読んだ浅い知識で操作して見ようとしていた頃に、ブログの記事に書かれていることが何をやろうとしていることなのかわからない、という頭の状態に何度か置かれたので、教えている相手をこの状態に置かないように常に注意しながら各設定を説明するためにそれが何のための作業なのか説明しながら進めていったのである。

AWSコンソールでの作業ではたまに数字を打ち込む箇所があり、そこが一番混乱する箇所である。とくにサブネットへのアドレスの割当とセキュリティグループのインバウンドの設定でCIDRブロックというものが出てくるが、昔のネットワークを知らない世代にはこのCIDRブロックも馴染みのないものなので、下のような絵を書いて説明した。

セキュリティグループの設定ではプロトコルも大事な概念になってくる。
すごくざっくりと雑ではあるが、プロトコルも下のような絵で説明した。

ツッコミどころも多いと思いますが、あくまで教えることが目的の概念図です💦

AWSを操作するためには、このようにAWS自体の各種設定に関する知識と、そもそものネットワークやサーバーコンピューターに関する基礎知識、とが入り混じって必要になる。
ここを入り混じって覚えようと混乱するので、どれがAWS操作のための知識で、どれがネットワークやサーバーコンピューターの基礎技術なのかを分けて伝え、分けて覚えてもらうことが重要だと思っていて、今回は自信はないがそのように教えようと奮闘したのである。

一通り構築を終えて、EC2にSSHでログインするところをデモし、その後、セキュリティグループの設定を変えて、SSHでログインできなくなることをデモして、本日の講義を終えた。

RDS構築

翌日、RDSの構築のデモをした。RDSは前回、基本的にはEC2と同じサーバーと考えて良いと教えたが、RDSの場合、サブネットグループ、というものを構築して、この上に置くことになる。私もこのサブネットグループが実際に物理的にどのように実現されているのかは知らないが、メインのサブネットの上でRDSが稼働し、もう1つのほうはスタンバイ状態を維持しているのだとなんとなく理解している。メインとスタンバイ、を2つのサブネットにまたがって維持するための仮想的なサブネットワークがサブネットワークグループと理解していて、それを下の絵を使って説明した。

ここまでで、EC2、RDSとも立ち上がったので、インフラのセットアップはできた。

最後に、TeraformやCloudFormationというDevOpsのツールについても触れた。ここまでの作業をスクリプトに書いて、再現可能にする、ということを説明した。

次回は、EC2に実際にサーバープログラムをディプロイして、プログラムの動作を確認するところまでをデモしようと思うが、ディプロイにはAnsibleやDockerなど説明するのがかなり難しいものが出てくるので、どう教えようか悩ましいところである。

続く




この記事が気に入ったらサポートをしてみませんか?