AWS初心者がAWS勉強会に参加してみた⑤

④の続きです。
これまでAWSのコアサービスである
コンピューティング、ストレージ、データベースについて、
主なサービスの概要について解説しました。

AWS上でインフラストラクチャーやアプリケーションを開発するには、
今までご説明してきた様々なサービスを利用するのですが、
ユーザがこれらのサービスを使って独自に構築したモノは
当然ながらユーザ側で維持、管理をする必要があります。

クラウドコンピューティングはインターネットを経由してサービスを利用するわけですが、
今回はサービスの基本的な利用方法や付帯される
管理サービスについて記載しようと思います。




#AWSの操作方法

AWSの各種サービスをインターネットで利用するには、以下の3種類があります。

1. AWSマネジメントコンソール(GUI)
2. AWSコマンドラインインターフェース(CLI)
3. 各種 Software Development Kits(SDK)
※どの操作方法もAWSのAPIを呼び出すためのツール。

上記がどんなものか以下に説明していきます。

　

1.AWSマネジメントコンソール(GUI)


AWSを操作する上で最も基本的な操作方法です。
WebブラウザからAmazon https://aws.amazon.com/jp/
へログインし、新規登録(※1)することで利用が可能です（登録後はサインアップでログイン）

AWSクラウドリソースを管理するための使い易いグラフィカルユーザインターフェースで、
実際にアクセスすればわかると思いますが、使いたい機能を簡単に利用することができます。


　

2.AWSコマンドラインインターフェース(CLI)
AWSマネジメントコンソールがGUIであったのに対し、コマンドラインインターフェース(CLI)は、
その名の通り、AWS-Shellを用いて、CLIでAWSを操作することができます。
※そもそもCLI、AWS-Shellって何？って方は以下を参照ください。

・コマンドラインインターフェイス (CLI)とは
https://wa3.i-3-i.info/word13118.html
・AWS-Shellとは
https://aws.amazon.com/jp/cli/


AWSが用意したシェルからスクリプトによる操作が行えるようになるため、
管理の自動化も可能です。AWS-ShellはWindows、Mac、Linuxから操作が可能で、
OSに依存しない利用ができます。

Amazonのサイト http://aws.amazon.com/jp/cli/
へアクセスし、AWS CLIのダウンロードとインストールを行います。
インストール後は、Windowsであれば、PowerShellを起動すれば
AWSコマンドラインインターフェースを利用できるのですが、
AWSマネジメントコンソールにアクセスするユーザはこれを利用できません。
※AWSコマンドラインインターフェースの詳細
http://aws.amazon.com/jp/cli/

AWSコマンドラインインターフェースを利用するには、
別途IAM（Identity and AccessManagement）にて作成されたユーザのみが利用できます。
※IAMに関してはAWSの管理についての項目で解説します
 
 

　
　
3.各種 Software Development Kits(SDK)
SDKですが、これはどちらかと言えば、AWS CLIに近いです。
AWS CLIはAWSが用意したAWS-Shellを用いてAWSリソースを操作するためのものですが、
SDKは任意の開発言語からAWSリソースを操作することができるようにするために
AWSが用意したツールです。
※Java、Python、Ruby、PHP、Objective-C、
Silverlight、.Netなど様々な言語に対応しています。
SDKの詳細
http://aws.amazon.com/jp/tools/


-------------------------------------

#AWSの管理

1. Amazon Cloud Watch

AWSリソースのモニタリングサービスであり、モニタリングに関する様々な機能を利用する
ことができ、無料のサービスと有料のサービスがあります。

モニタリング対象は様々ありますが、利用しているインスタンスの性能や状況だけでなく、
費用のモニタリングやAWSリソース以外のAWS上で稼働しているOS上の情報などもモニタ
リングすることができます(カスタムメトリックス)

無料サービス
Amazon EBS ボリューム、Elastic Load Balancing、Amazon RDS インスタンスの
すべてのメトリックスと同様に、Amazon EC2 インスタンスの
基本モニタリングのメトリックス (5 分間隔)は無料で利用できます。

主な有料サービス
Amazon CloudWatch Dashboards
Amazon EC2 インスタンスの詳細モニタリング
Amazon CloudWatch のカスタムメトリックス
Amazon CloudWatch アラーム
Amazon CloudWatch ログ 

また、「Auto Scaling」などのツールと連携して、予めCloud Watch側でモニタリングとアラー
ムの設定をして、閾値を超えた場合に、Auto Scalingが起動して、
自動的にインスタンスをスケールすることが出来るようになります。




2 .Amazon IAM

IAMとはAWSリソースの管理サービスです。
プロジェクトに関わる複数人で1つのAWSアカウントを扱う時、各メンバーに配布する
アカウントを作成したり、アカウントをグループ分けし、権限を厳密に管理できるなど
ユースケースに応じたユーザ管理を行うことが可能になっています。
また操作権限の管理も可能です。
IAMでロール(権限)を定義し、作成したロールをエンティティに適用することで、
適用されたエンティティはそのロールの範囲内のことしか実行することが出来なくなります。
エンティティはユーザだけでなく、インスタンスも含まれ、例えば、
「EC2インスタンスに対して、RDSへの操作を制限する」と言ったことも可能です。

また、Web Identity Federationを利用し、IAMの認証フェデレーションを有効にすることで、
例えば、新規にIAMでユーザを作成しなくても、
既存環境のユーザでAWSリソースへのアクセスを許可することも可能です。
また、多要素認証もサポートしており、
ワンタイムパスワードなどと組み合わせて認証機能を強化することも可能です。

IAMの詳細は以下を確認ください。
https://aws.amazon.com/jp/iam/


3 .Amazon Cloud Formation

テンプレートを使用したAWSインフラストラクチャーの冪統制を担保した
自動デプロイをすることが可能です。
AWSマネジメントコンソールでは対話形式のデプロイしかできません。
また、AWSコマンドラインインターフェースでは、デプロイの完全自動化、
並びに冪統制を担保することは難しいです。

Cloud Formationを利用すれば、テンプレートを活用し、そのテンプレートを実行するだけで
Immutableインフラストラクチャーのアプローチを取ることが可能です。
もちろん、これを継続的にデリバリーするためには、テンプレートの
メンテナンスが必要になりますので、運用コストの面で注意が必要です。
※なお、Cloud Formationは無料で利用することができます。
ただ、自動デプロイで有料のインスタンスを作成した場合は、
その分の課金が発生しますので注意してください。



AWSの操作、管理については以上になります。
これまで①～⑤にてAWSの基本的な知識についてまとめてみましたが
いかがだったでしょうか。

③、④に関しては見直してみたら文字だけだと分かりずらかったので、
時間がある時にCacooとか使ってイメージ図を作成して追記しようかと考えています。
※Cacoo↓
https://cacoo.com/ja/pricing