普段オンプレミスのインフラエンジニアをやっていますが、やればすぐわかるだろうと思い続けて数年経ちましたが一向に触る機会がやってこないので、個人でAWSに入門してみることにしました。
やはりインフラになじみのない人よりはすんなり理解出来ましたが、いくつか普段のオンプレミスでの仮想環境(VMwareなど)と考え方が異なる点がありましたので、備忘録として残しておきます。
まずざっくりEC2の作成方法
一般的な手順はネット上にたくさん転がっているので、そちらに説明を譲るとして、EC2インスタンスを作成する中で普段仮想環境ばかり触っている私が気になった点について記載しておきます。
-
イメージの選択
そこまで戸惑うほどでもないが、VMの側だけ作ってOSをインストールするのではなく、あらかじめ用意されたAMIというイメージをもとにインスタンスを作成する。
自分でカスタマイズしてマイAMIとして登録しておけば、いわゆる仮想マシンテンプレートのような使い方が出来る。
dockerイメージとかvagrantとかでも元々のイメージを引っ張ってきてカスタマイズしていくやり方をするけど、今後はこちらが主流になるんだろうな。OSインストールすることもなくなるのかと思うと少し寂しい・・・ -
インスタンスタイプの選択
VMwareではvCPUのソケット、コア数、予約する周波数などやメモリの割り当て、予約値、予約値のロックなどを最初から細かく指定するが、AWSのEC2ではインスタンスファミリーと呼ばれるテンプレみたいなものから選ぶ形となっている。
組み合わせがたくさんあり、ここから選ぶだけでも十分使えそうだが、CPUのコア数を変更したり、マルチスレッドを無効化したりすることもできる(インスタンス毎にできる)。
参考:CPUオプションを最適化する -
インスタンスの詳細設定
詳細設定と書いているが、VMwareの詳細設定とは全然違う。リソース以外のネットワークの指定やIAMロールの指定などを行う画面。AWSではVPCというSDN(Software Defined Network)上で動くので、その辺の知識が最低限必要となる。標準スイッチ作ってNWチームに教えてもらったVLAN IDを設定するだけではつながらない。
NSXの経験がある人だったら、ほとんど同じ感覚で使えると思う。
その後追加ディスク(EBS)やタグ(名前とか付けれる)、セキュリティグループ(≒オブジェクトベースFW)などの設定があるが、VMware ESXi にNSX組み合わせて構築したことがある人なら悩まずに進めると思う。
その他オンプレエンジニア疑問に思ったこと
一番気になったのは、仮想化のオーバーヘッドやCPU、メモリのオーバーコミットの扱いである。
これについては、いろいろと資料を漁ると次のようなことが分かった。
- 基本的にはオーバーコミットされず、インスタンス毎にリソースが占有される。ただし"T"インスタンスファミリーはオーバーコミッドされる
- クロック周波数はどうなるの?→インスタンスファミリー毎に使われているCPUが異なる。オーバーコミットされないという言葉をそのまま受け取れば、インスタンスファミリーで使われているCPUのクロック数をそのまま予約している状態ということ?(間違っていたら教えてください!)Amamzon EC2 インスタンスタイプの選び方
その他参考
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com