AWS CLIの基本コマンド
グローバルオプション
aws configure - AWS CLIの設定を行う(アクセスキー、シークレットキー、デフォルトリージョンなど)
aws help - コマンドのヘルプを表示
aws [service] help - 特定のサービスのヘルプを表示
aws [service] [operation] help - 特定の操作のヘルプを表示
IAM(Identity and Access Management)
aws iam create-user --user-name [ユーザー名] - 新しいIAMユーザーを作成
aws iam delete-user --user-name [ユーザー名] - IAMユーザーを削除
aws iam create-group --group-name [グループ名] - 新しいIAMグループを作成
aws iam delete-group --group-name [グループ名] - IAMグループを削除
aws iam add-user-to-group --user-name [ユーザー名] --group-name [グループ名] - ユーザーをグループに追加
aws iam remove-user-from-group --user-name [ユーザー名] --group-name [グループ名] - ユーザーをグループから削除
aws iam list-users - IAMユーザーの一覧を表示
aws iam list-groups - IAMグループの一覧を表示
EC2
aws ec2 run-instances --image-id [AMI ID] --count [インスタンス数] --instance-type [インスタンスタイプ] - 新しいEC2インスタンスを起動
aws ec2 stop-instances --instance-ids [インスタンスID] - EC2インスタンスを停止
aws ec2 start-instances --instance-ids [インスタンスID] - EC2インスタンスを開始
aws ec2 terminate-instances --instance-ids [インスタンスID] - EC2インスタンスを終了
aws ec2 describe-instances - EC2インスタンスの詳細情報を表示
aws ec2 create-key-pair --key-name [キーペア名] - 新しいキーペアを作成
aws ec2 delete-key-pair --key-name [キーペア名] - キーペアを削除
aws ec2 create-security-group --group-name [セキュリティグループ名] --description [説明] - 新しいセキュリティグループを作成
aws ec2 authorize-security-group-ingress --group-id [グループID] --protocol [プロトコル] --port [ポート番号] --cidr [CIDRブロック] - セキュリティグループにインバウンドルールを追加
S3
aws s3 ls - S3バケットの一覧を表示
aws s3 mb s3://[バケット名] - 新しいS3バケットを作成
aws s3 rb s3://[バケット名] - S3バケットを削除
aws s3 cp [ローカルファイルパス] s3://[バケット名]/[オブジェクト名] - ファイルをS3にアップロード
aws s3 cp s3://[バケット名]/[オブジェクト名] [ローカルファイルパス] - S3からファイルをダウンロード
aws s3 rm s3://[バケット名]/[オブジェクト名] - S3オブジェクトを削除
aws s3 sync [ローカルディレクトリ] s3://[バケット名] - ローカルディレクトリをS3バケットと同期
aws s3 sync s3://[バケット名] [ローカルディレクトリ] - S3バケットをローカルディレクトリと同期
RDS
aws rds create-db-instance --db-instance-identifier [インスタンス識別子] --db-instance-class [インスタンスクラス] --engine [データベースエンジン] --allocated-storage [ストレージサイズ] --master-username [マスターユーザー名] --master-user-password [マスターパスワード] - 新しいRDSインスタンスを作成
aws rds delete-db-instance --db-instance-identifier [インスタンス識別子] - RDSインスタンスを削除
aws rds start-db-instance --db-instance-identifier [インスタンス識別子] - RDSインスタンスを開始
aws rds stop-db-instance --db-instance-identifier [インスタンス識別子] - RDSインスタンスを停止
aws rds describe-db-instances - RDSインスタンスの詳細情報を表示
CloudFormation
aws cloudformation create-stack --stack-name [スタック名] --template-body file://[テンプレートファイルパス] - 新しいCloudFormationスタックを作成
aws cloudformation update-stack --stack-name [スタック名] --template-body file://[テンプレートファイルパス] - CloudFormationスタックを更新
aws cloudformation delete-stack --stack-name [スタック名] - CloudFormationスタックを削除
aws cloudformation describe-stacks - CloudFormationスタックの詳細情報を表示
Lambda
aws lambda create-function --function-name [関数名] --runtime [ランタイム] --role [ロールARN] --handler [ハンドラー] --zip-file fileb://[ZIPファイルパス] - 新しいLambda関数を作成
aws lambda update-function-code --function-name [関数名] --zip-file fileb://[ZIPファイルパス] - Lambda関数のコードを更新
aws lambda delete-function --function-name [関数名] - Lambda関数を削除
aws lambda invoke --function-name [関数名] outputfile.txt - Lambda関数を呼び出し、その結果をファイルに保存
CloudWatch
aws cloudwatch put-metric-data --namespace [名前空間] --metric-name [メトリック名] --value [値] - カスタムメトリックデータをCloudWatchに送信
aws cloudwatch get-metric-statistics --namespace [名前空間] --metric-name [メトリック名] --start-time [開始時刻] --end-time [終了時刻] --period [期間] --statistics [統計] - メトリック統計を取得
aws cloudwatch describe-alarms - CloudWatchアラームの詳細情報を表示
aws cloudwatch set-alarm-state --alarm-name [アラーム名] --state-value [状態] --state-reason [理由] - CloudWatchアラームの状態を設定
その他便利なコマンド
aws sts get-caller-identity - 現在のAWS認証情報の詳細を表示
aws logs create-log-group --log-group-name [ロググループ名] - 新しいロググループを作成
aws logs create-log-stream --log-group-name [ロググループ名] --log-stream-name [ログストリーム名] - 新しいログストリームを作成
aws logs put-log-events --log-group-name [ロググループ名] --log-stream-name [ログストリーム名] --log-events [ログイベント] - ログイベントをログストリームに送信
SSH関連のコマンド
AWS CLIでSSH関連の操作を行う場合、主にEC2インスタンスに対して行います。以下にSSH関連の基本的な操作を示します。
SSHキーの作成と管理
aws ec2 create-key-pair --key-name [キーペア名] --query 'KeyMaterial' --output text > [キーペア名].pem - 新しいSSHキーペアを作成し、ローカルに保存
chmod 400 [キーペア名].pem - キーペアのパーミッションを設定(重要)
EC2インスタンスへのSSH接続
EC2インスタンスのパブリックIPアドレスを取得します。
aws ec2 describe-instances --instance-ids [インスタンスID] --query 'Reservations[].Instances[].PublicIpAddress' --output text
SSHを使用してEC2インスタンスに接続します。