今日はお昼に麺類を食べました。麺類好き、たいがーです。
周りからの視線にも慣れてしまって、普段からラーメン屋さんに一人で行けるようになりました。少し悲しくなったのは気のせいと信じたいですね~!今日はざるうどんでした。暑い時期に食べる、冷たい麺類美味しいです。
ちなみにインターンにきている日は、社員の方と一緒にオフィス近くのご飯屋さんを開拓しています。インターン中の楽しみのひとつです。笑
楽するためのショートカットキー
今まで3つのアカウントのみで行っていた作業を、実際にハンズオン用の20個のアカウントで動かすために作業をしました。17個のアカウントのAWSのマネジメントコンソールでIAMロールを作り、IAMユーザーのresourceを変更し…
アカウントを切り替える度、ウィンドウやタブの変更をするのも面倒だなと思ったので、ショートカットキーを覚えました。(Windowsの場合なので、Macの方は調べてみてください)
タブの切り替え:ctrl + Tab(左に動く場合はctl + shift + tab)
表示されているタブを消す : ctrl + W
ウィンドウの切り替え : Alt + Tab
おそらく知っている方も多いと思うのですが、よく忘れて調べてしまうので書いておきます。
わざわざマウスを動かさなくて良いので、少しは早くなった気がします。使って忘れないようにしないと…
コマンド引数でstart / stop を切り替えたい
複数アカウントのEC2インスタンスの起動、停止をコマンド引数で命令したい、ということで進めていきます。
前回までに起動、停止は、それぞれ別のスクリプトとして作成していました。今回からは、それを合体させます。
インスタンスを作成していないアカウントも存在していたため、エラーが発生していました。
その点はlen関数とcontinueで解決していきます。(ec2_responseには、すでにEC2インスタンスの情報がリスト型で格納されています。)
if len(ec2_response)==0:
continue
インスタンス情報が空のリストであった場合、次の処理に回るようになりました。
次にコマンド引数の設定をしていきます。ハンズオンの何番のアカウントのインスタンスが起動(停止)したのか、インスタンスIDを表示させるようにします。
今回は辞書型のキー、値のどちらも使用していくので、items()を使いました。
for account_no, arn in config.items():
account_noには各ハンズオンアカウントの番号が入っており、arnには一時的なクレデンシャル情報を作る、STS対応のために使用しています。
if args[1]=='start':
ec2.start_instances(InstanceIds=[instanceid])
print('Start EC2 Instances of account' + str(account_no) +'\n' + instanceid + '\n')
elif args[1]=='stop':
ec2.stop_instances(InstanceIds=[instanceid])
print('Stop EC2 Instances of account' + str(account_no) +'\n' + instanceid + '\n')
実際にコンソールで確認してみると、EC2インスタンスはうまく起動、停止できていました。
この課題、意外とすぐできるのではないか…と思っていたら、まさかの落とし穴にはまりました。
各アカウントにつき、一つしかインスタンスを起動していない
まさかの事実でした。出力しているときにインスタンスIDの部分が一行しかないと思っていたのですが、先に出力されているIDしか読み取れていなかったため、一つしか動かせていませんでした。
辞書型の値がstr型でint型ではなかったため、get関数で動かなかったため、来週はここから始めようと思います。
出来ることからやっていくのも大切
このIssue以外に、もっとすんなりと解けるものもあったので、最後の時間は解けそうな課題を優先的に行うべきだったかなと反省しています。
もっと優先順位を考えながら動いていけたらなと思います。