AWS動作検証【1】（アカウント作成＞VPC作成＞EC2起動＞CloudWatch監視設定実施）（2020年4月時点）

私は最近までAWSの資格試験に挑戦してきており、[無事にプロフェッショナルに合格](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)できました。その反面、AWSの実機での操作は試験期間中に実施した[セルフペースラボ](https://aws.amazon.com/jp/training/self-paced-labs/)に限られ、実際の操作自体は十分に習熟できていない状況でした。AWSの資格試験が終了したあとは、他の資格試験を取得するために時間を割こうと思っていました。ただ、AWSの操作が不十分な状況だと今後によくないと考え、自分なりに1から１つずつの操作を確認して行こうと考えました。また、その際の実施した作業内容はQiita上に作業ログとして残しておくことにしました。これは自分自身が実施した作業を忘れないための備忘録であると同時に、今後同じような動機でAWSの操作確認をしようとした方の道しるべになればよいと考えたからです。

#■■　筆者情報　■■
・AWSの資格試験はプロフェッショナルまで取得済。
・AWSの操作経験は初心者並み。
・理論は解っていても操作は解っていない状況。
※資格試験取得に興味のある方は[「AWS認定試験の勉強方法](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)」を参照ください。

#■■　この記事を読んでほしい対象　■■
・AWSの知識はある程度ついたので、AWS操作を一通り実施したい人。
・AWS公式ドキュメントをベースに手順を確認したい人。
※手順を簡単にまとめてくれているサイトも多々ありますが、可能な限りAWSの公式ドキュメントを読み解きながら確認を実施しています。その為、この記事のリンクの多くは公式ドキュメントに対して貼られており、どうしても公式ドキュメントのみだと解らない場合に、個人のHPを頼っています。

#■■　初期設定手順　■■
AWSの初期設定を実施しました。自分が「やっておいた方がよい」と思った設定を実施しました。
##[①アカウント登録](https://aws.amazon.com/jp/register-flow/)（IAM）
自分のアカウントを作成します。アカウント登録後から1年間[無料利用枠](https://aws.amazon.com/jp/s/dm/landing-page/create-free-account/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc)があるので、やる気になったタイミングで登録しないと勿体ないです。事前に必要なのはクレジットカードまたはデビットカードとなります。アカウント認証の際に音声通話で実施した際、4桁に数字入力が私のガラケーでは何度実施してもうまくいきませんでした。スマホで実施すると一発でうまくいきました。
##[②ルートユーザのMFA設定](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user.html)（IAM）
ルートユーザへの2要素認証設定です。ルートユーザにこの設定を実施していなかったために「不正ログインされて何十万もの請求がきた」というのはAWSあるあるです。必ず設定しましょう。
##[③CloudTrail証跡作成](https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)（CloudTrail）
操作ログを残すためにCloudTrailで証跡作成を実施します。ログはS3に退避するように設定可能です。
##[④請求アラームの設定追加](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html)（CloudWatch）
設定した金額以上に課金が発生した場合に通知してくれる設定を実施します。「Auto Scallingの設定等を誤ってリソースを大量に使用することになり何十万もの請求が来た」というのはAWSあるあるです。
##[⑤パスワードポリシーの設定](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)（IAM）
パスワードの条件を設定できます。
##[⑥管理者ユーザ作成](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/getting-started_create-admin-group.html)（IAM）
最初に作成されるルートユーザは普段の作業では使用しないのがAWSのベストプラクティスです。その為、今後の作業に利用する管理者ユーザを作成します。MFAも設定します。
##[⑦管理者ユーザでログイン](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/console.html#user-sign-in-page)
作成した管理者ユーザでログインします。**<font color="red">これ以降、基本的にルートユーザは利用しません。</font>**

#■■　基本環境作成　■■
ネットワーク環境を作成しました。VPCやサブネット等のIPアドレス体系はきちんと考えて設定する必要があります。私がサブネットを決める際に「[サブネット分割](https://www.ipkeisan.com/subnet/)」というサイトが役立ちました。
##[①VPC作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)（VPC）
リージョン指定を忘れないように気をつけてください。「東京じゃなく米国に作ってしまった・・」はAWSあるあるです。あと、作成前にVPCやサブネット、セキュリティグループのネーミングルールは統一的なものを決めておいた方がよいです。名称不統一だと、あとから管理面が大変になります。
##[②サブネット作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)（VPC）
サブネットを作成します。
##[③インターネットゲートウェイ(IGW)を作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html#working-with-igw)（VPC）
IGWを作成します。
##[④ルートテーブル作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html#working-with-igw) （VPC）
ルートテーブルを作成します。
##[⑤ルートテーブルとIGWの関連付け](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html#working-with-igw)（VPC）
この設定により「パブリック用のルートテーブル」になります。
##[⑥ルートテーブルとサブネットの関連付け](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html#working-with-igw)（VPC）
「パブリック用のルートテーブル」を関連付けられたサブネットは「パブリックサブネット」になります。これは、インターネット接続が可能なサブネットになったということです。
##[⑦セキュリティグループの作成](https://docs.aws.amazon.com/ja_jp/efs/latest/ug/accessing-fs-create-security-groups.html)（VPC）
SSHとRDPの設定を実施します。ICMPを設定すると標準では抑止されているpingが実施可能になります。障害切り分け方法の一つとしてPingを実施する私には必須設定です。これを知らず「PINGが飛ばずに焦る」というのはAWSあるあるの一つです。!
![ルートテーブル.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/bdbff4e5-3eef-e1cf-007a-6eea3605e960.jpeg)
##[⑧フローログ発行用IAMロールの作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs-cwl.html#flow-logs-iam)（IAM）
AWS認定資格試験ではよく登場するフローログですが、出力するためには設定が必要になります。権限付与したIAMロールを作成する必要があります。
##[⑨フローログの作成](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs-cwl.html#flow-logs-cwl-create-flow-log)（VPC,EC2）
フローログを作成します。私はVPCとEC2のフローログを作成しました。
##⑩フローログの確認（CloudWatch）
「CloudWatch→ロググループ→System のストリーム」でフローログは確認可能です。

#■■　EC2起動と初期設定（WindowsOS)　■■
OSはWindowsを前提とし、私が作業がしやすくなると思う設定を実施しました。また、AWS資格試験で頻出していたフローログの設定も実施しました。
##[①キーペア作成](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)（EC2）
インスタンスへの接続に必要になるキーペアを作成します。
##[②EC2_起動](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/launching-instance.html)（EC2）
今回はWindows2016のAMIを前提に作業しました。無料利用枠で進めたいので進めたいのでEnglish版となります。
![AMI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/29130dee-6bc8-4ad7-d0b2-ce66035b1de9.png)
##[③EC2_接続](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html#connect-rdp)（RDP）
RDPで接続しました。
##[④EC2_日本語化対応](https://capybara-engineer.hatenablog.com/entry/2019/11/14/115657)（OS）
英語のままだと解りにくいのでOSを日本語化します。
![言語.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/c5fe1ec7-7927-8684-66c6-d2b0296679ca.jpeg)
##⑤EC2_タイムゾーン変更（OS）
日本時間に変更します。
![時刻.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/af6065b2-7e87-4e3b-7375-f17bdc5e94e5.png)
##⑥EC2_ワクチンソフト（OS）
Defenderを有効化します(当初「無効」設定)。
![ワクチン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/0990ac03-9fcc-2df2-d1b8-7f5e28868ae8.png)
##[⑦EC2_Officeインストール](http://www.openoffice.org/ja/)（OS）
無償のOfficeをダウンロードしてインストールします。Officeを利用する用途が無い場合は不要です。
##[⑧EC2_Adobe DCインストール](https://get.adobe.com/jp/reader/)（OS）
Adobe DCをダウンロードしてインストールします。一緒にCromeもインストールされます。PDFを利用する用途が無い場合は不要です。
##[⑨EC2_サクラエディタインストール](https://sakura-editor.github.io/download.html)（OS）
サクラエディタをダウンロードしてインストールします。パラメータファイル等を確認する際に、エディタがあった方が便利だからです。

#■■　EC2インスタンスへのCloudWatch監視設定(WindowsOS)　■■
CloudWatchの詳細監視設定を実施する為、CloudWatchエージェントをセットアップしました。幾つか方法がありますが、「[AWS Systems Managerを使用して CloudWatch エージェントをインストールする](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/installing-cloudwatch-agent-ssm.html)」で実施しました。設定ファイルの作成等、慣れない操作で、かなり時間がかかりました。
##①対象EC2のダッシュボード作成（CloudWatch）
CloudWatchエージェントインストール前の状況を確認。
##[②Windows インスタンスで SSM エージェント をインストールし設定する](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/sysman-install-ssm-win.html)（SystemsManager）
WindowsServer2016はプレインストールされているため手順不要でした。
##[③CloudWatch エージェントで使用する IAM ロール作成](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html#create-iam-roles-for-cloudwatch-agent-roles)（IAM）
手順では「CloudWatchAgentServerRole」と「CloudWatchAgentAdminRole」の2つのロールを作成する前提ですが、今回はこの2つの権限を纏めた1つのロールを作成しました。
![ポリシー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/ed8bffd2-6129-5704-1781-3e63b85d4d05.jpeg)
##[④ロールのEC2インスタンスへの割り当て](https://aws.amazon.com/jp/premiumsupport/knowledge-center/assign-iam-role-ec2-instance/)（EC2）
作成したロールをEC2インスタンスに割り当てます。これをしないとSSM AgentがSystems Managerと連携できません。
##[⑤CloudWatchエージェントダウンロード](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/download-CloudWatch-Agent-on-EC2-Instance-SSM-first.html)（Systems Manager）
CloudWatchエージェントをダウンロードを実施しました。
![SystemsManager結果.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/68002509-b5c9-20a2-dc56-97d7bbe7969e.jpeg)OSの「プログラムの追加と削除」画面にも表示されています。![プログラムの追加と削除.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/78593a8e-2b52-c9b8-cf3a-e4e3df1fff4d.jpeg)
##[⑥エージェントの設定ファイル作成](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/download-CloudWatch-Agent-on-EC2-Instance-SSM-first.html)（CloudWatch）
「エージェントの設定ファイルを作成して変更する」必要があり「[ウィザードを使用したCloudWatchエージェント設定ファイル作成](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/download-CloudWatch-Agent-on-EC2-Instance-SSM-first.html#CW-Agent-Instance-Create-Configuration-File-first)」に挑戦しました。手順に従いEC2上のコマンドプロンプトで「C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-config-wizard.exe」を実行してウィザードを開始し設定ファイルを作成しました。ここのウィザードの設定はドキュメントを読んだけれどなかなか理解できず「[はじめてのCloudWatch Agent導入](http://blog.serverworks.co.jp/tech/2020/01/28/cloudwtach-agent-ssm-centos/)」というサイトの情報を頼りました。それでもウィザードの内容が異なるところもあったので、調べながら作成しています。
![e-jenndo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/36b97f0a-5576-2027-da52-379aff2c9259.jpeg)
その後、SystemsManagerのパラメータストア画面を確認すると、作成した設定ファイルがアップされていました。
![パラメータストアの設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/25999122-e7f4-3c94-7e68-8ab939306675.jpeg)
##[⑦CloudWatch エージェントの開始](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html#start-CloudWatch-Agent-EC2-fleet)（SystemsManager）
CloudWatchエージェントを開始しました。
![SystemsManager2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/9bfa6db8-f422-9411-2f4b-1eac76d75c97.jpeg)
##⑧ログ取得確認（CloudWatch）
CloudWatchで詳細ログが出力できるようになっていることを確認します。メトリクスの選択画面でカスタム名前空間に「CWAgent」が表示されていることを確認しました。
![SystemsManager3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/0a6b75ca-f81b-b492-4d91-4e43ae1ca5d8.jpeg)

#■■　まとめ　■■
ある程度操作練習の記録が溜まってきたので、いったん投稿しました。
今回はSystemsManagerを利用したCloudWatchエージェントインストール作業がはじめてだったので、時間を取られました。SystemsManagerは本当に重要な機能と思うので、ここは地に足をつけてしっかり操作をマスターしていきたいです。
次回は「[AWS動作検証【2】（SystemsManagerパッチ配信設定）](https://qiita.com/gomasa/items/970786c87d80d134058b)」です。

以　　上