AWS 活用術~ AWSコマンドラインインターフェイス活用のススメ~

2020.06.25

Share

クラウドサービス(クラウドコンピューティングサービス)が普及し、従来の自社内で運用・構築するオンプレミスからクラウドサービスへ移行した、または検討している方も多いのではないでしょうか。クラウドサービスが普及している主な理由としては、変化に応じたスケーラビリティやセキュリティ環境、コストパフォーマンスなどに優れている点ではないでしょうか。クラウド上で提供されているAmazon Web Service(AWS) やGoogle Cloud Platform(GCP) 、Microsoft Azure などが広く利用されている代表的なものです。

本記事ではその中でもAmazon Web Serviceを対象に、知っておくと便利なオープンツールの活用法をお伝えします。この機能を知っておけば、より高度にAmazon Web Serviceを使いこなすことが可能です。活用法を知っていただき、役立つヒントになれば幸いです。

Amazon Web Service(アマゾン ウェブ サービス AWS)とは

Amazon Web Service(以下AWS)とは、Amazon Web Service, Inc.が提供しているクラウドサービスです。インフラストラクチャからアプリケーションまで、様ざまなリソースを利用することができます。

Amazon Web Serviceでは、よりサービスを柔軟に操作できるように、コマンドシェルでコマンドを使用してやりとりを行うことができるオープンツールが提供されています。

Amazon Web Serviceの利用方法は大きく分けて2種類存在しています。

1. グラフィカルユーザインタフェース(Graphical User Interface:GUI)※1から利用する
2. コンソール (ターミナル, コマンドプロンプト) から利用する

一見すると、GUI を利用した方が便利で簡単に見えますが、 今回は後者の 「コンソールから利用するメリット」を紹介したいと思います。
Amazon Web Serviceにコンソールからアクセスする場合、AWS CLIを利用します。
AWS CLI はAmazon Web Service コマンドラインインターフェイスの略で、Amazon Web Service の各サービスをスクリプトベースで操作することができます。

※1.操作がグラフィックスで表現されるユーザーインターフェイスのこと。アイコンや、画像などを使用する。ポインティングデバイスによって操作を指示し、直感的な動作が可能になる。

なぜ CLI を使うのか?

Amazon Web Service は日々アップデートされる GUI を提供しているので、 ブラウザからアクセスしてマウスでクリックしながら直感的にサービスを利用することができます。
しかし実際に運用してみると、 GUI 利用には3つのデメリットがあることが見えてきました。CLIを利用した場合のメリットと比較しながら解説します。

① 作業のマニュアル化が難しい
GUI ベースの作業は自分の作業をマニュアル化したり、他人に説明したりするのが大変です。 Amazon Web Serviceが提供する UI もいつアップデートされて画面や表記が変わるかわかりません。 説明のために画面をキャプチャし、アップデートに合わせて更新するには莫大な工数がかかってしまいます。 CLI はスクリプトだけで記述が可能で、既存の表記が変わることがないため、マニュアルの作成という面では確実にCLIの方が効率的です。

② ( GUI では ) エラー文が出てこないことがある
頻繁に起こる現象ではありませんが、偶に GUI ではエラー内容が表示されないエラーが起こります。 これが非常に厄介で、なぜエラーが起こっているのか、そもそも本当にエラーが起こっているのか、調査に無駄な工数がかかります。 また、エラー文がしっかり出ていても、 GUIの場合は比較的(良くも悪くも)簡易なメッセージとして表示されてしまいます。 CLI は詳細なエラー文を表示してくれるため、テストや調査に必要以上の工数を割く必要がありません。 わざわざエラー文を確認するためだけに GUI で行なっていた作業を CLI でやり直すのも非常に非効率です。 最初から素直に CLI で作業するべきだと考えます。

③ GUI ではできない操作がある!
最後になりましたが、これが一番わかりやすいデメリットではないでしょうか。 後述しますが、CLI 操作の場合、細かいオプションやパラメータを設定して各サービスの操作を行うことができます。 こういった操作の中には GUI ではできないものがたくさんあります。 また、CLI は日々、公式リリースで確認できるようにGUIのアップデートが追いつかないほどたくさんのリリースを出しており、毎年そのリリース数も増加しています。新しい機能を十分に活用したい、と考えるならば CLI を利用した方が良いと言えます。せっかくサービスを利用するのであれば、その機能を活用しましょう。

以上3つの点から、機能面や効率面において優れる CLI の活用をおすすめします。CLIはスクリプトベースです。CLIを十分に活用できれば、Amazon Web Serviceサービスの運用の自動化やシステム化といったテーマの第一歩にもなります。

では、CLIを早速使ってみましょう

実際に GUI ではできない操作を CLI で簡単に記述する例を紹介していきます。 まずはpipを使ってAWS CLI をインストールします。

記述例
 
pip install awscli
 

以下コマンドでバージョンを確認できます。

記述例
 
aws –version
 

アクセスキーなどを登録していない場合は以下コマンドで登録します。

記述例
 
aws configure
 

以上がCLIのセットアップになります。

cli コマンドの構成

cli コマンドは、ベースコール、コマンド、サブコマンド、CLIオプション・パラメータによって構成されています。 ベースコールはawsプログラムのベースコールで、aws と記述します。 コマンドで利用するサービスを指定し、サブコマンドで実行する操作を指定します。 パラメータは指定したコマンドやサブコマンドによって文字列やマップ、JSON などで入力が可能です。
2019年5月現在、コマンドは150以上・サブコマンドは5000以上も存在しています。
(参考HP:Amazon Web Service

 

s3コマンドを例にとると、サブコマンドは以下のようなものがあります。
・単一ファイル/オブジェクトの操作コマンド

cp:ローカル, S3間やS3内でオブジェクトをコピーする
mv:ローカル, S3間やS3内でオブジェクトを移動する
rm:S3内オブジェクトを削除する

・バケット/フォルダ操作コマンド

ls:バケットや指定パスのフォルダ・オブジェクトの一覧を表示する
sync:ローカル, S3間やS3内でディレクトリの同期をする

バケットの一覧を表示するときは以下のようなコマンドになります。

記述例
 
aws s3 ls
 

併せて、CLIオプション/パラメータも例をあげます。

--include/--exclude:パターン文字を使用してコマンド操作の対象を指定/除外する
--recursive:指定フォルダ下のオブジェクトを再帰的に取得する

以上のように、CLIオプション/パラメータを指定することによってより操作のより詳細な設定を行うことができます。

バケット内のtxtオブジェクト取得コマンド

以上を踏まえ、今回は例として、 Amazon Simple Storage Service(Amazon S3)※2上のバケット内のtxtオブジェクトのみの一覧を AWS CLI を使って取得してみます。

コマンドは以下になります。

記述例
 
aws s3 ls s3://[バケット名]/ –-recursive --exclude "*" --include "*.txt"
 

上記のcli コマンドは、

コマンド:s3 ( s3に関する操作を指定 )
サブコマンド:ls s3://[バケット名]/ (オプションでパスを設定し、指定バケットのみを操作 )

パラメータ:–-recursive ( 指定バケットのオブジェクトを再帰的に取得 ) –exclude”*” ( 全ての文字列に一致するオブジェクトを除外 ) –include”*.txt” ( サフィックスが.txtのオブジェクトを指定 )

によって構成されています。
--recursiveパラメータによりオブジェクトを再帰的に取得し、 --exclude パラメータで一度全てのオブジェクトを除外した後で – include パラメータを使うことで、表示したいパターンのみを指定することができます。
このコマンドによってバケット内のtxtオブジェクトのみの一覧を簡単に表示することができました。

このように、GUIでは難しい操作でもCLIを活用して簡単に実現することができます。

今回はS3に対する操作を例としましたが、 「データベースの自動バックアップ」や「作成ファイルのライフサイクル自動化」などのシステムもCLIを軸に構築することができます。 詳しくは以下コマンドでもAWS CLIの利用方法を参照することができます。

記述例
 
aws help
 

※2 Amazon Web Serviceの提供するストレージサービス。耐久性を担保しつつ、大量のファイルを出し入れすることができる。

 

まとめ

今回は、Amazon Web Serviceの活用法の紹介ということで、AWS CLIについて紹介させていただきました。日進月歩でアップデートが繰り返されるクラウドの世界では、常にその機能を十分に活用できるような体制を作っていく必要があります。弊社のマーケティングテクノロジー開発グループでも Amazon Web Service を使用しており、日々その活用方法をアップデートしています。

紹介したAWS CLIは、Amazon Web Serviceにおける基本の機能ではありますが、活用方法を理解しておくと非常に有益で重要なサービスであると考えます。次回は、各サービスを掘り下げてより本格的なAmazon Web Service活用について紹介していきたいと思います。

Google および Google ロゴは、Google LLC の商標です。

この記事の著者

DIGIFUL編集部

「DIGIFUL(デジフル)」は、株式会社Hakuhodo DY ONEが運営する「デジタル時代におけるマーケティング」をテーマにした、企業で活躍するマーケティング担当者のためのメディアです。

当社がこれまでに得たデータや経験から、具体的事例・将来展望・業界の最新注目ニュースなどについて情報を発信しています。ニュースやコラムだけでなく、日常業務や将来のマーケティング施策を考えるときに役立つダウンロード資料や、動画で学べるウェビナーコンテンツも随時追加していきます。

デジタルマーケティングの最新情報や知見を得るための信頼できる情報源の1つとしてお役立てください。

「DIGIFUL(デジフル)」は、株式会社Hakuhodo ...

Share

一覧に戻る