プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)

01.11

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

AWS CLIとは?

AWSの各種サービスをコマンドで操作できるOSSの統合サービスです。AWS CLIのサブコマンドはAWS APIに追従しています。

用途

s3用。sync等の便利な機能(High-Level API)が搭載されています。

メリット

  • CUIでの操作になるので迅速な操作が可能
  • スクリプトによる作業の自動化が可能

必要なもの

  • アクセスキー
  • シークレットキー

IAMの設定

IAMユーザー・IAMロールを用意する。

以下2つのどちらかでアクセスします。いずれの方法にしても、認証は必ず行われるためセキュアです。

  • IAMユーザーを作成してアクセスキー、シークレットキーを使ってアクセスする方法
  • EC2インスタンスに、IAMロールを付与する方法

IAMユーザー・IAMロールにAWSリソースを操作する権限をIAMポリシーで付与する。

AWS CLIのインストール

前提条件

Python3系以上

セットアップ方法

3種類あります。

  • pip(仮想環境なし)を利用したインストール
  • pip(仮想環境あり)を利用したインストール
  • インストーラを利用したインストール

認証情報の初期設定

1
aws configure

下記の設定値が出てくるので設定をします。

1
2
3
4
AWS Access Key ID [None]: xxxxxxxxxx(IAMのアクセスキー)
AWS Secret Access Key [None]: xxxxxxxxxx(IAMのシークレットキー)
Default region name [None]: ap-northeast-1
Default output format [None]: json

IAMの設定手順でやっていたアクセスキーやシークレットキー、及び、デフォルトリージョン、出力形式を指定します。内容は下記のそれぞれの場所に保存されます。

1
2
3
4
5
#アクセスキー、シークレットキー保存
~/.aws/credentials
 
#デフォルトリージョン、出力形式を保存
~/.aws/config

下記コマンドでIAMグループを確認できます。

1
aws iam list-users

別の方法

  • EC2のAmazon LinuxにはデフォルトでAWS CLIがインストールされています。EC2にロールを付与してアクセスします。
  • Cloud9でもデフォルトでAWS CLIが使えます。(一部権限が付与されていないので必要に応じて付与します。)

コマンドの基本系

1
aws [オプション] [コマンド] [サブコマンド] [パラメータ]

オプション

  • AWSコマンド全体共通のパラメータ
  • --から始まります。

--profileオプション

設定ファイル(プロファイル)を指定する事で環境ごとの設定の切り替えが可能です。設定ファイル(~/.aws配下)に事前に設定をしましょう。

--regionオプション

リージョンを指定します。設定ファイルにリージョンを指定していたとしてもこちらの方が優先されます。

--outputオプション

コマンドの実行結果の出力形式を指定できます。json、text、tableの3つから選ぶことが可能です。

--queryオプション

AWSクライアント側で出力結果をフィルタできるオプションです。全てのサブコマンドで対応しています。

--filterオプション

AWSサーバーサイドで絞り込みを行えるオプションです。抽出件数が多い場合のレスポンス改善に使えます。一部のサブコマンドか対応していません。

コマンド

サービス名(ec2、s3等)、ただしconfigureに関しては例外となります。

サブコマンド

サービスごとのコマンド

help

各コマンドの詳細を確認できます。非常に重要なコマンドです。

wait

特定の条件が満たされるまで実行を待機します。(例えば、特定のインスタンスが起動するまで待機するなど)、タイムアウトが発生した場合は255のリターンコードが返されます。

パラメータ

  • コマンドごとのパラメータ
  • --から始まります。

例

東京リージョンのインスタンスを最大2つ表示する。

1
aws --region ap-northeast-1 ec2 describe-instances --max-items 2

環境別設定

1
2
3
4
5
6
7
8
[default]
デフォルトで使用される特別なプロファイルです。
 
[profile A]
 
[profile B]
 
[profile C]

環境別に設定する。

prodとdevは例です。

本番環境

1
aws --profile prod configure

開発環境

1
aws --profile dev configure

実行時に環境を指定して実行

1
aws --profile prod ec2 など

他のアカウントのリソースにアクセス

  1. IAMでロールを作成
  2. ロールの新しいプロファイルを~/.aws/configファイルに追加
  3. プロファイルを切り替えてAWS CLIを実行する。

Cloud9とは?

オープンソースのクラウド上でプログラミングが行えるWebサービスで、RubyやPHPの開発用のブラウザエディタです。

特徴

自身のOSに依存することなく開発することができるのが特徴の一つです。例えば、会社での開発がWindowsで家でMacを使った開発をしている場合でも特に問題なく開発を進めることが可能です。

権限

AWS Managed Temporary Credentials(AMTC)

デフォルトでログインしたAWSユーザーの権限で自動的に認証権限が設定される仕組みになっている。この仕組みのおかげでCloud9のEC2の認証設定が不要になるだけでなく、Cloud9側がクレデンシャル情報を定期更新してくれる。

仕様

  • Cloud9の実体はEC2インスタンス
  • デフォルトでは10GBのディスクしかアタッチされていないので注意。(EBS)
  • OSとしてはLinux(Amazon Linux/Ubuntu)が使われています。
  • パッケージマネージャーとしてRVMが標準でインストールされています。
  • EC2なので、Cloud9上で編集するソースコードのバックアップやインスタンスのアップデートはユーザー自身ですべきとAWSに述べられています。

設定

  • 30分利用しなかったら自動OFFにする設定がデフォルト

料金

無料枠が終わった後の料金体系の目安としては月に90時間利用した場合は月200円と比較的リーゾナブルになっている。

機能

Herokuとの連携機能もあります。(Heroku-CLIを使う)

スポンサーリンク
  • 2021 01.11
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 12.02

    【AWS】「Code Commit」、「Code Build」、「Code Deploy」、「Code Pipeline」の違い

  2. 2021 01.10

    【AWS】「エッジロケーション」について

  3. 2021 12.07

    【AWS】「ARN」について

  4. 2020 06.09

    【AWS】EC2の構築手順、SSH設定手順

  5. 2021 01.16

    【AWS】「ストレージ」(S3、EFS、Glacier、Storage Gatewayなど)

  6. 2021 01.01

    【AWS】「AWS Well-Architected Framework」とは?

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【AWS】「オンプレミス」→「AWS」へのDNSアクセ…

【AWS】「ストレージ」(S3、EFS、Glacier…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー