AWSの色々なリソースの操作を学ぼう
はじめに
本記事ではAmazon Web Services(以下AWS)における様々な操作方法について紹介します。
初めてAWSを使う方からAWSをより使いこなしたい方まで学べる記事です。ぜひ最後まで読んでいただければと思います。
AWSにおける操作方法
AWSを利用したことのある皆様は、これまでどのようにリソースを作成しておりましたでしょうか?AWSの管理にあたって一般的なツールが、マネジメントコンソールです。150を超える、AWS上の様々なツールをまとめて操作できるため、汎用性に優れています。リソース作成についてもマネジメントコンソールを使った操作で可能ですが、これ以外の方法でも実施できることを知っておくと、便利なケースもあるでしょう。
リソース作成には、具体的に以下のような操作方法があります。
- マネジメントコンソール
- AWS CLI
- AWS SDK
- AWS CloudFormation
- Terraform
細かく言及すると上記以外にも作成方法はありますが、今回は上記の5つに絞ってご紹介します。下記の表と解説を参考に、それぞれの特性を理解しておきましょう。
名称 | 機能 | 用途 |
マネジメントコンソール | 汎用性の高いツール運用が可能 | ・AWSの学習・新サービスの検証 |
AWS CLI | コマンドラインを使った制御に対応 | ・CUIベースでの開発・既存リソースへの作業の自動化 |
AWS SDK | 開発者向けの固有構築ツール。複数言語に対応 | ・プログラミング言語ベースでの開発・既存リソースへの作業の自動化 |
AWS CloudFormation | インフラの構築・管理を行うリソース作成。テンプレートによる効率化が可能 | ・IaCを使ったAWS環境の構築・同様環境の複数作成 |
Terraform | インフラ構成の自動管理に対応。他のクラウドやオンプレミスのリソース作成も可能 | ・IaCを使ったAWS環境の構築・同様環境の複数作成 |
マネジメントコンソール
AWSの操作としてもっとも一般的なのがマネージメントコンソールです。AWS上のあらゆる操作を同ツールからアクセスできるため、基本的なAWSの運用はマネジメントコンソール上で完結させられるため、まずはこの使い方を覚えておくと良いでしょう。
こちらはブラウザ上からUIでの操作が可能となっており、直感的にリソースを作成することが可能です。
プレビュー版の機能など一部機能がマネージメントコンソールからのみ操作可能な場合があります。欠点としては、人によるログインでしか操作できないため自動化に対応できないことです。
おすすめ用途
AWSの学習
新サービスの検証
AWS CLI
AWS CLIは、コマンドラインを活用してAWSリソースを操作する方法です。LinuxやWindowsのCUIから操作を行うときに活用できます。コマンドラインから複数のサービスを制御できるため、慣れると利便性を体感できるでしょう。
スクリプトなどを作成することで効率的にリソースの操作を行うことが可能です。場合によっては各種操作を自動化することもできるため、さらなる効率化にも貢献します。
例(EC2作成):
aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f8
おすすめ用途
- CUIベースでの開発
- 既存リソースへの作業の自動化
AWS SDK
AWS SDKは、AWS CLIとほぼ同等のことをプログラミング言語を使用して実現できるツールです。プラットフォーム固有の構築ツールが開発者向けに提供され、ソフトウェアの開発から実行に至るまでを完結できます。.NET、Python、Rubyなど様々な言語で利用が可能です。プログラミング言語に慣れ親しんだユーザにとっては使いやすい操作方法かと思います。
必要に応じてドキュメントやチュートリアルを参考にし、トラブルシューティングを迅速に行えるでしょう。
Python例(EC2インスタンスの作成と起動):
self.instance = self.ec2_resource.create_instances(
**instance_params, MinCount=1, MaxCount=1
)[0]
self.instance.wait_until_running()
おすすめ用途
- プログラミング言語ベースでの開発
- 既存リソースへの作業の自動化
AWS CloudFormation
AWS CloudFormationは、Infrastructure as Code(以下IaC)と呼ばれるコードでインフラストラクチャーの構築・管理を行うリソースの作成方法の1つになります。リソース管理に伴う所要時間を削減し、アプリケーションへの集中を促せるツールです。リソース記述に際してはテンプレートを活用できるので、プロビジョニングや設定を効率よく行える仕組みが備わっています。
AWS SDKとの違いはAWS SDKがリソースに対する操作内容をプログラミング言語で記述するのに対して、IaCはどのようなリソースが存在するのかという状態を記述します。
AWS CloudFormationはその中でもAWSが提供するAWS環境のためのIaCです。AWS環境をIaCで構築・管理する場合にはとても便利です。
おすすめ用途
- IaCを使ったAWS環境の構築
- 同様の環境を複数作るとき
Terraform
Terraformは、AWS CloudFormationと同様にIaCと呼ばれるものの1つになります。Go言語で開発されているオープンソースのツールで、インフラ構成を自動管理できるのが強みです。初期プロビジョニングから更新、破棄に至るまで、コードによって宣言すれば自動化ができます。AWS CloudFormationとの最大の違いは、AWS CloudFormationがAWSリソースのみを作成できるのに対し、Terraformはオンプレミスや他のクラウドのリソースも作成することができる点です。
マルチクラウドやハイブリットクラウドを実現するためにとても便利です。
おすすめ用途
- IaCを使ったAWS環境の構築
- 同様の環境を複数作るとき
最後に
今回は、AWSの様々なリソースの操作についてご紹介しました。
使用用途に適した操作を行うことでAWSをより効率的に活用できるようになります。今まで使ったことがなかったものも、ぜひ活用してみてください。
今後は今回紹介したマネージメントコンソールやAWS CloudFormation、Terraformを活用した具体的なリソース作成について執筆予定です。