2021年5月5日水曜日

AWS の EC2 のインスタンスの起動や停止をブラウザからやってみる

こんにちは


今日は、AWS の EC2 のインスタンスの起動や停止をブラウザからやってみます。前回コマンドラインで実行した記事の続きです。前回の記事はこちらを参照してみてください(どちらのコンソールで実行しているのかわかりにくかったので少し追記しています)。

今回の記事も、前回の記事をコピペしておきますので、こちらだけみればできるはずです。

1.ロールの作成


1.接続用のIAM(Identity and Access Management)の設定をします。IAMダッシュボードを開いて、「ロール」をクリックします。



2.「ロール」をクリックしたら「ロール作成」ボタンをクリックします。


3.「ロールの作成」をクリックしたらロールを与えるサービスを選択します。今回はEC2を選択します。クリックしたら、「次のステップ:アクセス権限」をクリックします。






4.「次のステップ:アクセス権限」をクリックしたら、現在定義されているアクセス権限の一覧が表示されるので、今回は、「AdministratorAccess」を選択して、「次のステップ:タグ」をクリックします。



5.「次のステップ:タグ」をクリックするとタグ設定の画面表示されます。何かキーワードで検索したりしたい場合は設定しますが、今回は特に設定せずにそのまま「次のステップ:確認」をクリックします。


6.「次のステップ:確認」をクリックすると、設定の確認と、ロールの名を入力する画面が表示されますので、「ロール名」に任意の名称を入力して、「ロールの作成」ボタンをクリックします。今回はロール名を「EC2_AdministratorAccess」としました。





7.「ロールの作成」ボタンをクリックするとIAMコンソールに戻りますのでロールが作成されていることを確認します。


2.ロールの割り当て

1.作成したロールをEC2のインスタンスに割り当てます。EC2のダッシュボードを開き、割り当てを行うインスタンスチェックして、「アクション」→「セキュリティ」→「IAMロールを変更」を選択します。



2.「IAMロールを変更」を選択すると、IAMロールの選択が表示されますので、先ほど作成した「EC2_AdministratorAccess」を選択して、「保存」ボタンをクリックします。



3.アクセスキーの作成

1.IAMダッシュボードを開いて、「ユーザ」をクリックして、「ユーザの作成」ボタンをクリックします。




2.「ユーザの作成」をクリックすると、次のような画面が表示されますので、「ユーザ名」に任意のユーザ名を指定して、「アクセスの種類」を「AWS API ・・・」にして、「次のステップ:アクセス権限」ボタンをクリックします。


3.「次のステップ:アクセス権限」をクリックすると、次のような画面が表示されますので、今回は練習ですので、「既存ポリシーを直接アタッチ」として「AmazonEC2FullAccess」を選択して、「次のステップ:タグ」をクリックします。


4.「次のステップ:タグ」をクリックすると次のような画面が表示されますが、特に何も設定しないで、「次のステップ:確認」ボタンをクリックします。


5.「次のステップ:確認」ボタンをクリックすると、次のような画面が表示されますので、設定の内容を確認して「ユーザの作成」ボタンをクリックします。



6.「ユーザの作成」ボタンをクリックすると次のような画面が表示されますので、「.csvのダウンロード」ボタンをクリックしてキーの情報を保存します(画面上でも確認できます)。保存したら「閉じる」ボタンを押して画面を閉じてしまってください。この情報は作成時にしか確認できませんので、忘れないようにしてください。





4.htmlのサンプル


以下にサンプルを示します。赤字で書かれた箇所を自分で設定してください。

アクセスキーID、シークレットキーは「3.アクセスキーの作成」で保存した情報を指定します。

インスタンスIDは、操作を行いたいインスタンスのIDを指定します。


<html>
    <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.41.min.js"></script>
    <script>
      AWS.config.update({
        accessKeyId: 'アクセスキーID',
        secretAccessKey: 'シークレットキー',
        region: 'ap-northeast-1'
      });
      console.log(AWS.config.credentials.accessKeyId)

      function startEC2Instance() {
        var params = {
          InstanceIds: ['インスタンスID']
        };
        var ec2 = new AWS.EC2();
        ec2.startInstances(params, function(err, data){
          if(err){
            console.log(err, err.stack);
            alert(err);
          } else {
            console.log(data);
            alert("OK");
          }
        });
      }

      function stopEC2Instance() {
        var params = {
          InstanceIds: ['インスタンスID']
        };
        var ec2 = new AWS.EC2();
        ec2.stopInstances(params, function(err, data){
          if(err){
            console.log(err, err.stack);
            alert(err);
          } else {
            console.log(data);
            alert("OK");
          }
        });
      }

</script>

<body>

  <div><button onclick="startEC2Instance()">Start EC2 Instance</button></div>

  <div><button onclick="stopEC2Instance()">Stop EC2 Instance</button></div>

</body>

</html>


0 件のコメント:

結局 Kindle にケースを買いました。

 こんばんわ 私、最近ほとんど外出しなくなったのですが、妻の買い物に一緒に行って、ぼけーっと待っていたり、病院に行ってぼけーっと待っていたりする機会が多くなり、なんなら家でもボケーっとしていることが非常に多くなったためか、Kindleの出番が結構ありそうです。 前回、タブレットで...