22
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NIJIBOXAdvent Calendar 2017

Day 18

AWS CLIのメリットや使いどころ

Last updated at Posted at 2017-12-17

AWSの設定・操作はブラウザから行っている方が大半だと思いますが、
今回はコマンドラインからAWSの操作が出来る「AWS CLI」にフォーカスして、
AWS CLIを触って1週間の素人が、メリットや使いどころを紹介していきます。

  • 普段AWSを使っているけど、AWS CLIは触ったことがない
  • AWS CLIを触ったことはあるが、活用しきれていない

こんな方にとって、少しでも参考になれば幸いです。

AWS CLIとは

Amazonさんの紹介文章を引用します

サービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してこれらを自動化することができます。
https://aws.amazon.com/jp/cli/

手元のパソコンに「AWS CLI」というものをインストールすれば、
コマンドラインからAWS各サービスの制御が出来るよ、というものです。
Pythonが入っていれば、このコマンドだけでインストール出来ちゃいます。

$ sudo pip install awscli

「AWS CLI」を導入すれば、通常ブラウザで操作しているような、
 ・ローカルPCにある画像ファイルをS3にアップロードする
 ・起動しているEC2インスタンスを停止する
こんなことがコマンドベースで行えます。

イメージをもう少し具体的にするため、S3へのファイルアップ方法を書いてみます。
ローカルPC上にこういうファイルがあったとします。

$ ls -l
-rw-r--r--  1 local_user  staff  0 12 14 07:47 access.log
-rw-r--r--  1 local_user  staff  0 12 14 07:47 error.log

試しにこの中のerror.logをS3にアップロードしてみましょう。
AWS CLIのコマンドは、アップしたいファイル名とアップ先のバケットを指定するだけ。

$ aws s3 cp error.log s3://otameshi201712
upload: ./error.log to s3://otameshi201712/error.log

この通り、error.logがS3上にアップロードされていますね。
image1.png

AWS CLIのメリットや使いどころ

ブラウザで出来る操作を、わざわざ「AWS CLI」を使ってやるメリットは何なのか。
ざっくり触った感想としては下記の2点で、
 ・AWS上でやっている操作を自動化したい
 ・AWS上のサービスと連携したツールを作りたい
「一定のルールに従ったAWS上の繰り返し作業をシェルスクリプト化出来る」点がメリットのように感じます。
「AWS CLI」を使ってEC2インスタンスを作成をすることも出来ますが、
設定することが多い=コマンドの引数が多くて辛い。。。となってしまうので、
AWS各サービスの構築作業はブラウザ経由で、繰り返し作業が発生する際に、
「AWS CLI」の利用を検討するのが良さそうです。

サンプルスクリプト

1.ログファイルをzip化してバックアップ

S3のlogsディレクトリに溜まっているログをzip化し、S3のbackupディレクトリにバックアップを取ります。
このスクリプト自体の実用性は低いですが、zip化する箇所を応用すれば、Adobe製品のスクリプトと組み合わせて、画像や動画加工も出来そうです。

backup.sh
#!/bin/bash

# S3からログファイルをダウンロード
aws s3 cp  s3://otameshi201712/logs ./temp --recursive

# ダウンロードしたログファイルをzip化
for LOG_NAME in ./temp/*.log
do
  zip $LOG_NAME.zip $LOG_NAME
  rm $LOG_NAME
done

# zip化したログファイルをS3にアップロード
aws s3 cp ./temp s3://otameshi201712/backup --recursive
rm ./temp/*

2.EC2/RDSインスタンスの立ち上げ・停止

EC2もRDSも従量課金なので、使わない時間帯は止めておくと節約できますね。
AWSのlamdaを使えば、定時間にインスタンスの起動・停止が行えますが、
これらのコマンドをまとめておくことで、任意のタイミングでコントロールができます。

▼インスタンス立ち上げ用

start.sh
#!/bin/bash
aws ec2 start-instances --instance-ids インスタンスID
aws rds start-db-instance --db-instance-identifier インスタンス名

▼インスタンス停止用

stop.sh
#!/bin/bash
aws ec2 stop-instances --instance-ids インスタンスID
aws rds stop-db-instance --db-instance-identifier インスタンス名

まとめ

「AWS CLI」を使うことで、サービスや業務における効率化の幅が広がりそうですね。
導入もとってもカンタンなので、一度お試しあれ!

22
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?