4つのサービスから始める AWS 入門 (EC2 / IAM / VPC / ECS)|研修コースに参加してみた
今回参加したコースは 4 つのサービスから始める AWS 入門 ( EC2 / IAM / VPC / ECS ) です。
AWS には、数えられないほどのサービスがありますが、どれから入門すべきでしょうか? EC2 ? S3 ? はたまた RDS ?? とても難しい選択です。
このコースでは、そういった数多くのサービスがあっても、そのほとんどで必要となる 4 つのサービスに絞って、ハンズオンでその操作をしながら、実際に設定しました。そうすると、「ここはオンプレと同じ」「ここはクラウドらしい」と切り分けて考えられ、スキルをクラウドシフトしようとする中級者にはその感覚が掴みやすいものでした。
では、どのような内容だったのか、レポートします!
もくじ
コース情報
想定している受講者 | Linux, TCP/IP, SSH, ディスクについての知識がある |
---|---|
受講目標 |
|
講師紹介
インフラやクラウドでの登壇が増えている 一戸 英男 さんが登壇されました。
一戸 英男
「とにかく昔からサーバ構築が大好き」から現場に役立つベストセラーが誕生。研修でも明日から現場で使える技術を教えます
過去の登壇コースGCP ( Google Cloud Platform ) と AWS を比較しながら学ぶクラウドサービス入門 研修コースに参加してみた
Docker 入門 ~たった 5 つのコマンドで出来る環境構築 研修コースに参加してみた
AWS に入門する厳選 4 サービス
AWS のサービスは現時点で 200 以上あります。このコースではその中から、一番基礎となる 4 つのサービスを取り上げます。
- Amazon EC2
- サーバ OS インスタンス
- AWS IAM ( Identity and Access Management )
- 認証とアクセス制御
- Amazon VPC ( Virtual Private Cloud )
- 仮想プライベートネットワーク内のクラウド
- Amazon ECS ( Elastic Container Service )
- Docker コンテナ
EC2 は仮想サーバのサービス、 IAM と VPC は開発規模がある程度、大きいときに使うサービス、 ECS は最近使われてきている Docker コンテナをマネージするサービスです。
このコースでは、これらのサービスを AWS の無料枠 で使います。注意したいのが、 AWS では無料枠を超えてもアラートされるだけなので、油断していると課金されてしまいます。試した後はインスタンスや設定を削除しましょう。
Amazon EC2 with EBS / EFS
ここから AWS コンソールを使って演習します。
EC2 は仮想サーバを AWS 内で起動して利用する定番のサービスです。今回は EBS と EFS も合わせて試します。
- ハードディスクの増設と既存ファイルシステムへのマウント
- コンピュータにハードディスクを追加してマウントするようなもの
- AWS 上の NFS ( Network File System )
EBS ( Elastic Block Store )
EFS ( Elastic File System )
EC2 のインスタンスの作成
まずは EC2 のインスタンスの作成からスタートしているのですが、他のコースでも紹介しているので、ここでは割愛します。
なお、このコースでは AMI に Ubuntu Server 20.04 LTS を選んでいます(上記のコースでは CentOS を使用)。 このあと EBS や EFS の操作が異なります。
EBS の割り当て&マウント
続いて、作成した EC2 インスタンスに EBS を割り当ててマウントします。
- EBS の作成
- メニューから Elastic Block Store を開く
- ボリュームの作成ボタンを押す
- ボリュームタイプやサイズ、アベイラビリティゾーンなどを設定 (アベイラビリティゾーンとは DC の場所。東京・大阪の場合、それぞれ 3 つから選択)
- 追加したボリュームに名前をつける
- 作成した EBS と EC2 を紐付け
- アクション > ボリュームのアタッチ を選択
- 追加したインスタンスを選択
- Linux 上では SDP と表示される
- アタッチボタンを押して追加
- EBS をマウント
- EC2 に SSH でログイン
- 以降は SSH クライアントを経由してコマンド操作
# マウントポイントを作成 sudo mkdir /mnt/extdisk # 追加されたディスクのデバイスを確認 lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 10G 0 disk # /dev/xvdf にファイルシステムをフォーマット sudo mkfs -t xfs /dev/xvdf # マウントポイントにマウント sudo mount /dev/xvdf /mnt/extdisk
- マウントされたことを確認
このコマンド操作はオンプレと変わりありませんね。
続いて、 EFS を EC2 に割り当ててマウントしました。
ポイントとなるのは EFS 用のユーティリティツール ( efs-utils ) のインストール と、 NFS ポートの許可ですが、それ以外の操作はスムーズに進められました。
AWS IAM ( MFA 設定含む)
ここまでは AWS アカウントを登録したユーザー(ルートユーザー)でしたが、企業で AWS を使う場合は、複数名で使用します。そこで使うのが IAM です。
- なぜ IAM に設定が必要か
- 事故や不正アクセス等を防ぐため
- IAM ポリシーを設定する
- 設定方法は 2 つ
- AWS コンソール ( GUI ) で設定する方法
-
JSON で設定を書き、コマンドラインから設定を enable にする方法
codeJSON のサンプル{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:Describe*", "ec2:StartInstances", "ec2:StopInstances*" ], "Effect": "Allow", "Resource": "arn:aws:ec2:region:account:instance/i-XXXXXXXXX", "Resource": "arn:aws:ec2:region:account:instance/i-yyyyyyyyy", "Resource": "arn:aws:ec2:region:account:instance/i-Zzzzzzzzzz" } ] }
- 設定方法は 2 つ
- ポリシー設定にあたって 2 段階認証が必要になる
また、今回は認証に MFA (多要素認証) も利用します。これに Google Authenticator アプリを使います。
IAM ユーザーの追加手順
今回の演習では AWS コンソール ( GUI ) を使って、 EC2 の操作のみができる IAM ユーザーを 2 人作成します。
- ユーザの追加
- メニューから「アクセス管理 > ユーザ」を選択
- 「ユーザーを追加」ボタンを押す
- ユーザ名、パスワードなど詳細を設定
- AWS コンソールからのアクセスか、プログラムからのアクセスか、選択できる
- ユーザグループを選択 (無い場合は作成)
- ポリシーをプルダウンから選択 (ここでは EC2 にフルアクセスできるポリシーを選択)
- 作成後、表示される AWS コンソールのログインページの URL をメモしておく
- サインインの方法とアクセス制限の設定
- 作ったユーザを選択 -> 設定画面を開く
- サインイン方法を選択
- MFA (多要素認証) の設定
- MFA コードと QR コードを発行
- MFA コードと QR コードを発行
- サインインの確認
作成したアカウントでログインしようとすると、 MFA コードを求められ、 Google Authenticator で表示されたコードを入力し、ログインできました。
ログイン後、 EC2 を操作できることを確認し、 EC2 以外のサービスもダッシュボードのトップページまでは表示できます。ただし EC2 以外のサービスを操作をしようとすると「実行する権限がありません」とエラーになります。制限がうまく働いていますね。
Amazon VPC (簡単な基本設定)
VPC は、 AWS 上の仮想ネットワークです。 EC2 インスタンスや AWS のリソースの間でセキュアなデータ交換ができます。
- 2 種類のサブネットを作成可能 (いずれもプライベート IP アドレス)
- プライベートサブネット:インターネットに出るゲートウェイがない
- パブリックサブネット:インターネットに出るゲートウェイがある
今回の演習では以下のような構成の VPC を作ります。
VPC ネットワークの設定手順
- VPC の設定・作成
- メニューから「 VPC > VPC を作成」を選択
- メニューから「 VPC > VPC を作成」を選択
- サブネットを作成
- メニューから「サブネット > サブネットを作成」を選択
- サブネットの設定
- メニューから「サブネット > サブネットを作成」を選択
- インターネットゲートウェイの作成と設定
- メニューから「インターネットゲートウェイ > インターネットゲートウェイの作成」を選択
- VPC と接続
- 「 VPC へアタッチ」を選択・作成した VPC を選択
- 「 VPC へアタッチ」を選択・作成した VPC を選択
- メニューから「インターネットゲートウェイ > インターネットゲートウェイの作成」を選択
- ルートテーブルの設定
- VPC の詳細情報画面から「メインルートテーブル」を選択 -> ルートテーブル詳細画面 「ルート (タブ) > ルートを編集」を選択
- VPC の詳細情報画面から「メインルートテーブル」を選択 -> ルートテーブル詳細画面 「ルート (タブ) > ルートを編集」を選択
なお、一戸さんから途中 CIDR ( Classless Inter-Domain Routing ) の知識は必須になると補足されました。 またルートテーブルの設定には、ルーティングテーブルの知識が必要とされるので、 GUI でポチポチできるとはいえ、ネットワークの基礎知識は必要ですね。
EC2 ネットワーキング設定
作成した VPC に EC2 インスタンスを配置して、インターネットへの接続を確認します。
EC2 のインスタンスの作成は、基本的には前述したとおりです。ただし、以下の設定を追加します。
- ネットワーク
- 作成した VPC を選択
- サブネット
- 作成したパブリックサブネットを選択
- 自動割り当てパブリック IP
- 有効を選択
EC2 インスタンスが作成できたら、 SSH クライアントから接続して、確認してみましょう。
ip a
作成したパブリックサブネットの範囲に含まれる IP アドレスが割り当てられていました。
Amazon ECS(Docker Fargate)
最後は ECS です。 AWS のコンテナサービスには、 Amazon ECS 、Amazon EKS があります。
- Amazon ECS
- AWS オリジナルのオーケストレーションツールで動く
- Amazon EKS
- オーケストレーションツールとして Kubernetes で動く
また、これらはコンテナを管理するためのサービス (コントロールプレーン) で、実際にコンテナが配置される (データプレーン) のは EC2 や、この演習であわせて使用する AWS Fargate です。
- コンテナのホストとなる EC2 インスタンスの細かな設定などが不要 (!!)
- CPU / メモリ、動かすアプリケーションを選択するだけ
- ECS や EKS を使う場合、利用することが多い
- ログなどのファイルやデータは永続化できないので別途設定が必要
- アプリケーションの開発に専念しやすくなる
- 本格的に使用するには IAM や VPC の知識は必須
AWS Fargage
では、この Fargate を実行してみましょう。
- コンテナの定義
- タスク定義
- サービスを定義する
- クラスターの設定
簡単設定にしているとは言え、これで終わりです。簡単すぎる … !!
この AWS Fargate の演習が終わったところで、このコースは修了しました。
まとめ
AWS の 200 以上もあるサービスの内、基礎となる 4 つのサービス、 EC2, IAM, VPC, ECS を一通り操作して、 AWS に入門しました。
確かにサーバ、認証、ネットワークはすべてのアプリケーションで必要になる要素ですし、新規やリプレイスの開発ではコンテナが主流になっているので、 4 つとも基礎と言えるものでした (もちろんセキュリティも必要ですが、これはサービスごとに組み込まれています) 。
一方で、 EBS / EFS の追加や VPC のルートテーブルなどを設定していると、そもそものサーバ / ネットワークの基礎知識が必要で、これはクラウドの画面ポチポチでは学びにくい事柄になっていることを実感します。 Kubernetes や Istio などクラウドネイティブの技術が生まれ便利になる一方、このレイヤを支える技術の知識も、もちろん必要だと感じました (逆に元々持っている方はラクになったことを最大限享受できそうです) 。
クラウドシフトが進み、学んでみようと思うけど、 AWS サービス多すぎてどこから手をつけてよいかわからん、というインフラ中級者にはオススメのコースでした!
label SEカレッジを詳しく知りたいという方はこちらから !!
IT専門の定額制研修 月額28,000円 ~/ 1社 で IT研修 制度を導入できます。
年間 670 コースをほぼ毎日開催中!!
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。