AWSロードマップ

AWSを自動化!CLIとIaC(Infrastructure as Code)の基本をわかりやすく解説

AWSを効率的に管理するためには、AWS CLI(コマンドラインインターフェース)とIaC(Infrastructure as Code)の概念を理解し、活用することが重要です。本記事では、それぞれの基本的な使い方と実践例を紹介します。


1. AWS CLI(Command Line Interface)

AWS CLIは、AWSのサービスをコマンドラインから操作できるツールです。GUIよりも効率的にリソースを管理でき、自動化にも適しています。

AWS CLIのインストール

Windows

  1. AWS CLIの公式サイトからインストーラーをダウンロード
  2. インストールウィザードに従ってセットアップ
  3. コマンドプロンプトで 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 CloudFormationAWS純正のIaCツール。JSON/YAML形式で記述
TerraformAWS以外のクラウドにも対応。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の実行手順

  1. 初期化 terraform init
  2. 設定の確認 terraform plan
  3. インフラの作成 terraform apply
  4. インフラの削除 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)」について学んでいきます!

-AWSロードマップ
-, , , , , , , ,