AWSを効率的に管理するためには、AWS CLI(コマンドラインインターフェース)とIaC(Infrastructure as Code)の概念を理解し、活用することが重要です。本記事では、それぞれの基本的な使い方と実践例を紹介します。
1. AWS CLI(Command Line Interface)
AWS CLIは、AWSのサービスをコマンドラインから操作できるツールです。GUIよりも効率的にリソースを管理でき、自動化にも適しています。
AWS CLIのインストール
Windows
- AWS CLIの公式サイトからインストーラーをダウンロード
- インストールウィザードに従ってセットアップ
- コマンドプロンプトで
aws --version
を実行し、正しくインストールされていることを確認
Mac/Linux
curl "<https://awscli.amazonaws.com/AWSCLIV2.pkg>" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
または、Linuxでは次のコマンドでもインストール可能:
curl "<https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip>" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
インストール後、aws --version
で確認。
AWS CLIの初期設定
aws configure
プロンプトに従い、次の情報を入力:
- AWS Access Key ID
- AWS Secret Access Key
- Default region name(例: ap-northeast-1)
- Default output format(json, text, table から選択)
基本的なAWS CLIコマンド
- EC2インスタンスの一覧表示
aws ec2 describe-instances
- S3バケットの作成
aws s3 mb s3://my-new-bucket
- RDSインスタンスの一覧表示
aws rds describe-db-instances
- IAMユーザーの作成
aws iam create-user --user-name NewUser
2. IaC(Infrastructure as Code)とは?
IaC(Infrastructure as Code)は、クラウドインフラをコードとして管理する手法です。手作業による設定ミスを防ぎ、スケーラブルな環境管理が可能になります。
代表的なIaCツール
ツール | 特徴 |
---|---|
AWS CloudFormation | AWS純正のIaCツール。JSON/YAML形式で記述 |
Terraform | AWS以外のクラウドにも対応。HCL言語を使用 |
AWS CDK | プログラミング言語(TypeScript, Python, etc.)で記述可能 |
3. AWS CloudFormationの基本
AWS CloudFormationを使用すると、YAMLまたはJSONでインフラを定義し、一括でデプロイできます。
CloudFormationのテンプレート例(EC2作成)
AWSTemplateFormatVersion: '2010-09-09'
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0abcdef1234567890
InstanceType: t2.micro
CloudFormationスタックのデプロイ
aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml
CloudFormationのスタック削除
aws cloudformation delete-stack --stack-name MyStack
4. Terraformの基本
Terraformは、AWSだけでなくAzureやGCPにも対応するIaCツールです。
Terraformのインストール
Terraformの公式サイトからダウンロードし、インストール。
Terraformの基本的な構成ファイル(main.tf)
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890"
instance_type = "t2.micro"
}
Terraformの実行手順
- 初期化
terraform init
- 設定の確認
terraform plan
- インフラの作成
terraform apply
- インフラの削除
terraform destroy
5. AWS CDK(Cloud Development Kit)の基本
AWS CDKを使うと、TypeScriptやPythonでインフラを管理できます。
AWS CDKのインストール
npm install -g aws-cdk
CDKプロジェクトの作成
cdk init app --language=typescript
CDKコード例(EC2作成)
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
class MyStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new ec2.Instance(this, 'MyInstance', {
vpc: new ec2.Vpc(this, 'MyVpc'),
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
machineImage: ec2.MachineImage.latestAmazonLinux(),
});
}
}
CDKのデプロイ
cdk deploy
まとめ
AWS CLIとIaCを活用することで、AWSのリソース管理を効率化できます。
- AWS CLI: コマンドラインでAWSリソースを操作
- AWS CloudFormation: JSON/YAMLでインフラをコード化
- Terraform: マルチクラウド対応のIaCツール
- AWS CDK: プログラムコードでAWSリソースを管理
次のステップでは、「AWSのネットワークとセキュリティ(VPC、セキュリティグループ、ELB)」について学んでいきます!