好奇心の赴くままに

好奇心の赴くままに

やりたいことを書いています。

mac EC2にWindows10環境からSSH・VNC接続してみた

AWS Late Night Week1」にて発表された何かと話題!?のmac EC2にWindows10環境から接続してみました。

やってみた

検証環境

専有ホストの割り当て

mac EC2は専有ホスト上で稼働するのでEC2コンソール画面から以下のような感じで専有ホストの割り当てを行います。

f:id:kamada-math:20201202150714p:plain

割り当てが上手くいくと、専有ホスト一覧画面に以下のように表示されます。

f:id:kamada-math:20201202133459p:plain

mac EC2起動

EC2コンソールから[インスタンス]>[インスタンスの起動]をクリ ック

AMIの選択

macOS Catalinaを選択します f:id:kamada-math:20201202150836p:plain

インスタンスタイプの選択

mac1.metalが選択されていることを確認して、「次のステップ: インスタンスの詳細の設定」ボタンをクリック f:id:kamada-math:20201202150925p:plain

インスタンスの詳細の設定

配置するVPC、サブネットを選択します。ただし、サブネットは専有ホストで設定したAZにあるものを選択してください。 f:id:kamada-math:20201202145629p:plain

割り当てを行ったホストを選択します f:id:kamada-math:20201202145122p:plain

ストレージの選択

適当に選択、設定します

タグの選択

適当に入力、設定します

セキュリティグループの設定

ローカル環境からのSSHVNC用の通信を許可します。 f:id:kamada-math:20201202145951p:plain

最後に確認ボタンをクリックして、EC2を起動させます。

mac EC2にSSH接続し、VNCサーバ起動

SSH接続します。ちなみにデフォルトのSSHユーザーはec2-userです。 f:id:kamada-math:20201202151904p:plain

接続後、ec2-userのVNC接続用のパスワードをリセットします

sudo dscl . -passwd /Users/ec2-user <Password文字列>

VNCサーバの有効化

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw <Password文字列> -restart -agent -privs -all

mac EC2にVNC接続

以下のVNC クライアントをインストールします。

Download VNC Viewer | VNC® Connect

インストール後、起動し、左上の[File]>[New Connection]をクリックすると、以下のProperties画面が表示されるので VNC Serverにmac EC2のグローバルIPを入力して、OKをクリックします f:id:kamada-math:20201202151550p:plain

接続情報一覧画面に新しく追加されるので選択します f:id:kamada-math:20201202140233p:plain

選択すると、ユーザー名、パスワードを求められるので入力します f:id:kamada-math:20201202140359p:plain

VNC接続が上手くいくとログイン画面が表示されるので再度パスワードを入力してEnterを押下します f:id:kamada-math:20201202134729p:plain

ログインに成功すると、macOSのデスクトップ画面が表示されます。 f:id:kamada-math:20201202134759p:plain

まとめ

まさかのmac EC2とは驚きでした。来年にはM1 Chipなmac EC2も出るみたいなので余裕あればそれも試してみたいですね。

参考

New – Use Amazon EC2 Mac Instances to Build & Test macOS, iOS, ipadOS, tvOS, and watchOS Apps | AWS News Blog Amazon EC2 Mac Instance を早速使ってみました - Qiita

AWS Systems Manager ハンズオンをやってみた

最近業務でWindows serverを扱う必要が出てきてSSMを利用して定期実行タスクを実行・管理したいと思ったので今年のAWSinnovateのSSMのハンズオンをやってみました。

AWS Innovate オンラインカンファレンス | 2020 年 3 月 10 日 (火) 〜 5 月 8 日 (金) 開催

チュートリアル内容

Windows ServerもしくはLinuxに対してSSMを利用して運用の自動化や効率化をするチュートリアルで私はWinsows Serverの方を選択してやりました。

流れ

  1. Systems Manager を管理対象となる EC2 インスタンスに導入し設定する方法
  2. サーバへのリモートアクセスを行う方法(セッションマネージャ)
  3. サーバ群にコマンドを一括して投入する方法(Run Command)
  4. パッチ適用を自動化させる方法(メンテナンスウィンドウ)
  5. OS 上のログやメトリックを CloudWatch で監視、およびその設定を一括して行う方法
  6. 本ハンズオンで作成したリソースのクリーンアップを行う方法

学び

  • ハンズオンでは「AmazonEC2RoleforSSM」ポリシーをロールにアタッチしているが実務ではより権限の狭い「AmazonSSMManagedInstance」をベースに割りあてるほうがよいらしい

https://image.slidesharecdn.com/20200212awsblackbeltsystemsmanager0214-200217024838/95/20200212-aws-black-belt-online-seminar-aws-systems-manager-17-638.jpg?cb=1581907771

  • RDPポートを開ける必要がないだけでなく、keypairも作成不要 (セッションマネージャでnet uer コマンドを使ってパスワード変更できるため)

  • メンテナンスウィンドウを利用してOS上で定期実行できるタスクを管理・運用できる

  • パラメータストアにはRDSの接続情報だけでなく、CloudWatchAgentのログ設定ファイルも保存して参照できる

感想

SSMの全機能を試したわけではないが、主機能は試すことができたので良かった。業務でもうまく生かしたい。

AWS公式チュートリアル「サーバーレスのウェブアプリケーションを構築」をやってみた。

最近業務でサーバレス開発に触れる機会があり、自身のサーバレスに対する苦手意識を感じたため、少しでも払拭するためにAWSの公式チュートリアルをやってみました。

aws.amazon.com

チュートリアル内容

f:id:kamada-math:20200815112231p:plain
(※引用先https://webapp.serverlessworkshops.io/https://aws.amazon.com/jp/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/

VueアプリケーションをAWS Amplifyでホスティングし、ユーザー管理、ログイン認証をCognitoで、ブラウザから叩くバックエンドAPIAPI GatewayAWS Lambda、Amazon DynamoDBで構築するチュートリアルでした。

流れ

  • 静的ウェブホスティング
  • ユーザー管理
  • サーバーレスバックエンド
  • RESTful API
  • リソースの終了と次のステップ

学び

  • Amplify Consoleを利用するとCI/CD環境を含む静的なWebアプリケーション環境を瞬時に構築できる
  • Cognitoでログイン認証後に受け取るJWT(JSONトークン)を利用してAPI Gatewayを実行するための認証を行う
  • 上記認証のためにCognitoユーザープールオーソライザーを利用する

感想

AmplifyやCogniteは本当にまだ触ったことが少なく、苦手意識があるので今後がっつり触りながら苦手意識を払拭したい。

「AWS認定セキュリティ・専門知識」を読んだ。

読んだきっかけ

佐々木さんが新しく本を出されたというのがtwitterで回ってきた&クラウドを利用する上でセキュリティの知識は大切ということを感じていたので。

目次

第1章 AWS試験概要と学習
第2章 IDおよびアクセス管理
第3章 インフラストラクチャのセキュリティ
第4章 データ保護
第5章 ログと監視
第6章 インシデント対応
第7章 Well-Architected
第8章 練習問題

2章~6章は認定セキュリティ試験の試験ガイドに書かれている分野と対応している章立てになっていて非常にわかりやすかった。

感想

一応AWSソリューションアーキテクトプロフェッショナルまで取得しているので内容的に既知の内容が多いと思っていたが、意外と知らないことが多かったので勉強になった。

SlerのエンジニアがSRE NEXT2020に行ってきた

twitterで「ブログ書くまでが~」と書いていて、実際に#srenextで調べたところ、かなり書いている方が多かったので私も書くことにしました。

きっかけ

Slerに所属しているとあるあるだが、定型作業が自動化されていませんでした。 AWSリソースも昨年まではAWSコンソール上から作成することが多かったので 自動化やインフラのコード化などに興味があった。
たまたまSREで初のカンファレンスがあると知ったので参加しました。

聞いたセッション

  • 分散アプリケーションの信頼性観測技術に関する研究
  • 40000 コンテナを動かす SRE チームに至るまでの道
  • パフォーマンスを最大化するための SRE のオンボーディング事例
  • Practices for Making Alerts Actionable
  • 冗長性と生産性を高めるハイブリッドクラウド環境の実現
  • スクラムを1年回してSREと開発組織がどう変わったのか
  • ZOZO MLOps のチームリーディングとSRE(Engineering)
  • Webサービスを1日10回デプロイするための取り組み

分散アプリケーションの信頼性観測技術に関する研究

speakerdeck.com

  • 自動化すると作業不可は減るが、認知不可は高まる。
  • 認知不可に耐えるには高度な訓練が必要
  • SREとは「サイト信頼性を制御するための工学」

2020年の抱負

1年の計は元旦にありということで今年の抱負をまとめたいと思います。
今年は以下に注力したいです。

  • コードをたくさん書く。
  • DevOps周りの知識を身に着ける。
  • アウトプットを増やす。

コードをたくさん書く

正直自分のやりたいことが現時点ではまだ明確に見えていないのですが、インフラエンジニアでも今後はコードが書けない・読めないとやっていけないことは目に見えているのでできるだけ毎日コードを書くようにしたいです。

DevOps周りの知識を身につける。

今のところ DevOps周り(Docker、Terraform、CircleCI、kubernates)についてあまり詳しくはないので今年は使いこなせるようにしっかりと理解したいです。

アウトプットを増やす。

去年はブログ9本、登壇0回、書籍出版0本だったので、今年は勉強したことの深い理解とエンジニアとしてプレゼンスを高めるために以下を目標に頑張りたい。

ブログ:2回/週 登壇:1回/月

2019年の振り返り

まとめ

2019年は自分の技術力の無さに凹むことが多かった。

できるようになったこと

  • AWSの資格取得でAWSにより詳しくなった。
  • Spring Bootで簡単なCRUDアプリを作れるようになった。
  • Jenkinsで簡単なこと(サーバ構築・ジョブ実行・Github連携・Slave実行)ができるようになった。
  • 業務がインフラから開発になったことで業務ソースコードデバッグができるようになった。
  • Dockerが少しできるようになった。(dockerコマンドをある程度使える)
  • Terraformが少しできるようになった。(2段Web標準構成なら。。)

これからできるようになりたいこと

  • go,pythonでの自動化スクリプトを作成できるようになりたい。
  • Railsのコードが読めるようになりたい。→ミドルウェア(fluentd)のソースコードが読めるようになりたい。
  • OSSにプルリクだせるようになりたい。
  • アウトプットを増やしたい。(Github,ブログ,Qiita,勉強会カンファレンス登壇等)