AWS CLI 概要
コマンドラインからAWSの複数のサービスを制御し、スクリプトを使用してこれらを自動化することができる。
AWSコンソールのUIはちょこちょこ変わるので、コマンド使ってやったほうが楽。
扱っている内容は以下
- aws helpコマンドで出来ること把握
- aws versionとV1からV2へ変更
- awscliコマンド使って、s3に新規ファイルを格納する手順
$ aws help
aws helpコマンドで出てきたマニュアルは以下で操作
fキー次の項目へ
bキー前の項目へ
qキーhelp表示終了
マニュアル多すぎ、もっと詳細を絞りたい!!!
S3について調べたい場合
$ aws s3 help
実行可能なコマンドがいろいろ出てくる
AVAILABLE COMMANDS
o cp
o ls
o mb
o mv
o presign
o rb
o rm
o sync
o website
非公式コマンドリスト (自分で実際に検証したものに関してはまた別途スレッドに書く予定)
aws versionにも触れようかな
~$ aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/4.14.209-160.335.amzn2.x86_64 botocore/1.18.6
$ aws --version
aws-cli/2.2.4 Python/3.8.8 Linux/4.14.203-156.332.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
こんな感じでversion1とversion2が存在する。
V1からV2にする方法
aws configure コマンドを実行すると、Access KeyとSecret Acess Key、regionが求められる。
これ入力すると.awsディレクトリとその中にconfigとcredentialsが作成される。
credentialsは下記のように出来る。
[default]
Access Key : hoge
credentials : hoge
[user1]
Access Key : fuga
credentials : fuga
user1の部分は、IAMユーザー(EC2のフルアクセスの権限を持ったポリシーをアタッチされているなどが想定される)を作成するときに出てくるAccess KeyとSecret Acess Key。
個人的には、defaultは削除したほうが良い。(ec2-userと同じ感覚)
プロファイルはそんなに難しくない。
このユーザーはこれが出来るというすでに決めている取り決めを配置してコマンドで利用出来るようにしているだけ。
プロファイルに配置している時点で何ができるかは定まっている。(難解なのはIAMかな)
[s3に新規ファイルを格納する手順]
前提
s3://バケット名/プリフィクス名/オブジェクト名 (ファイルやディレクトリと同じ感覚で良き)
どんな命名規則が良いのだろう?
- バケット名はbackupなどの用途
- リフィクス名はlambdaやmysqlなどオブジェクトをどこで使うか
- オブジェクトはzipやjpgなどのファイル
aws s3 cp s3://backup/lambda hoge.zip(アップロードしたいディレクトリやファイルなど)
気をつけること(わざわざ書かなくても大丈夫だと思うが)
Preから本番にアクセスできないようにする。
例えば、マスクされた本番環境のデータを、PreのS3に渡すのはOKだけど、マスクされた本番環境のデータを本番のS3に渡して、Preからのアクセスを許容するのはやらないこと。