AWS初心者による初心者のためのちょいテク〜JAWS-UGで登壇しました #jawsug #jawsugosaka

2020.02.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

大阪オフィスのYui(@MayForBlue)です。

2/6(木)に開催されたJAWS-UG Osaka 「知ってると役立つ、AWSちょいテク祭り」に「初心者による初心者のためのちょいテク」というタイトルで登壇してきました。そのときの内容を補足も交えてブログにしました。

目次

ちょいテクその1:ネットワークリソースの検索時にVPC毎のフィルタリングができる

VPC内のリソースは数が増えがちで管理が大変ですが、それをVPC毎の一覧にできる機能があります!

まず、VPCダッシュボードの左上の「VPCフィルタリング」の下の検索ボックスをクリックします。

VPCの一覧のポップアップが表示されるので、見たいVPC名をクリック

指定したVPC内のリソースのみ表示されました!

煩雑になりがちなネットワークリソースの管理が一気に楽になりますね。
このちょいテクの詳しい方法はこちら 俺の目は節穴だった…VPCコンソールをより快適に利用する方法

ちょいテクその2:.ssh/configでEC2へのログインを簡単にする

EC2インスタンスへのSSH接続には通常、以下のコマンドを用います。

$ ssh -i <秘密鍵のパス> <ユーザー名>@<IPアドレス>

ただ、これだと毎回打つのが大変ですよね。。そこでこのちょいテク(`・ω・´)
.ssh配下にconfigファイルを用意し、以下のように記述します。

Host testA
    HostName <IPアドレス>
    User <ユーザー名>
    IdentityFile <秘密鍵のパス>

これを用意すると、以下のコマンドを打つだけでログインすることができます。

$ ssh testA

configファイルを用意するだけなので、ぜひ使ってみてください。

さらに便利な方法 (追記)

ホスト名を指定せずにconfigファイルを作っておき、ログイン時にホスト名のみ指定することでconfigファイルを使い回す方法もあります。 まず、configファイルに以下を記述します。

Host ec2-*.ap-northeast-1.compute.amazonaws.com
    User <ユーザー名>
    IdentityFile <秘密鍵のパス>

ログイン時に以下のコマンドでログインします。

$ ssh <インスタンスのDNS名>

この方法だとconfigファイルをメンテナンスする必要がないのでより汎用的に使えますね(`・ω・´)

ちょいテクその3:EC2の一覧画面からSSMセッションマネージャーを起動できる

そもそもSSMセッションマネージャーとは?

  • SSM = AWS Systems Manager
  • AWSやオンプレのサーバーを管理する、AWSのサービスの一つ
  • セッションマネージャーはSSMの機能のうちの一つで、EC2インスタンスにSSH/RDP接続せずにブラウザ上でCLI操作できる機能

プライベートなインスタンスに対して、踏み台サーバーを利用せずにSSH接続できるとても便利なセッションマネージャーですが、接続には以下のステップが必要です。
1.AWS Systems Managerのダッシュボードに移動
2.メニューから「セッションマネージャー」を選択
3.「セッションの開始」のボタンをクリック
4.インスタンスを選択して「セッションの開始」をクリック

でも実はEC2インスタンス一覧からも接続できます!
EC2インスタンス一覧で対象のインスタンスを選択して、画面上部の「接続」をクリックします。

セッションマネージャーを選択するポップアップが表示されるので「接続」をクリックすると、それだけでセッションが開始され、ブラウザ上でCLI操作ができるようになります!

セッションマネージャーのダッシュボードに移動しなくても起動できるのはすごく便利ですね。
このちょいテクの詳しい方法はこちら[小ネタ] EC2のコンソール画面からSSM Session接続できる様になりました

ちょいテクその4:マネコンのヘッダーにサービスのショートカットが作れる

めちゃくちゃ小ネタですが、意外と知らないやつ。

いつものマネコンの画面ですが、ヘッダーのピンのマークを押すと、サービスの一覧が表示されます。

ここからサービスをドラッグアンドドロップすることでヘッダーにサービスをショートカットとして追加することができます。

細かい機能ですが、よく使うサービスや好きなサービスにすぐアクセスできるので、とても便利だと思います。

ちょいテクその5:タグエディタで全リージョンの全リソースを検索できる

タグエディタは本来複数リソースのタグの一括編集に用いるものですが、その機能を使ってリソースを一覧することもできます。

ヘッダーのリソースグループからタグエディターに移動する

Regionsで「All regions」、リソースタイプで「すべてのリソースタイプ」を選択する

すべてのリージョンのすべてのリソースが表示されました。

また、リソースを「EC2」などに絞れば、全リージョンのEC2インスタンスが確認できます。 サービス毎のダッシュボードではこのような表示はできないので、ぜひ活用してみてください。
詳しい手順はこちらのブログで 全リージョンから全リソースを一括検索する方法【タグエディター】

ちょいテクその6:スイッチロールを使う

複数のAWSアカウントで作業する際に、毎回ログイン/ログアウトするのではなく、スイッチロールの機能を使うと便利です。
簡単に言うと、一つのAWSアカウントでログインすると、他のAWSアカウントにログインしなくてもそのアカウントのリソースを操作できる機能です。
詳しくは最近ブログを書いたのでよかったら読んでみてください。
IAMのスイッチロールを理解したい

ちょいテクその7:AWS CLIでのスイッチロールにdirenvを使う

AWS CLIでスイッチロールする場合、まずは.aws配下にconfigファイルを用意します。

[default]
region = ap-northeast-1
output = text

[profile test001]
region = ap-northeast-1
role_arn = arn:aws:iam::<AWSアカウントID>:role/TestSwitchRole
source_profile = default

そして、以下のコマンドを叩きます。

$ export AWS_PROFILE=test001

この方法でもいいのですが、毎回コマンドを打つ必要があります。
コマンドを打つことなく、profile名と同じ名前のディレクトリ移動するだけで、そのアカウントにスイッチロールできる方法がこのちょいテクです。
direnvの設定方法はこちらのブログで[小ネタ]ディレクトリ移動した際に自動で一時クレデンシャルを取得・設定する

設定をすると、ディレクトリ移動時に対象のAWSアカウントの情報が環境変数に設定され、自動的にスイッチロールします。

ちょいテクその8:AWS CLIでのスイッチロール時にアカウント・ロールを確認する

先ほどのようにAWS CLIでスイッチロールしていると、今自分がどのアカウントにいるのかわからなくなる時があります。 そんなときに現在のアカウントを取得できるのが以下のコマンド。

$ aws sts get-caller-identity

AWS CLIでスイッチロールするなら必須のコマンドだと思います(`・ω・´)

ちょいテクその9:ポリシーの作成にポリシージェネレーターを使う

AWSのサービスを使う上で避けて通れないアクセス許可のポリシーですが、最初は書くのが難しいですよね。 そんなときに使えるのがこれです。 AWS Policy Generator

以下のように、条件を設定すると、そのポリシーをJSONで返してくれます。

試しに、S3のバケット作成を許可するポリシーを作成してみました。

必要箇所を選択して「Add Statement」、「Generate Policy」をクリックすると完成されたポリシーが表示されます!

直感的な操作でポリシーが作成できるのでとても便利ですね。

登壇資料

最後に

JAWS-UG初参加、初登壇で会場も大きく、120人以上(!)の方に来ていただき、本当にいい経験になりました。とても楽しかったです。声を掛けてくださった運営の方、ご来場いただいたみなさま、本当にありがとうございました。 また機会があれば登壇させていただければと思います!

以上、大阪オフィスのYui(@MayForBlue)でした(`・ω・´)