...

AWS CLI (Command Line)
AWS Command Line Interface๋ ์ ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ์ฌ AWS ์๋น์ค์ ์ํธ ์์ฉํ ์ ์๋ ๋๊ตฌ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ๋ก ์๋ง์กด ์น ์๋น์ค ํํ์ด์ง(์ฝ์ ํ)์ ๊ฐ์ ์๋น์ค๋ฅผ ์ด์ฉํ ๊ฒ ์ฒ๋ผ, ํฐ๋ฏธ๋์์ ๋ช ๋ น์ค๋ก aws ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์ต์ํ์ ๊ตฌ์ฑ์ผ๋ก AWS CLI๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ AWS Management Console์์ ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ช ๋ น์ ์คํํ ์ ์๋ค.
ํธํ๊ฒ ์น์์ ๊ด๋ฆฌํ๋ฉด ๋์ง, ๋ฐ๋ก CLI ๊ธฐ๋ฐ์ ์ปค๋งจ๋๋ฅผ ์ง์ํ๋ ์ด์ ๋, AWS CLI๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ๊ธฐ๋ฅ์ ์ดํด๋ณด๊ณ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ๋ค์ด VPC ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ค๊ณ ํ๋ฉด ์น ์ฝ์ ๋ธ๋ผ์ฐ์ ์์๋ ๋ง์ฐ์ค๋ก ์ด๋ฆฌ์ ๋ฆฌ ํด๋ฆญํ๋ฉฐ ์์ฑํด์ผ ๋์ง๋ง, ์ ์คํฌ๋ฆฝํธ๋ก ํ ํ๋ฆฟ์ ์ง์ ์คํ๋ง ํ๋ฉด ๋๋ฑ ๋ง๋ค ์ ์๋ค.
๊ทธ๋์ ๋ง์ผ ์ธํ๋ผ ์๋น์ค ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด, ์คํ๋ ค ์ปค๋งจ๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ ์์ํด ์ง ์ ์๋ค.
๋คํํ ์๋ง์กด์์๋ ์ ๋ง ๋ค์ํ API ๋๊ตฌ๋ค์ ์ง์ํด์ฃผ๋ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ ํ์ฉํ์ฌ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.

AWS CLI ์ค์น
๋ฆฌ๋ ์ค (Linux)
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws --version
aws-cli/2.7.9 Python/3.9.11 Linux/5.13.0-51-generic exe/x86_64.ubuntu.20 prompt/off
$ rm -f awscliv2.zip # ์ค์น ๋์์ผ๋ฉด zip์ ์ง์์ฃผ์. ์ฉ๋์ด ์ฌ์ ๋กญ์ง ๋ชปํ๋ค
๋ง์ผ ์ด๋ฏธ ์ค์น๋์ด์๊ณ ์ ๋ฐ์ดํธ๋ง ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
$ which aws
/usr/local/bin/aws
$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
์๋์ฐ (Windows)
โ ์๋ ๋งํฌ๋ก AWSCLIV2.msi ํ์ผ์ ๋ค์ด๋ก๋
https://awscli.amazonaws.com/AWSCLIV2.msi


์ค์น๊ฐ ์๋ฃ๋๋ฉด Windows(ํค) + R ์คํํ์ฌ CMD๋ฅผ ์คํ์์ผ ์ค๋ค.

CMD ์ฐฝ์ aws --version ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ ์๋์ ๊ฐ์ ์ถ๋ ฅ์ด ๋์ค๋ฉด AWS CLI ์ค์น๊ฐ ์๋ฃ ๋ ๊ฒ์ด๋ค.

๋งฅ (Mac)
Mac OS๋ Homebrew๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ์ค์น ํ ์ ์๋ค.
$ brew install awscli
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.0.26 Python/3.8.3 Darwin/19.0.0 botocore/2.0.0dev30
AWS CLI ์ฌ์ฉ๋ฒ
CLI ์ธ์ฆ ์ค์
AWS Cli๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ AWS ๊ณ์ ์์ ๋ฐ๊ธํ IAM ์ฌ์ฉ์์ AWS Access Key ID์ AWS Secret Access Key๊ฐ ํ์ํ๋ค.
AWS ํํ์ด์ง์์ ๊ณ์ ์ ๋ก๊ทธ์ธ ํ ๊ฒ๊ณผ ๊ฐ์ด, CLI์์๋ ๋ด ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์ IAM์์ ๋ฑ๋กํ ์ฌ์ฉ์ ๊ณ์ ์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ๋ค.
๊ทธ ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ Access Key ID์ Secret Access Key ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์ด๋ฏธ ๋ฐ๊ธ๋ฐ์ IAM ์ ๋ณด๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์งํ ํ๋ค.
๋ง์ผ ์์ ์ ์์ธ์ค ํค์ ์ํฌ๋ฆฟ ํค๋ฅผ ๋ถ์คํ์๋ค๋ฉด IAM ์ฝ์ ๋ฉ๋ด์ ๋ค์ด๊ฐ์ ๊ฐ๋จํ๊ฒ ์ฌ๋ฐ๊ธ ๋ฐ์ ์ ์๋ค. (์ต๋ 2๊ฐ)
[AWS] ๐ ์ฅ๊ธฐ ์๊ฒฉ ์ฆ๋ช & ์์ ์๊ฒฉ ์ฆ๋ช (Access Key / Secret Access Key)
AWS ์๊ฒฉ ์ฆ๋ช AWS ์ก์ธ์ค ๋ฐฉ์์ ๋ฐ๋ผ ๋ค์ํ ์ ํ์ ๋ณด์ ์๊ฒฉ ์ฆ๋ช ์ ํ์๋ก ํ๋ค. AWS์ ๋ก๊ทธ์ธ ํ์ฌ ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋๋ค. ์ฝ์ ์ก์ธ์ค ์๊ฒฉ ์ฆ๋ช AWS ์ฝ์ ์น ๋งค๋
inpa.tistory.com


์ ์ ์์ธ์ค ํค๋ฅผ ์์๋๋ค๋ฉด, aws configure๋ฅผ ์ ๋ ฅํ์ฌ ์ด์ฉํ๊ณ ์ ํ๋ User์ Access, Secret Access Key๋ฅผ ์ ๋ ฅํด์ฃผ์.
$ aws configure
AWS Access Key ID [None] : [๋ฐ๊ธ๋ฐ์ IAM์ Access Key ID]
AWS Secret Access Key [None] : [๋ฐ๊ธ๋ฐ์ IAM์ Secret Access Key]
Default region name [None] : ap-northeast-2[์์ธ ๋ฆฌ์ ]
Default output format [None] : text / json / table
Default output format(๊ธฐ๋ณธ ์ถ๋ ฅ ํฌ๋งท)์ API๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ํฌ๋งท์ ์ง์ .
์ด ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ --output <FORMAT> ์ต์ ์ผ๋ก ๋ฎ์ด์ธ ์ ์๋ค.

CLI ๋ค์ค ๊ณ์ ์ค์
์์ ๋ฐฉ์์ default ํ๋กํ๋ก ๋ฑ๋ก์ด ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก AWS CLI๋ default ํ๋กํ์ผ์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฐ๋ฐ Cli๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด default ๊ณ์ ์ด์ธ์ ๋ค์ค ๊ณ์ ์ ์ด์ฉํ ๊ฒฝ์ฐ๊ฐ ๊ฝค ๋ฐ์ํ๋ค.
CLI์์ ๋ง์ผ ์ฌ๋ฌ AWS ๊ณ์ ๊ณผ ์์ด๋๋ฅผ ์ด์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐOS์์๋ ์ฌ๋ฌ ๊ณ์ ์ ์์ฑํ ์ ์๋ฏ์ด, --profile ์ต์ ์ผ๋ก ์ง์ ํด์ค ์ ์๋ค.
--profile ์ต์ ์ ์ง์ ํ๊ณ ์ด๋ฆ์ ํ ๋นํ์ฌ ๋ค์ํ ์๊ฒฉ ์ฆ๋ช ๋ฐ ์ค์ ์ ํตํด ๋ช ๋ช ๋ ํ๋กํ์ผ์ ์ถ๊ฐ๋ก ์์ฑํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
$ aws configure --profile [์ํ๋ ์ด๋ฆ]

์ด๋ ๊ฒ ํ๋กํ์ ์ค์ ํด ๋ค์ค ๊ณ์ ์ ๊ตฌ์ถํ๋ค๋ฉด, ๋ค๋ฅธ ์๋น์ค CLI ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ --profile ์ด๋ฆ์ ๋ถ์ฌ์ ๋ค๋ฅธ ๊ณ์ ์ ๋ด์ญ์ ์ถ๋ ฅํ ์ ์๊ฒ ๋๋ค.
$ aws s3 ls # default user์ s3 ๋ด์ญ์ ์ถ๋ ฅํ๋ค.
$ aws s3 ls --profile [profile์ด๋ฆ] # profile์ s3 ๋ด์ญ์ ์ถ๋ ฅํ๋ค.
$ aws s3 ls --configure=[profile์ด๋ฆ]
ํ์ง๋ง ๋ค๋ฅธ ํ๋กํ์ ์ฌ์ฉํด์ผ ํ ๋ ์ผ์ผํ ์ต์ ์ ๋ถ์ฌ๊ฐ๋ฉฐ ํ๋๊ฑด ๋นํจ์จ์ ์ด๋ค.
๋ฐ๋ผ์ aws์ฉ ํ๊ฒฝ๋ณ์์ ํ๋กํ์ ๋ฑ๋กํด ๊ธฐ๋ณธ ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
$ export AWS_PROFILE=[profile์ด๋ฆ]
$ export AWS_PROFILE=default
์ค์ ํ ์ธ์ฆ ์ ๋ณด ๋ณด๊ธฐ
์์์ aws configure ๋ก ์ค์ ํ ์ธ์ฆ์ ๋ณด๋, /home/์ ์ ๋ช
/.aws ๊ฒฝ๋ก์์ configํ์ผ๊ณผ credentials ํ์ผ์ ๋ค์ด์๋ค.
aws configure ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ฒ ๋๋ค๋ฉด, .aws ๋ผ๋ ํด๋์ config์ credentials ํ์ผ์ด ์์ฑ๋๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ์ธ์ฆ์ ๋ณด๊ฐ ์ ์ฅ๋๋, ์ธ์คํด์ค๋ฅผ ์ฌ๋ถํ ํด๋ ์ธ์ฆ์ ๋ณด๊ฐ ๊ณ์ ์ธ์คํด์ค์ ์ ์ง๋๊ฒ ๋๋ค.
์ ์ฅ๋ credentials ํ์ผ์,
Linux ๋๋ macOS์ ๊ฒฝ์ฐ๋ ~/.aws/์,
Windows์ ๊ฒฝ์ฐ๋ C:\Users\USERNAME\.aws\์ ์๋ค.

config
- output : aws cli๋ก ๋ถํฐ ์๋ต์ ๋ฐ๋ ํ์ (์ : json, text)
- region : aws region์ ์๋ฏธํ๋ค. region ์ฝ๋ํ๋ AWS ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
credentials
- aws_access_key_id : ์ก์ธ์ค ํค ์์ด๋
- aws_secret_access_key : ์ํฌ๋ฆฟ ์ก์ธ์ค ํค
$ cat ~/.aws/config
[default]
region=us-west-2
output=json
[profile ํ๋กํ๋ช
]
region=us-east-1
output=text
$ cat ~/.aws/credential
[default]
aws_access_key_id="๋ํดํธ ์์ธ์ค ํค ์์ด๋"
aws_secret_access_key="๋ํดํธ ์ํฌ๋ฆฟ ์์ธ์ค ํค"
[ํ๋กํ๋ช
]
aws_access_key_id="ํ๋กํ๋ช
์์ธ์ค ํค ์์ด๋"
aws_secret_access_key="ํ๋กํ๋ช
์ํฌ๋ฆฟ ์์ธ์ค ํค"
$ aws configure list # ์ค์ ํ ์ธ์ฆ ์ ๋ณด๋ฅผ ํ์ธ
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************IV67 shared-credentials-file
secret_key ****************pVnu shared-credentials-file
region ap-northeast-2 config-file ~/.aws/config
์ด๋ฐ์ CLI ๋ช ๋ น์ด
help ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ๋ช ๋ น์ด๋ค์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ปค๋งจ๋ ๋ผ์ธ์์ ๋ฐ๋ก ํ์ธํ ์ ์๋ค.
$ aws help
$ aws <COMMAND> help
$ aws <COMMAND> <SUBCOMMAND> help
# ๋ชจ๋ ํ๋กํ์ผ ๋ฆฌ์คํธ
$ aws configure list-profiles
# ํ ์ฌ์ฉ์ Region ๋ณ๊ฒฝํ๊ธฐ
$ aws configure set region us-east-1
# aws iam user ์ ๋ณด ์ป์ด์ค๊ธฐ
$ aws iam list-users
$ aws iam list-users --profile <profile-name>
# ํ์ฌ ์ฌ์ฉ์ค์ธ iam ์ ๋ณด(๊ถํ) ์ป๊ธฐ
$ aws sts get-caller-identity
{
"UserId": "AIDAYXPEPKAAAH2G44W3T",
"Account": "600163123454",
"Arn": "arn:aws:iam::600163123454:user/QA2"
}
AWS CLI์์ Amazon EC2 ์ฌ์ฉ - AWS Command Line Interface
์ด ํ์ด์ง์ ์์ ์ด ํ์ํ๋ค๋ ์ ์ ์๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ง์์ผ ๋๋ ค ์ฃ์กํฉ๋๋ค. ์ ๊น ์๊ฐ์ ๋ด์ด ์ค๋ช ์๋ฅผ ํฅ์์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ํด ์ฃผ์ญ์์ค.
docs.aws.amazon.com
[AWS] ๐ S3 - CLI ๋ช ๋ น์ด ์ข ๋ฅ ๐ฏ ์ด์ ๋ฆฌ
AWS S3 CLI ๋ช ๋ น์ด ์ง๊ธ๊น์ง S3์ ๋ฒํท์ ์์ฑํ๊ณ ํ์ผ์ ์ ์ฅํ๋ ค๋ฉด ์น๋ธ๋ผ์ฐ์ ์ฝ์ ํ๋ฉด์ ๊ฐ์ ์ผ์ผํ ํ๋ฉด์ ๋๋ฌ ์ ์ฉํด์ผ ํ๋ค. ๊ธฐ๋ฅ์์๋ ๋ฌธ์ ๋ ์์ง๋ง ์น์๋น์ค ์์ฒด๊ฐ ์กฐ๊ธ ๋๋ฆฌ๋ค๋
inpa.tistory.com
# ์ฐธ๊ณ ์๋ฃ
https://www.thelambdablog.com/a-concise-guide-to-setting-up-the-aws-command-line-libraries-on-your-local-development-environment/
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.