Open6

AWS CLI 概要

tuzzotuzzo

コマンドラインからAWSの複数のサービスを制御し、スクリプトを使用してこれらを自動化することができる。
AWSコンソールのUIはちょこちょこ変わるので、コマンド使ってやったほうが楽。

扱っている内容は以下

  • aws helpコマンドで出来ること把握
  • aws versionとV1からV2へ変更
  • awscliコマンド使って、s3に新規ファイルを格納する手順
tuzzotuzzo
$ 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

公式ドキュメント

非公式コマンドリスト (自分で実際に検証したものに関してはまた別途スレッドに書く予定)

tuzzotuzzo

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にする方法
https://zenn.dev/ifuriito/scraps/0f5a491dd49e0e

tuzzotuzzo

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かな)

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html

tuzzotuzzo

[s3に新規ファイルを格納する手順]

前提
s3://バケット名/プリフィクス名/オブジェクト名 (ファイルやディレクトリと同じ感覚で良き)

どんな命名規則が良いのだろう?

  • バケット名はbackupなどの用途
  • リフィクス名はlambdaやmysqlなどオブジェクトをどこで使うか
  • オブジェクトはzipやjpgなどのファイル
aws s3 cp s3://backup/lambda hoge.zip(アップロードしたいディレクトリやファイルなど)
tuzzotuzzo

気をつけること(わざわざ書かなくても大丈夫だと思うが)
Preから本番にアクセスできないようにする。
例えば、マスクされた本番環境のデータを、PreのS3に渡すのはOKだけど、マスクされた本番環境のデータを本番のS3に渡して、Preからのアクセスを許容するのはやらないこと。