LoginSignup
1
2

More than 1 year has passed since last update.

AWS CLIの振り返り ~EC2入門編~

Last updated at Posted at 2021-07-03

本記事の目的

JAWS-UG CLI オンラインハンズオンの復習として、ハンズオンで取り上げられたAWSサービスに関する用語と、使用したAWS CLI コマンドを箇条書きでまとめる。
今回はEC2入門編を取り上げる。

主なAWSサービス用語

インスタンス

物理的なハードウェア上に作成された、OSを搭載した仮想的なコンピューター環境。仮想マシンとほぼ同義。

イメージ(AMI)

インスタンスの作成に必要なソフトウェア構成(OS、ミドルウェア、アプリケーション)を含むテンプレート。Amazon Machine Image の略。

インスタンスタイプ

様々なスペックを持つCPU、メモリ、ストレージ、ネットワークキャパシティーを組み合わせたインスタンスの種類。

ユーザデータ

インスタンス起動時に実行するスクリプト。

セキュリティグループ

インスタンスが通信する際のトラフィックを制御する仮想ファイアーウォール。

主なAWS CLI コマンド一覧

デフォルトVPCの作成

aws ec2 create-default-vpc

VPCの詳細表示

aws ec2 describe-vpcs \
  --filters ${FILTER_CONDITION}
オプション 引数 必須/任意 備考
--filters フィルタリング条件 任意 "Name=isDefault,Values=true"を指定する事で、デフォルトVPCを表示する。

VPCの削除

aws ec2 delete-vpc \
  --vpc-id ${EC2_VPC_ID}
オプション 引数 必須/任意 備考
--vpc-id VPC ID 必須

イメージの詳細表示

aws ec2 describe-images \
  --filters ${FILTER_CONDITION}
オプション 引数 必須/任意 備考
--filters フィルタリング条件 任意 "Name=name,Values=<イメージ名>"を指定する事で、特定のイメージを表示する。

EC2インスタンスの起動

aws ec2 run-instances \
  --image-id ${EC2_INSTANCE_IMAGE_ID} \
  --instance-type ${EC2_INSTANCE_TYPE} \
  --tag-specifications ${STRING_TAG_CONF_INSTANCE} \
  --user-data file://${FILE_USER_DATA} \
  --associate-public-ip-address
オプション 引数 必須/任意 備考
--image-id イメージID 任意 特定のイメージを用いてインスタンスを作成する。
--instance-type インスタンスタイプ 任意 特定のインスタンスタイプを用いてインスタンスを作成する。
--tag-specifications タグ情報 任意 "ResourceType=instance,Tags=[{Key=<タグのキー名>,Value=<タグの値>}]"を指定する事で、特定のタグのキーと値を持つインスタンスを作成する。
--user-data file://<ユーザデータのファイルパス> 任意 特定のユーザデータを使用してインスタンスを作成する。
--associate-public-ip-address N/A 任意 特定のパブリックIPが割り当てられたインスタンスを作成する。

EC2インスタンスの詳細表示

aws ec2 describe-instances \
  --filters ${FILTER_CONDITION}
オプション 引数 必須/任意 備考
--filters フィルタリング条件 任意 "Name=tag-key,Values=<タグのキー名> Name=tag-value,Values=<タグの値>"を指定する事で、特定のタグのキーと値を持つインスタンスを表示する。"Name=instance-state-name,Values=running"を指定する事で、起動状態のインスタンスを表示する。

EC2インスタンスの終了

aws ec2 terminate-instances \
  --instance-ids ${ARRAY_EC2_INSTANCE_IDS}
オプション 引数 必須/任意 備考
--instance-ids インスタンスID 必須

セキュリティグループへのインバウンドルール認証

aws ec2 authorize-security-group-ingress \
  --group-name ${EC2_SECURITY_GROUP_NAME} \
  --protocol ${EC2_SECURITY_GROUP_RULE_PROTOCOL} \
  --port ${EC2_SECURITY_GROUP_RULE_PORT} \
  --cidr ${EC2_SECURITY_GROUP_RULE_CIDR} \
  --tag-specifications ${STRING_EC2_EC2_SECURITY_GROUP_RULE_TAG}
オプション 引数 必須/任意 備考
--group-name セキュリティグループ名 任意 特定のセキュリティグループに対するインバウンドルールを追加する。
--protocol プロトコル名 任意 特定のプロトコルをに対応するインバウンドルールを追加する。
--port ポート番号 任意 特定のポート番号に対応するインバウンドルールを追加する。
--cidr IPアドレス範囲 任意 特定のIPアドレス範囲(x.x.x.x/x)に対応するインバウンドルールを追加する。
--tag-specifications タグ情報 任意 "ResourceType=security-group-rule,Tags=[{Key=<タグのキー名>,Value=<タグの値>}]"を指定する事で、特定のタグのキーと値を持つインスタンスを作成する。

セキュリティグループの詳細表示

aws ec2 describe-security-groups \
  --filters ${FILTER_CONDITION}
オプション 引数 必須/任意 備考
--filters フィルタリング条件 任意 "Name=vpc-id,Values=<VPC ID>"を指定する事で、特定のVPCに属するセキュリティグループを表示する。"Name=group-name,Values=<セキュリティグループ名>"を指定する事で、特定のセキュリティグループを表示する。"Name=ip-permission.protocol,Values=<プロトコル名>"を指定する事で、特定のプロトコルに対応するインバウンドルールが含まれるセキュリティグループを表示する。"Name=ip-permission.to-port,Values=<ポート番号>"を指定する事で、特定のポート番号に対応するインバウンドルールが含まれるセキュリティグループを表示する。"ip-permission.cidr,Values=<IPアドレス範囲(x.x.x.x/x)>"を指定する事で、特定のIPアドレス範囲に対応するインバウンドルールが含まれるセキュリティグループを表示する。

セキュリティグループのインバウンドルール削除

aws ec2 revoke-security-group-ingress \
  --group-id ${EC2_SECURITY_GROUP_ID} \
  --security-group-rule-ids ${ARRAY_EC2_SECURITY_GROUP_RULE_IDS}
オプション 引数 必須/任意 備考
--group-id セキュリティグループID 必須
--security-group-rule-ids セキュリティグループルールID 必須

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2