AWS CLI
# 個人設定はここにある
$ ls -l ~/.aws/
total 2
-rw-r--r-- 1 ponsuke 1049089 51 1月 31 15:51 config
-rw-r--r-- 1 ponsuke 1049089 235 1月 31 15:58 credentials
# 認証情報を~/.aws/credentialsに追加する
$ aws configure --profile {認証情報の設定名}
- AWS CLIをインストールする方法 - Qiita
- An error occurred (InvalidSignatureException) when calling the GetSecretValue operation: Signature expired: - Qiita
- AWS CLIでaws configureコマンドにprofileオプションを付けて使ってみた | DevelopersIO
S3
- はじめてのAmazon Simple Storage Service(S3) - ponsuke_tarou’s blog
- aws s3 ls があるなら aws s3 cat も実行したい、けど無理そうなので aws s3cat で我慢した | DevelopersIO
- S3のファイルをcatみたいに標準出力する方法 - Qiita
- ls — AWS CLI 2.8.5 Command Reference
- rm — AWS CLI 2.9.10 Command Reference
- うまく検索できない事例
# 認証してファイルを一覧で見る
$ aws s3 ls s3://mybucket/{ディレクトリパス}/ --profile {認証情報の設定名}
# ディレクトリ配下も含めてファイルを一覧で見る
$ aws s3 ls s3://mybucket/{ディレクトリパス}/ --recursive
# ディレクトリ配下も含めてファイルの日付で検索する
$ aws s3 ls s3://mybucket/{ディレクトリパス}/ --recursive | grep -e {日付(yyyy-MM-dd)}
# ファイルをダウンロードする(1ファイル)
$ aws s3 cp s3://mybucket/{ディレクトリパス}/myfilename.tsv ~/Downloads/ --profile {認証情報の設定名}
# ファイルをダウンロードする(複数ファイル)
$ aws s3 cp s3://mybucket/{ディレクトリパス}/ ~/Downloads/ --exclude "*" --include "*filename*.tsv" --recursive --profile {認証情報の設定名}
$ aws s3 cp s3://mybucket/{ディレクトリパス}/ ~/Downloads/ --exclude "*" --include "*.tsv" --include "*.csv" --recursive --profile {認証情報の設定名}
# ファイルをアップロードする
$ aws s3 cp ~/Downloads/filename.txt s3://mybucket/{ディレクトリパス}/ --profile {認証情報の設定名}
# ファイルを削除する
$ aws s3 rm s3://mybucket/{ディレクトリパス}/filename.txt --profile {認証情報の設定名}
# ディレクトリ配下のファイルまで全部削除する
$ aws s3 rm s3://mybucket/{ディレクトリパス}/ --recursive --profile {認証情報の設定名}
CloudFormation
Cloud9
- Cloud9のPython環境を作る - ponsuke_tarou’s blog
- 他の人が作ってくれたCloud9でPythonのバージョンが古い時の対応方法 - Qiita
- Pythonとpipのバージョンが違う - Qiita
- raise ValueError, "unsupported hash type" - Qiita
- Unable to import module 'lambda_function': No module named - Qiita
- This code could not be beautified - Qiita
- ターミナルとかのプロンプト表示を変更する - Qiita
- ModuleNotFoundError: No module named - Qiita
- Cloud9からAWS Resources消失 - Qiita
- ModuleNotFoundError: No module named 'MySQLdb' - Qiita
Secrets Manager
- The security token included in the request is expired - Qiita
- AWS Secrets Managerに登録された秘密鍵から公開鍵を作る方法 - Qiita
Lambda
- Lambda 関数の呼び出しとデバッグ - AWS Toolkit for JetBrains IDEs
- ビギナーがテストイベントを作成して関数を実行するまで。 - Qiita
- AWSのEC2インスタンスを祝日を除いた平日に自動起動するLambdaを作る記録
- EC2インスタンスをスケジュール起動&対象をタグで管理 (祝日対応) - Qiita
- AWSのEBSボリュームにタグをつけるLambdaを作った記録
- AWSのRDSを自動停止するLambdaを作る記録
- SlackにAWSとPythonを使って簡単なアプリを作る記録 - ponsuke_tarou’s blog
- AWSのLambdaでタグのついているインスタンスの情報を辞書形式で取得する方法 - Qiita
- Lambdaの実行権限とAPI Gatewayを作成する - ponsuke_tarou’s blog
- LambdaのPythonでGitHubのWebhookから送られてくるHAMC値をチェックする - ponsuke_tarou’s blog
Lambdaでは、サポート終了フェーズ2が開始するとデプロイすらできなくなてしまう。
# こんな感じのエラーになる
Resource handler returned message: "The runtime parameter of nodejs10.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs14.x) while creating or updating functions.
フェーズ 2 は、フェーズ 1 の開始から 30 日以上後に開始され、ランタイムを使用する関数を作成または更新できなくなります。関数を更新するには、サポートされているランタイムバージョンに移行する必要があります。
ランタイムサポートポリシー - AWS Lambda
RDS
- 寝るまでにざっくり知っとくRDSって何?
- RDSでMySQLを作ってみる
- Oracle Databaseにユーザー(スキーマ)を作った記録
- AWSのRDSの証明書を更新した記録
- AWSのRDSのバックアップをインスタンスに復元する記録
- DBと仲良くしたいときに役立つリンク集 - Qiita
- ERROR 2003 (HY000): Can't connect to MySQL server on - Qiita
EC2
- はじめてAWSのEC2でUbuntuを作ってSSHとリモートデスクトップで接続した時の記録 - ponsuke_tarou’s blog
- EC2インスタンスのスナップショットを作成する方法 - Qiita
- EC2インスタンスをコピーする方法 - Qiita
- AMIとスナップショットの違いについて調べた - Qiita
ElasticIPアドレスを使うとインスタンスのアドレスが固定できる
Elastic IP アドレス
Elastic IP アドレスは、インターネットからアクセス可能なパブリック IPv4 アドレスです。インスタンスにパブリック IPv4 アドレスがない場合、Elastic IP アドレスとインスタンスを関連付けてインターネットとの通信を有効にすることができます (ローカルコンピュータからインスタンスに接続するなど)。
Elastic IP アドレス - Amazon Elastic Compute Cloud
VPC(Virtual Private Cloud)
Virtual Private Cloud (VPC) は、AWS アカウント専用の仮想ネットワークです。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されており、AWS のリソース(例えば Amazon EC2 インスタンス)を VPC 内に起動できます。VPC の IP アドレス範囲を指定して、サブネットを追加し、セキュリティグループを関連付けて、ルートテーブルを設定できます。
Amazon VPC とは? - Amazon Virtual Private Cloud