個人開発でよく使うAWS CLIコマンドまとめ

AWS CLIはローカル環境からAWSの各種リソースを操作するために非常に便利なツールです。個人開発でも利用頻度が高く、頻出するコマンドをいくつか紹介します。


# 1. AWS CLI の基本設定

AWS CLIを利用する前に、初期設定として aws configure でアクセスキーなどの情報を設定します。
```
aws configure
```

**AWS Access Key ID**: AWSのアクセスキーID

**AWS Secret Access Key**: 秘密アクセスキー

**Default region name**: ex. ap-northeast-1 (東京リージョン)

**Default output format**: 通常は json が多い

こうしておけば、以降のコマンドで都度リージョン指定などをしなくてもよくなります。

# 2. S3 関連コマンド

AWS S3はよく利用されるオブジェクトストレージです。個人開発でもファイルのホスティングやバックアップ先として利用することが多いです。

バケット一覧の確認
```
aws s3 ls
```
バケットへのファイルアップロード
```
aws s3 cp <ローカルファイル> s3://<バケット名>/<アップロード先>
```
ローカルへのダウンロード
```
aws s3 cp s3://<バケット名>/<ファイルパス> <保存先>
```
同期アップロード: ローカルディレクトリとS3を同期
```
aws s3 sync <ローカルディレクトリ> s3://<バケット名>/<パス>
```
# 3. EC2 関連コマンド

個人開発でも、EC2インスタンスを利用する機会はよくあります。基本的にインスタンスの一覧を確認したり、新規インスタンス作成などを行います。

インスタンス一覧
```
aws ec2 describe-instances
```
インスタンスの詳細情報が大量に出力されます。必要に応じて --query オプションなどを用いてフィルタリングできます。

AMI一覧確認
```
aws ec2 describe-images --owners self amazon
```
独自に作成したAMIやAmazon公式のAMIを確認できます。

インスタンス起動例
```
aws ec2 run-instances \
  --image-id <AMI-ID> \
  --count 1 \
  --instance-type t2.micro \
  --key-name <SSH鍵名> \
  --security-group-ids <セキュリティグループID>
```
# 4. ECR 関連コマンド

DockerコンテナのイメージをAWS上に保存・管理するためのサービスがECR (Elastic Container Registry)です。個人開発でECSやFargateを使う際にはお世話になる場面が多いでしょう。

リポジトリ一覧
```
aws ecr describe-repositories
```
Dockerイメージのプッシュ手順

ECRにログイン (認証トークン発行)
```
aws ecr get-login-password | docker login --username AWS --password-stdin <AWSアカウントID>.dkr.ecr.<リージョン>.amazonaws.com
```
ローカルでDockerイメージをビルド
```
docker build -t <リポジトリ名> .
```
タグ付け
```
docker tag <リポジトリ名>:latest <AWSアカウントID>.dkr.ecr.<リージョン>.amazonaws.com/<リポジトリ名>:latest
```
プッシュ
```
docker push <AWSアカウントID>.dkr.ecr.<リージョン>.amazonaws.com/<リポジトリ名>:latest
```
# 5. Lambda 関連コマンド

AWS Lambdaはサーバーレスでコードを実行できる便利なサービスです。CLI上からコードのデプロイなども可能です。

関数一覧
```
aws lambda list-functions
```
関数更新 (ZIPファイルをアップロード)
```
aws lambda update-function-code \
  --function-name <Lambda関数名> \
  --zip-file fileb://<デプロイ用ZIPファイル>
```
実行テスト
```
aws lambda invoke \
  --function-name <Lambda関数名> \
  --payload '{"key":"value"}' \
  response.json
```
実行結果は response.json に出力されます。

# 6. DynamoDB 関連コマンド

NoSQLデータベースのDynamoDBも個人開発で利用する機会が比較的多いサービスです。

テーブル一覧の確認
```
aws dynamodb list-tables
```
テーブル作成 (例)
```
aws dynamodb create-table \
  --table-name <テーブル名> \
  --attribute-definitions AttributeName=Id,AttributeType=S \
  --key-schema AttributeName=Id,KeyType=HASH \
  --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
```
項目の書き込み (put-item)
```
aws dynamodb put-item \
  --table-name <テーブル名> \
  --item '{"Id":{"S":"123"},"Name":{"S":"Test"}}'
```
# 7. CloudFormation 関連コマンド

インフラをコードとして管理する際にCloudFormationを使う場合、以下のCLIコマンドを活用すると便利です。

スタック一覧
```
aws cloudformation list-stacks
```
スタック作成
```
aws cloudformation create-stack \
  --stack-name <スタック名> \
  --template-body file://<テンプレートファイル>.yaml \
  --parameters ParameterKey=Example,ParameterValue=MyValue
```
スタック削除
```
aws cloudformation delete-stack \
  --stack-name <スタック名>
```
# 8. まとめ

ここで紹介したコマンドはAWS CLIのごく一部です。個人開発ではまず aws configure で認証とリージョンを設定し、あとは必要なサービスのCLIコマンドを調べながら使っていくことで効率良くAWSを操作できます。AWSの公式ドキュメントには各オプションも詳しく載っているため、さらに深く学びたい場合は必見です。

以上、個人開発でよく使うAWS CLIコマンドの簡単なまとめでした。