20200402のAWSに関する記事は19件です。

オンライン授業や無観客ライブのシステムを内製する(4)

性能改善

遅延関連

1.AWS Elemental MediaPackage -> Channels -> {チャンネル名} -> Add/edit endpoints

  • Segment duration (sec)
    1秒-2秒に設定(バッファの設定です。この値を小さくすると遅延時間が短くなりますが、再生が不安定になります)
  • Live playlist window duration (sec)
    Segment duration × 3 程度に設定(m3u8ファイルに記録する全tsファイルの合計再生時間です。Segment durationが1秒なら、3秒を設定すると、3つのtsファイルが記録されます)

2.CloudFront Distributions -> {Distribution名} -> 各Path Pattern を選択 -> Edit

  • Object Caching: Customize
  • Minimum TTL: 1
  • Maximum TTL: 1
  • Default TTL: 1

キャッシュの時間を短くしたらCloudFrontの利用価値は?

→大量のリクエスト(tsファイルは1-2秒なので、ユーザからかなりのリクエストがくる。下記:制限引き上げのリクエストと関連)を捌くため。

画質関連

AWS Elemental MediaLive -> Channels -> Details -> Actions/Edit -> Output groups -> 各Outputの設定

  • Rate Control

    • Rate Control Mode:VBRに変更
      高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。
    • Bitrate:5000000(デフォルト)→適宜変更(最低は1000。動作確認であれば最低値でも可)(帯域と調整する必要あり。下記:制限引き上げのリクエストと関連)
  • Additional settings

    • Max Bitrate:適宜変更(最低は1000。動作確認であれば最低値でも可)を入力

制限引き上げのリクエスト

AWSサービスの制限(公式)

https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html

例えば「1秒あたりの最大同時視聴者数 × ビットレート(画質)」の値がCloudFrontの転送レート上限40Gbpsを超える場合、引き上げ申請が必要になります。

引き上げ申請なしであれば「ビットレート5-10MBで同時視聴者数1,000人」くらいが安全圏だと思います。

(本番前に、AWSさんにイベント実施日と想定視聴者数等を連絡したほうが良いと思います。帯域の確保など、相談に乗ってくれると思います)

CloudFront の制限

Lambda@Edge の制限

AWS Elemental MediaPackage の制限


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(4):チューニング編

性能改善

遅延関連

1.AWS Elemental MediaPackage -> Channels -> {チャンネル名} -> Add/edit endpoints

  • Segment duration (sec)
    1秒-2秒に設定(バッファの設定です。この値を小さくすると遅延時間が短くなりますが、再生が不安定になります)
  • Live playlist window duration (sec)
    Segment duration × 3 程度に設定(m3u8ファイルに記録する全tsファイルの合計再生時間です。Segment durationが1秒なら、3秒を設定すると、3つのtsファイルが記録されます)

2.CloudFront Distributions -> {Distribution名} -> 各Path Pattern を選択 -> Edit

  • Object Caching: Customize
  • Minimum TTL: 1
  • Maximum TTL: 1
  • Default TTL: 1

キャッシュの時間を短くしたらCloudFrontの利用価値は?

→大量のリクエスト(tsファイルは1-2秒なので、ユーザからかなりのリクエストがくる。下記:制限引き上げのリクエストと関連)を捌くため。

画質関連

AWS Elemental MediaLive -> Channels -> Details -> Actions/Edit -> Output groups -> 各Outputの設定

  • Rate Control

    • Rate Control Mode:VBRに変更
      高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。
    • Bitrate:5000000(デフォルト)→適宜変更(最低は1000。動作確認であれば最低値でも可)(帯域と調整する必要あり。下記:制限引き上げのリクエストと関連)
  • Additional settings

    • Max Bitrate:適宜変更(最低は1000。動作確認であれば最低値でも可)を入力

制限引き上げのリクエスト

AWSサービスの制限(公式)

https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html

例えば「1秒あたりの最大同時視聴者数 × ビットレート(画質)」の値がCloudFrontの転送レート上限40Gbpsを超える場合、引き上げ申請が必要になります。

引き上げ申請なしであれば「ビットレート5-10MBで同時視聴者数1,000人」くらいが安全圏だと思います。

(本番前に、AWSさんにイベント実施日と想定視聴者数等を連絡したほうが良いと思います。帯域の確保など、相談に乗ってくれると思います)

CloudFront の制限

Lambda@Edge の制限

AWS Elemental MediaPackage の制限


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(3)

MediaLive では、リアルタイムのライブ配信だけでなく、ライブ配信した動画をアーカイブとして保存して、後でオンデマンド配信することができます。

アーカイブを作成する方法はいくつかありますが、今回は、マニフェストファイル(.m3u8)も自動的に作られる、HLS output group
を使用する方法を使用します。

HLS output group は HLS 形式で動画ファイルを出力するための出力タイプです。

アーカイブファイルを保存するための S3 のバケットを事前に用意しておいてください。


S3のバケットの作成方法

1.AWSマネジメントコンソールから、サービス->ストレージ->s3を選択。

2.バケットを作成する。
(アクセス許可の設定において、「パブリックアクセスをすべてブロック」のチェックボックスのチェックを外し、外部からアクセスできるようにします。)

アーカイブ作成方法

1.AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択。

AWS Elemental MediaLive>ChannelsでCannelを選択、Details画面へ遷移。

2.右上の「Action」から「Edit」を選びます。

3.左側のメニューにある「Output groups」欄の「Add」ボタンを押して、表示された「Add output
group」画面で、「HLS」を選択して「Confirm」ボタンを押します。

4.HLS output group の設定画面が開くので、以下のように入力します。

  • HLS group destination A

URL:
アーカイブファイルを保存する S3 のバケットを以下の形式で指定します。

s3ssl://[バケット名]/[パス/][プレフィックス]

例:s3ssl://xxxxx/livetest/archive/live_stream

パス : アーカイブファイルを保存するディレクトリのパス(上の例では「livetest/archive/」)

プレフィックス : アーカイブファイルの先頭につける共通名(上の例では「live_stream」)

  • HLS group destination B

バックアップのURLを指定します。

例:s3ssl://xxxxx/livetest/archive-backup/live_stream

  • HLS settings

CDN settings : 「Hls basic put」を選択します(その他はデフォルトのままにしておきます)

  • HLS outputs

Name modifierで、出力されるファイルの名前を指定できます。
Name modifierは通常の文字列の他、
MediaLiveで使用できる変数データ識別子が使用できます。今回は日付日時情報YYYYMMDDTHHMMSSと変換される$dt$を使用して、_$dt$としました。
出力されるファイル名は、最終的にはlive_stream_YYYYMMDDTHHMM.[000000].tsとなります。

live_streamはHLSgroup destinationAでS3のパスとともに入力した値、[000000]は6桁のシーケンシャルカウンターがMediaLiveにより付与されます。
Output 1のActionsのSettingsをクリックすると、Output 1の詳細設定画面に遷移します。

  • Rate Control
    Rate Control Mode:VBRに変更

高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。

Stream settingsのところで、解像度の設定ができますので、費用の面で、とりあえず低解像にしておきます。

ビットレートの設定がデフォルトのままだと高額の費用がかかるので、開発中はもっと低い値に設定し直しておいたほうが良いです。

設定し直す箇所は以下のスクリーンショットを参照してください。

  • Rate Control
    Bitrate:5000000(デフォルト)→適宜変更(最低1000。動作確認であれば最低値でも可)
  • Additional settings
    Max Bitrate:適宜変更(最低1000。動作確認であれば最低値でも可) を入力

左メニューの2.HLS Groupを選択して元の画面に戻ります。

  • Manifest and Segments

Mode : 「VOD」を選択します(その他の設定はデフォルトのままにしておきます)

必要な項目の入力が終わったら、「Update Channel」ボタンを押して保存します。

5.アーカイブの確認

アーカイブ設定をした後、ライブ配信を行うと、指定したバケットに以下のようにアーカイブファイルが出力されます。

セグメントファイルに加えてマニフェストファイル(.m3u8)も自動で生成されています。

外部から視聴できるように、公開設定をします。

ファイルのチェックボックスをすべてチェックして(名前の左横にあるチェックボックスにチェックを入れるとすべてのファイルにチェックがつきます)、「Action→公開する」を選択します。

アーカイブ視聴用URLは、マニフェストファイル(.m3u8)を選択して表示されるオブジェクトURLになります。

(今回の場合は https://xxxxx.amazonaws.com/livetest/archive/live_stream.m3u8


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(3):アーカイブ編

MediaLive では、リアルタイムのライブ配信だけでなく、ライブ配信した動画をアーカイブとして保存して、後でオンデマンド配信することができます。

アーカイブを作成する方法はいくつかありますが、今回は、マニフェストファイル(.m3u8)も自動的に作られる、HLS output group
を使用する方法を使用します。

HLS output group は HLS 形式で動画ファイルを出力するための出力タイプです。

アーカイブファイルを保存するための S3 のバケットを事前に用意しておいてください。


S3のバケットの作成方法

1.AWSマネジメントコンソールから、サービス->ストレージ->s3を選択。

2.バケットを作成する。
(アクセス許可の設定において、「パブリックアクセスをすべてブロック」のチェックボックスのチェックを外し、外部からアクセスできるようにします。)

アーカイブ作成方法

1.AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択。

AWS Elemental MediaLive>ChannelsでCannelを選択、Details画面へ遷移。

2.右上の「Action」から「Edit」を選びます。

3.左側のメニューにある「Output groups」欄の「Add」ボタンを押して、表示された「Add output
group」画面で、「HLS」を選択して「Confirm」ボタンを押します。

4.HLS output group の設定画面が開くので、以下のように入力します。

  • HLS group destination A

URL:
アーカイブファイルを保存する S3 のバケットを以下の形式で指定します。

s3ssl://[バケット名]/[パス/][プレフィックス]

例:s3ssl://xxxxx/livetest/archive/live_stream

パス : アーカイブファイルを保存するディレクトリのパス(上の例では「livetest/archive/」)

プレフィックス : アーカイブファイルの先頭につける共通名(上の例では「live_stream」)

  • HLS group destination B

バックアップのURLを指定します。

例:s3ssl://xxxxx/livetest/archive-backup/live_stream

  • HLS settings

CDN settings : 「Hls basic put」を選択します(その他はデフォルトのままにしておきます)

  • HLS outputs

Name modifierで、出力されるファイルの名前を指定できます。
Name modifierは通常の文字列の他、
MediaLiveで使用できる変数データ識別子が使用できます。今回は日付日時情報YYYYMMDDTHHMMSSと変換される$dt$を使用して、_$dt$としました。
出力されるファイル名は、最終的にはlive_stream_YYYYMMDDTHHMM.[000000].tsとなります。

live_streamはHLSgroup destinationAでS3のパスとともに入力した値、[000000]は6桁のシーケンシャルカウンターがMediaLiveにより付与されます。
Output 1のActionsのSettingsをクリックすると、Output 1の詳細設定画面に遷移します。

  • Rate Control
    Rate Control Mode:VBRに変更

高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。

Stream settingsのところで、解像度の設定ができますので、費用の面で、とりあえず低解像にしておきます。

ビットレートの設定がデフォルトのままだと高額の費用がかかるので、開発中はもっと低い値に設定し直しておいたほうが良いです。

設定し直す箇所は以下のスクリーンショットを参照してください。

  • Rate Control
    Bitrate:5000000(デフォルト)→適宜変更(最低1000。動作確認であれば最低値でも可)
  • Additional settings
    Max Bitrate:適宜変更(最低1000。動作確認であれば最低値でも可) を入力

左メニューの2.HLS Groupを選択して元の画面に戻ります。

  • Manifest and Segments

Mode : 「VOD」を選択します(その他の設定はデフォルトのままにしておきます)

必要な項目の入力が終わったら、「Update Channel」ボタンを押して保存します。

5.アーカイブの確認

アーカイブ設定をした後、ライブ配信を行うと、指定したバケットに以下のようにアーカイブファイルが出力されます。

セグメントファイルに加えてマニフェストファイル(.m3u8)も自動で生成されています。

外部から視聴できるように、公開設定をします。

ファイルのチェックボックスをすべてチェックして(名前の左横にあるチェックボックスにチェックを入れるとすべてのファイルにチェックがつきます)、「Action→公開する」を選択します。

アーカイブ視聴用URLは、マニフェストファイル(.m3u8)を選択して表示されるオブジェクトURLになります。

(今回の場合は https://xxxxx.amazonaws.com/livetest/archive/live_stream.m3u8


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(2)

プレイヤー

hls.jsを利用したWeb版プレイヤー

  • https://*****/*****.m3u8 の部分を適宜変更してください。

player.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta charset="utf-8">
    <title>Live streaming player(HLS) - Demo</title>
</head>
<body>

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="video" crossorigin controls></video>
<script>
    if (Hls.isSupported()) {
        var video = document.getElementById('video');
        var hls = new Hls();
        hls.loadSource('https://*****/*****.m3u8');
        hls.attachMedia(video);
        hls.on(Hls.Events.MANIFEST_PARSED, function () {
            video.play();
        });
    }
</script>

<script>
    function back() {
        let video = document.getElementById('video');
        video.currentTime = video.currentTime - 10;
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }

    function forward() {
        let video = document.getElementById('video');
        video.currentTime = video.currentTime + 10;
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }

    function pause() {
        let video = document.getElementById('video');
        video.pause();
    }

    function play() {
        let video = document.getElementById('video');
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }
</script>

<button onclick="back()"></button>
<button onclick="forward()"></button>
<button onclick="pause()"></button>
<button onclick="play()">Play</button>

<script>
    document.getElementById("video").width = window.parent.screen.width;
</script>

</body>
</html>


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(2):フロントエンド編

プレイヤー

hls.jsを利用したWeb版プレイヤー

  • https://*****/*****.m3u8 の部分を適宜変更してください。

player.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta charset="utf-8">
    <title>Live streaming player(HLS) - Demo</title>
</head>
<body>

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="video" crossorigin controls></video>
<script>
    if (Hls.isSupported()) {
        var video = document.getElementById('video');
        var hls = new Hls();
        hls.loadSource('https://*****/*****.m3u8');
        hls.attachMedia(video);
        hls.on(Hls.Events.MANIFEST_PARSED, function () {
            video.play();
        });
    }
</script>

<script>
    function back() {
        let video = document.getElementById('video');
        video.currentTime = video.currentTime - 10;
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }

    function forward() {
        let video = document.getElementById('video');
        video.currentTime = video.currentTime + 10;
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }

    function pause() {
        let video = document.getElementById('video');
        video.pause();
    }

    function play() {
        let video = document.getElementById('video');
        video.addEventListener("canplaythrough", function () {
            video.play();
        }, false);
    }
</script>

<button onclick="back()"></button>
<button onclick="forward()"></button>
<button onclick="pause()"></button>
<button onclick="play()">Play</button>

<script>
    document.getElementById("video").width = window.parent.screen.width;
</script>

</body>
</html>


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(1)

ライブストリーミング環境を作る

IDやnameの入力値は、適宜変更してください。


1.MediaPackageでのチャンネル設定

AWSマネジメントコンソールから、サービス->メディアサービス->MediaPackageを選択。

リージョンはアジアパシフィック (東京)を選択。

channels画面に遷移するので、右上のCreateボタンを押す。

IDとDescriptioneに「SampleChannel1」を入力、InputTypeは「Apple HLS」を選択、CloudFront
distribution detailsは「Create a CloudFront distribution for this
channel」を選択し、右下のCreateを押す。

これで、Channelが作成されました。

Endpointsを追加します。Add Endpointsボタンを押す。

IDにSampleIChanneIMPEndpoint1と入力、Packager settingsはApple HLSを選択。
他の項目はとりあえず初期値のままで、Saveボタンを押す。

遅延関連

  • Segment duration (sec)
    1秒-2秒に設定(バッファの設定です。この値を小さくすると遅延時間が短くなりますが、再生が不安定になります)
  • Live playlist window duration (sec)
    Segment duration × 3 程度に設定(m3u8ファイルに記録する全tsファイルの合計再生時間です。Segment durationが1秒なら、3秒を設定すると、3つのtsファイルが記録されます)

Channels画面に戻り、作成したチャンネルができていることを確認。

2.Media Liveでのチャンネル設定

AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択。右上のCreate channelを押す。

Create channelのChannel and input detailsで、Channel templateに「Live
event(MediaPackage)」を選択。

General infoのChannel nameにSampleLiveChannelと入力。

IAM roleは、Use existing roleRoleを選択し、Roleを指定する。
初めての場合はCreate role from templateを選択し、IAMRoleを作り、作ったRoleを指定する。

左側にあるInput attachmentsのAddを押す。

Attach inputのCreate inputを押す。

Input nameにSampleInputChannelと入力。
Input typeはRTMP (push)を選択。
Input security groupでCreateを選び、ボックスの値に0.0.0.0/0と入力。
Input security groupを押す。

Use existingに、今作った security groupが選択されていることを確認。

同じ画面で下にスクロールし、Input destinationsにApplication
name/instanceをSampleA/A、SampleB/Bに設定(以下のスクリーンショットを参照)。
Createを押す。

Create channel画面のAttach inputに戻るので、先ほど作ったinputを選択。
comfirmを押す。

左側にあるOutput groupsの1.HDを選択、MediaPackage destionationのMediaPackage
channel IDに、「手順1、MediaPackageでのチャンネル設定」で作成したMediaPackage
ChannelのID(今回の場合は「SampleChannel1」)を入力する。

Outputですが、ビットレートの設定がデフォルトのままだと高額の費用がかかるので、もっと低い値に設定し直しておいたほうがよいです。
Output 1~4まですべて設定し直してください(設定し直す箇所はスクリーンショットを参照してください)。

参考:
- Rate Control

Rate Control Mode:VBRに変更

高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。

Bitrate:5000000(デフォルト)→適宜変更(最低1000。動作確認であれば最低値でも可)

- Additional settings

Max Bitrate:適宜変更(最低1000。動作確認であれば最低値でも可) を入力

左側の下にあるCreateChannelを押せば、Live Channel作成が完了。

AWS Elemental MediaLive>Channels画面に作成したLive ChannelがIdle状態で
できていることを確認。

3.Live配信手順

AWSマネジメントコンソールから、サービス->メディアサービス->MediaPackageを選択。
Channels一覧からID項目のSampleChannel1リンクをクリック。

EndpointsのURL項目にあるShow CloudFront URLの文字をクリックすると、

https://xxxxx.cloudfront.net/out/v1/xxxxx/index.m3u8

といったようなURLが表示されます。それが視聴用のURLとなります。

  • 次に、配信ソフトの設定です(OBS https://obsproject.com を使った場合の手順です)。

1.右下の設定を押す。

2.左の配信をクリック。

配信種別:カスタムストリーミングサーバー

URL:
AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択し、AWS Elemental
MediaLive>InputsでName項目のSampleInputChannelリンクをクリックして表示される、EndpointsのURLの値の、最後の/の前まで(今回の場合、rtmp://xxx.xxx.xxx.xxx:xxxx/SampleA)を入力。

ストリームキー:
EndpointsのURLの最後の/の後の値(今回の場合A)を入力。

3.画面下部のOKを押す。

4.AWS Elemental MediaLive>Channels画面でName項目のSampleLiveChannelをクリックします。

5.Details画面で、上部右のstartを押す。

6.StatusのChannel stateがStartingからRunningになったら、OBSに戻る。

7.右下にある配信開始を押すと、配信が開始される。

8.視聴用URLはこちらです(どこに表示されているかは、上述の説明をご参照ください)。

例:

https://xxxxx.cloudfront.net/out/v1/xxxxx/index.m3u8

各ブラウザ(MacのSafari、WindowsのEdge、iPhoneのSafari、AndroidのChromeなど)にてご確認ください。

4.Live配信終了手順

1.OBSの右下にある配信終了を押すと、配信を終了します。

2.SampleLiveChannelのDetails画面の上部右のstopを押す。

3.StatusのChannel stateがStoppingからIdleになったら終了。


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

オンライン授業や無観客ライブのシステムを内製する(1):バックエンド編

ライブストリーミング環境を作る

IDやnameの入力値は、適宜変更してください。


1.MediaPackageでのチャンネル設定

AWSマネジメントコンソールから、サービス->メディアサービス->MediaPackageを選択。

リージョンはアジアパシフィック (東京)を選択。

channels画面に遷移するので、右上のCreateボタンを押す。

IDとDescriptioneに「SampleChannel1」を入力、InputTypeは「Apple HLS」を選択、CloudFront
distribution detailsは「Create a CloudFront distribution for this
channel」を選択し、右下のCreateを押す。

これで、Channelが作成されました。

Endpointsを追加します。Add Endpointsボタンを押す。

IDにSampleIChanneIMPEndpoint1と入力、Packager settingsはApple HLSを選択。
他の項目はとりあえず初期値のままで、Saveボタンを押す。

遅延関連

  • Segment duration (sec)
    1秒-2秒に設定(バッファの設定です。この値を小さくすると遅延時間が短くなりますが、再生が不安定になります)
  • Live playlist window duration (sec)
    Segment duration × 3 程度に設定(m3u8ファイルに記録する全tsファイルの合計再生時間です。Segment durationが1秒なら、3秒を設定すると、3つのtsファイルが記録されます)

Channels画面に戻り、作成したチャンネルができていることを確認。

2.Media Liveでのチャンネル設定

AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択。右上のCreate channelを押す。

Create channelのChannel and input detailsで、Channel templateに「Live
event(MediaPackage)」を選択。

General infoのChannel nameにSampleLiveChannelと入力。

IAM roleは、Use existing roleRoleを選択し、Roleを指定する。
初めての場合はCreate role from templateを選択し、IAMRoleを作り、作ったRoleを指定する。

左側にあるInput attachmentsのAddを押す。

Attach inputのCreate inputを押す。

Input nameにSampleInputChannelと入力。
Input typeはRTMP (push)を選択。
Input security groupでCreateを選び、ボックスの値に0.0.0.0/0と入力。
Input security groupを押す。

Use existingに、今作った security groupが選択されていることを確認。

同じ画面で下にスクロールし、Input destinationsにApplication
name/instanceをSampleA/A、SampleB/Bに設定(以下のスクリーンショットを参照)。
Createを押す。

Create channel画面のAttach inputに戻るので、先ほど作ったinputを選択。
comfirmを押す。

左側にあるOutput groupsの1.HDを選択、MediaPackage destionationのMediaPackage
channel IDに、「手順1、MediaPackageでのチャンネル設定」で作成したMediaPackage
ChannelのID(今回の場合は「SampleChannel1」)を入力する。

Outputですが、ビットレートの設定がデフォルトのままだと高額の費用がかかるので、もっと低い値に設定し直しておいたほうがよいです。
Output 1~4まですべて設定し直してください(設定し直す箇所はスクリーンショットを参照してください)。

参考:
- Rate Control

Rate Control Mode:VBRに変更

高解像度を扱う場合は、VBR(可変ビットレート)のほうが、同容量のCBR(固定ビットレート)よりも高品質になり、処理も早くなります。

Bitrate:5000000(デフォルト)→適宜変更(最低1000。動作確認であれば最低値でも可)

- Additional settings

Max Bitrate:適宜変更(最低1000。動作確認であれば最低値でも可) を入力

左側の下にあるCreateChannelを押せば、Live Channel作成が完了。

AWS Elemental MediaLive>Channels画面に作成したLive ChannelがIdle状態で
できていることを確認。

3.Live配信手順

AWSマネジメントコンソールから、サービス->メディアサービス->MediaPackageを選択。
Channels一覧からID項目のSampleChannel1リンクをクリック。

EndpointsのURL項目にあるShow CloudFront URLの文字をクリックすると、

https://xxxxx.cloudfront.net/out/v1/xxxxx/index.m3u8

といったようなURLが表示されます。それが視聴用のURLとなります。

  • 次に、配信ソフトの設定です(OBS https://obsproject.com を使った場合の手順です)。

1.右下の設定を押す。

2.左の配信をクリック。

配信種別:カスタムストリーミングサーバー

URL:
AWSマネジメントコンソールから、サービス->メディアサービス->MediaLiveを選択し、AWS Elemental
MediaLive>InputsでName項目のSampleInputChannelリンクをクリックして表示される、EndpointsのURLの値の、最後の/の前まで(今回の場合、rtmp://xxx.xxx.xxx.xxx:xxxx/SampleA)を入力。

ストリームキー:
EndpointsのURLの最後の/の後の値(今回の場合A)を入力。

3.画面下部のOKを押す。

4.AWS Elemental MediaLive>Channels画面でName項目のSampleLiveChannelをクリックします。

5.Details画面で、上部右のstartを押す。

6.StatusのChannel stateがStartingからRunningになったら、OBSに戻る。

7.右下にある配信開始を押すと、配信が開始される。

8.視聴用URLはこちらです(どこに表示されているかは、上述の説明をご参照ください)。

例:

https://xxxxx.cloudfront.net/out/v1/xxxxx/index.m3u8

各ブラウザ(MacのSafari、WindowsのEdge、iPhoneのSafari、AndroidのChromeなど)にてご確認ください。

4.Live配信終了手順

1.OBSの右下にある配信終了を押すと、配信を終了します。

2.SampleLiveChannelのDetails画面の上部右のstopを押す。

3.StatusのChannel stateがStoppingからIdleになったら終了。


  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS SAA(ソリューションアーキテクトアソシエイト)に合格。勉強方法について(注:3ヶ月もかかった人です)

はじめに

AWS SAA(ソリューションアーキテクトアソシエイト)に合格したので、勉強方法などについて書いてみようと思います。
AWS SAA試験は2020年3月23日より改定(SAA-C02)されましたが、筆者が受験したのは改定前(SAA-C01)のものです。ご了承ください。
公式の改定情報

筆者について

経歴

業務内容 期間
ネットワーク、サーバの監視オペレータ 2年
IT事務
(法人向けネットワークの見積、オーダー処理)
3年半
業務システム開発(イントラマート)(JSメイン) 1年

インフラよりの経歴が長く、かと行って構築経験があるわけでもないので
浅めのネットワーク知識と、Linuxはほんの少し触れる程度です。

保有資格

資格 取得時期 有効/失効
CCNP 2013年11月 失効
LPIC101 2014年3月 失効
TOEIC IP 920 2011年1月 失効

大学時代から社会人2年目くらいまで、資格を取ることにかなり情熱を注いでいました。

参考にした合格体験記等

Udemyと黒本だけでAWS 認定ソリューションアーキテクト – アソシエイトに合格できたので書いてみる

未経験から1ヶ月半の勉強でSAAに合格したのでまとめてみた

3週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる

AWS認定 ソリューションアーキテクト - アソシエイトの旧版と新板を比較してみた。

などなど

使用した教材

Udemyのセールで購入した2つの教材のみを利用しました。
※2つの教材内のアップデート情報によると、どちらも講師の方が改訂版(SAA-C02)を受験し、それを元に4月中旬には(SAA-C02)に対応したアップデートがされるようです。ご安心を!!

Udemyは定期的に割引セールを実施しているようなので、そのタイミングを狙うと良いかと思います。
2020年3月【Udemyのセールいつ?】56万円分得した格安で買う5つの方法

教材1(これだけでOK)

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け22時間完全コース)
¥1,630(Udemyセール価格)

教材2(模擬試験)

AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(5回分325問)
¥1,500(Udemyセール価格)

その他

Amazon Web Services(公式Youtubeチャンネル)

学習期間、学習時間

学習期間

2019年12月20日 UdemyこれだけでOK!で学習スタート
2020年02月09日 1回目受験(不合格)
2020年02月13日 Udemy模擬試験集で学習スタート
2020年03月22日 2回目受験(合格)

学習時間

平日 1〜2時間
土日 4時間
※ただし毎日ではない!

費用

購入物 価格
教材1
Udemy これだけでOK!
¥1,630
教材2
Udemy 模擬試験
¥1,500
SAA試験① ¥16,500
SAA試験② ¥16,500
(合格の為、所属会社負担。感謝!)
合計 19,630

UdemyこれだけでOK!で勉強して、1回目受験(不合格)まで

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け22時間完全コース)で勉強をスタートしました。 

講義&ハンズオン

AWSの主要なサービスごとに講義とハンズオンを繰り返していくスタイルで、とても分かりやすかったです。 自分の知らなかった様々なモダン技術をAWSで実装する方法も紹介されており、とても充実した内容でした。
ただ、長い!!!! 動画時間が20時間以上もあります。仕事終わりで疲れた状態で、うとうとしながら講義を聞くこともありました。。。。
しかし試験を受けると分かるのですが、出題範囲がとても広くたくさんのAWSサービスを把握しなければならないので、必要な分量なんだと思います。

模擬試験3回分

本番試験と同じ形式(制限時間、問題数、合格点)の模擬試験が3回分含まれています。
何度も受け直すことができ、試験実施後の見直し機能(解説付き、間違えた問題のみフィルタリングするなど)も充実しています。
それぞれの模擬試験を4〜5回ほど繰り返し、正答率90%〜100%になるまで何度も(解く→見直す)を繰り返しました。
見直しは「なぜそれが正解なのかを自分で説明できるか」というところまで追求し、AWSだけでなく一般的な技術用語も分からなければググって補いました。

本番試験1回目(不合格)

AWS-Fail.png

約120点ほど足らずに不合格でした。全部で65問なので、後7〜8問正解できれば合格でしょうか。
「これだけでOK!」教材で解いた問題で見なかったようなサービス名、用語が多々あり、本番の方が明らかに難しかったです。
「これだけでOK!」ではない。。。。。!!!!!?

Udemy模擬試験集で勉強して、2回目受験(合格)まで

模擬試験集をUdemyで購入し、上記と同様に模擬試験を解く、見直す、を何度も繰り返しました。
しかし、同じ作業の繰り返しにだんだん疲れてきてしまいました。
気分転換にAWSの動画を探し、見るだけの時間を挟みました。
Amazon EC2 のご紹介(日本語字幕)(Youtube)
AWS Lambda のご紹介(日本語字幕)(Youtube)

本番試験2回目(合格)

AWS-Pass.png

1回目の受験よりは答えられましたが、それでも手応えとしては微妙でした。普通に解けば時間が余るタイプの試験でしたが、最後の数分まで見直しを行いました。
合格点720で739点。あと1問違ってたら不合格だった!!!!!

おわりに

エンジニアとして自分の市場価値を高めたいと思い、AWS SAAにチャレンジしました。個人的な意見ですがAWSを学習すればするほど、クラウドに関する知識は絶対に必要だと感じました。様々なモダンな技術(マイクロサービス、サーバレス、コンテナ、スケーリングなど)をAWS上で実装できる事を学びましたが、自分はそもそもそう行った技術についても全く知りませんでした。教材のハンズオンを通してそれらを手軽に実践できることもわかったので、今後は資格を取るための知識だけでなく、扱えるように練習していきます。

合格まで3ヶ月もかかってしまいましたが、他の方は3週間だったり1ヶ月で取得されているので、自分は少々効率が悪かったかもしれません。※なので必ず他の方の記事も併せて参照してください!!!笑
この記事をご覧いただいた方がAWS試験に合格できる手助けに少しでもなれば幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【試験合格記】AWS 認定 セキュリティ – 専門知識(SCS-C01)

お疲れさまです。
表題の試験に合格したため記録として残したいと思います。

結果

合格(913点)

分野 名称 割合
1 インシデント対応 12%
2 ログと監視 20%
3 インフラストラクチャのセキュリティ 26%
4 IDおよびアクセス管理 20%
5 データ保護 22%

所有資格

資格名 取得年月日
AWS Certified Solutions Architect - Associate (SAA) 2018-06-14
AWS Certified SysOps Administrator - Associate (SOA) 2018-06-22
AWS Certified Developer - Associate (DVA) 2018-06-25
AWS Certified Solutions Architect - Professional (SAP) 2018-07-19
AWS Certified DevOps Engineer - Professional (DOP) 2020-02-19
AWS Certified Big Data - Speciality (BDS) 2020-03-23
AWS Certified Security - Speciality (SCS) 2020-04-01

事前知識

厳密なセキュリティ設計を必要とする実務経験はありません。
ただし、IaCでセキュリティレベルを担保するための工夫は日常的に行っているというレベル感です。

所感

SAPを取得しているレベルなら下記に列挙する特徴を正しく理解するだけで合格する確率が大きく上がると思います。
一部の問題では自動化のソリューションにも言及されていたのでDOPも取得していると尚やりやすいと思います。
これらの理由からスペシャリティレベルとしては最もとっつきやすい資格ではないでしょうか。

受験者に向けたアドバイス

  • KMSのキーポリシーやキーローテーションの仕組みを理解する
  • CLBとALBの違いを理解する
  • IAMはロールやポリシーからクロスアカウント、LDAPなどと効率的に連携する方法を理解する
  • S3で出来る暗号化の範囲を理解する
  • System Managerの特徴を理解する
  • CloudFrontのS3オリジンとカスタムオリジンの違いを理解する

まとめ

実はこの試験を先月も受けましたが730点で落ちてしまいました。
そのため「リベンジするぞ!」という気持ちで再学習した結果が数字にも表れたと思います。

セキュリティはどんな案件においても蔑ろにして良いことはないので、この試験に合格するために得た知識をうまく実案件に取り入れていきたいと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

QuickSight get-dashboard-embed-url

get-dashboard-embed-url

https://docs.aws.amazon.com/cli/latest/reference/quicksight/get-dashboard-embed-url.html

説明

サーバー側の埋め込み可能なURLと認証コードを生成します。 このプロセスを正しく機能させるには、最初にダッシュボードとユーザー権限を構成します。 詳細については、Amazon QuickSightユーザーガイドの「Amazon QuickSightダッシュボードの埋め込み」または「Amazon QuickSight APIリファレンス」の「Amazon QuickSightダッシュボードの埋め込み」を参照してください。
現在、GetDashboardEmbedURLはサーバーからのみ使用でき、ユーザーのブラウザーからは使用できません。

概要

get-dashboard-embed-url
--aws-account-id <value>
--dashboard-id <value>
--identity-type <value>
[--session-lifetime-in-minutes <value>]
[--undo-redo-disabled | --no-undo-redo-disabled]
[--reset-disabled | --no-reset-disabled]
[--user-arn <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

オプション

--dashboard-id

ダッシュボードのID。IAMポリシーにも追加されます。

--identity-type

ユーザーがサインインに使用する認証方法。
可能な値:
* IAM
* QUICKSIGHT

-session-lifetime-in-minutes

セッションが有効な時間(分)。 セッションの存続時間は15〜600分にする必要があります。

--undo-redo-disabled | --no-undo-redo-disabled

埋め込みダッシュボードの元に戻す/やり直しボタンを削除します。 デフォルトはFALSEで、元に戻す/やり直しボタンが有効になります。

--reset-disabled | --no-reset-disabled

組み込みダッシュボードのリセットボタンを削除します。 デフォルトはFALSEで、リセットボタンが有効になります。

--user-arn

Amazon QuickSightユーザーのAmazonリソースネーム(ARN)。QUICKSIGHTIDタイプで使用します。 これは、次のいずれかとして認証されたアカウント内のすべてのAmazon QuickSightユーザー(リーダー、作成者、または管理者)に使用できます。
* Active Directory(AD)ユーザーまたはグループメンバー
* 招待された非フェデレーションユーザー
* SAML、OpenID Connect、またはIAMフェデレーションを使用したフェデレーションシングルサインオンを通じて認証されたIAMユーザーとIAMロールベースのセッション。

EmbedURL取得

awscli
aws quicksight get-dashboard-embed-url  --aws-account-id <aws account id> --dashboard-id Oktank-health-dashboard  --identity-type QUICKSIGHT --user-arn arn:aws:quicksight:us-east-1:xxxxxxxxxxx:user/default/<QS user name> --session-lifetime-in-minutes 15
{
    "Status": 200,
    "EmbedUrl": "https://us-east-1.quicksight.aws.amazon.com/embed/f061cf0ba96f4fec843aa22cc346d438/dashboards/Oktank-health-dashboard?code=AYABeGmU1TTNQB5TKuAOGoKbKnwAAAABAAdhd3Mta21xxxxxcm46YXdzOmttczp1cy1lYXN0LTE6MjU5NDgwNDYyMTMyOmtleS81NGYwMjdiYy03MDyyyyyxY2YtYmViNS0xNDViOTExNzFkYzMAuAECAQB4P-lAb3AsrVHPwO-wVCEmuFDTp0yz400000wutzPupewBHiXE3-2IHpPyopRTzTd_lAAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDB9QdVvWizGAatd_0gIBEIA71OKgkHhhcO1cIVwdt0dviyn6yvICkMXQnwIqLBrgS2CjPgPb-yZxBd_erEVIgIGOaSV1VvblhFHzmC4CAAAAAAwAABAAAAAAAAAAAAAAAAAAFRV4mgOEQSvKnviGpwQYFf____8AAAABAAAAAAAAAAAAAAABAAAAzNDAjLV1SxUhZZh9X_Qmmwqju2hWpYMXzXY0_vu9gxPM549gj8bH5k8g10_01h2NROE9jxjA1y8GsHUnBoCAwfyOUuZqnK9toWiFtz5Ug545u31kvMoboCdg17k3Ac1SwE3IOHv-E0ppuPEUzW-jcejLVN1A25QM6DkPKIgG695YZeHlLK0wg1cFjz7jP9aj9F4_P3-4BGjupmsM7QyT5j2sww0n5gQwCf66S4rn6nrJ_4tTQKChQDYPxM9lOzC7-XINahFjytE7wCJf86SJSAidy-iB92vWydAxPp8%3D&identityprovider=quicksight&isauthcode=true",
    "RequestId": "aef93b2b-5888-45a5-a9c8-f9b8294918f0"
}

UserARN確認

$ aws quicksight describe-user --aws-account-id <aws account id> --user-name <QS user name> --namespace default --region us-east-1
{
    "Status": 200, 
    "User": {
        "UserName": "<QS user name>", 
        "PrincipalId": "federated/iam/xxxxxxxxxxxxxxxxxxxxx", 
        "Role": "ADMIN", 
        "Active": true, 
        "Email": "admin@aaa.com", 
        "Arn": "arn:aws:quicksight:us-east-1:<aws account id>:user/default/<QS user name>"
    }, 
    "RequestId": "edfc4364-0a5d-48ca-83ed-11743bcc3955"
}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS キーペア削除方法

前置き

AWSのキーペア削除方法についてメモ

本題

EC2 Management Consoleの左側のメニューバーから「ネットワーク&セキュリティ」→「キーペア」を押下する。
スクリーンショット 2020-04-02 14.07.12.png
削除したいキーペアを選択した状態で「アクション」→「削除」を押下する。
スクリーンショット 2020-04-02 14.08.16.png
テキストボックスに「削除」と入力し削除ボタンを押下する。
文面には"delete"と入力せよと書かれているが、日本語で「削除」と入力するのが正。
スクリーンショット 2020-04-02 14.08.46.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS ソリューションアーキテクト プロフェッショナル 合格体験記

AWSのソリューションアーキテクト プロフェッショナルという資格を去年秋ごろに取得したので、備忘録代わりに合格体験記を書きます。(特にあんまり試験の具体的なトピックは書いてないです)

ちなみにAWS関連だと下記の資格を持っています。

  • 2018年 夏 資格取得: AWS ソリューションアーキテクト アソシエイト
  • 2019年 秋 資格取得: AWS ソリューションアーキテクト プロフェッショナル (1回目落ちて、2回目の受験で合格。去年の秋ごろ取得。)
  • 2019年 冬 AWS クラウドプラクティショナー (去年のre:Invent会場で取得)

資格の前提知識について

要求される知識

  • ネットワークなど含め基本情報程度の知識は必要だと思います。
    • TCP/UDP、サブネット、DNS解決、HTTP通信など
  • Linuxの操作(CLI)はできたほうがいいです。
  • アプリケーション開発の知識もある程度はあったほうがいいです。

総じていうと、一度ぐらい自力で何らかのWeb系の本番システムを組んで運用したことがあると有利です。

あと当たり前ですが、AWSを日常で使っている人がめちゃくちゃ有利です。Webコンソールの設定画面が頭に入っていると強いですね。あと、S3やIAMはどこでも死ぬほど出るんで、頑張って覚えよう。
 

要求されない知識

  • 物理層の知識。データリンク層まで要らんかも。どうせクラウドで見えるのはネットワーク層からです。
  • Ciscoルーターのコマンドとか。具体的な機器の設定は試験には出てきません。
    • 実運用上はデータセンターのルーター設定とかはあるでしょうけど。
  • プログラミングの知識。あったほうが有利ですが。
  • 一部のAWSのサービスの知識。 AWS Ground Stationとかゲーム関連とかAI関連とか。ほぼ出ません。

インフラ屋じゃないと合格しないといったことはありませんが、私のようなプログラマよりはインフラ屋のほうが受験比率が高いと思います。

資格習得難易度は人によって違う

よく「○ヶ月でソリューションアーキテクトを取得!」といった記事がありますが、人それぞれ持っている知識や資質といった前提条件が異なるので、こういった他人がどのぐらいの期間で資格取得したかという情報は無用なプレッシャーを受けるノイズでしかありません。 気にするのはやめましょう。

でも期間の目安を知りたいって?

私の場合は、だいたい1年半でソリューションアソシエイトとプロフェッショナルを取りました。ガリ勉はしてないですが、業務経験がある程度あるのでしなくて済んだのでしょう。参考にするだけ無駄です。

どちらかというと、期間よりは受験料金(3万円ぐらい)のプレッシャーを考えながら受けるのがリアルかなと思います。

ちなみにAWSの資格に合格すると、任意の試験に使える受験料金半額のクーポンを貰えるので、見た目ほど最終的な値段はかかりません。

学習方法

メインの学習 (クラスルーム)

私の場合は、会社からお金を出してもらって、下記のクラスルームを受講しました。

  • ソリューションアーキテクト アソシエイト受験前
  • ソリューションアーキテクト プロフェッショナル受験前

これらのクラスルームは、3日間フルタイムでクラスルーム会場に通い、電子テキストをベースに、講師の授業とハンズオンを受けながら、合間合間に近い席の人と班を組み、特定の課題に対してのAWS上でのソリューションを考えてホワイトボードに書き発表する、という内容のものです。

(ちなみに同席する生徒のレベルが高すぎるという心配はしなくても大丈夫です。普通レベルの方がいっぱいいらっしゃいます。新卒の方もいます。インフラ屋が多いですね。)

クラスルームで強制的に試験内容範囲を3日間の中で総ざらいすることになるので、モチベーションの低い人でも学習しやすいです

自主学習で試験内容範囲をやろうとしても、興味がないところはスキップしてしまいがちなんですよね。

基本的にこのクラスルームでやったことを徹底的に復習すれば合格ラインはいけるかな、というのが実感です。

他の人の合格体験記だと、あまりクラスルームを活用したという声がないですが、お金が許すならクラスルーム行ったほうが早いです。

ちなみにクラスルーム内でチート的な試験テクを教えてもらえるといったことはありません。

サブの学習

ソリューションアーキテクト アソシエイト

市販の受験本を一冊何度も読み返しました。

あと問題集サイトもやったりしていたのですが、正直受験本の内容だけで十分でした。問題集サイトの問題はマニアックなの多いですが、割と本番の問題は素直なのが多かった印象。

ソリューションアーキテクト プロフェッショナル

いくつかAWSのイベントに参加したり、AWS re:Inventにも参加したりもしましたが、特に受験勉強に役立つというよりは、AWSと自分との繋がり感の醸成みたいな方が主軸だった気がします。ただ、あるイベントで受講したAmazon Connectが問題に出たという点では役に立った気はする。

問題集サイトもやったんですけど、最初のうちはちょいちょいやっていたんですが、モチベ不足でやらずに契約期間終了しました。今思えば、こちらも別に必須じゃなかった気はします。

問題集といえば、Kindeで販売されている英語の問題集をやったんですが、こちらもモチベーションが足りず、特に完走などせず。ただ、本番の問題の雰囲気はちゃんとこれらの本でわかるので、そういうアタリを掴むのには役に立つと思います。

AWS Black Belt Online SeminarというYouTubeチャンネルも見てたんだけど、そこまで数を視聴したわけではないですね。

全般的にはクラスルームでやったことがベースになったかなと思います。

受験した感想(試験難易度について)

ソリューションアーキテクト アソシエイト

  • 基礎知識のある人は、ソリューションアーキテクト アソシエイトの受験本を真面目に読んでれば受かりそう。
  • AWSのとっかかりに受験してもいいと思います。
  • ある程度の受験テクは必要。消去法で考えるとか。
  • 大概時間は余ると思います。

おそらくAWSの入り口ということで、ソリューションアーキテクトアソシエイト受ける人多いと思うんですけど、個人的にAWSの用語を覚えるのが厳しいんじゃないかなと思います。そういう人はクラウドプラクティショナーの方を先に受けると学習パスとしては最適な気がします。

ソリューションアーキテクト プロフェッショナル

  • わかっていたけど、問題多い(80問)・長い(170分)。
    • そこそこ時間を気にしていれば、全部終わるぐらいには残り10分程度残っているかな、という具合でした。
    • プロフェッショナル受験してると、最後あたり試験会場で残ってるの自分だけやん、ということになりがち。
  • 1問がデカい。下記みたいな感じ。

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae viverra augue. Donec consectetur nisi porttitor enim accumsan facilisis. Fusce euismod sem nisl, in venenatis leo convallis vitae. Donec faucibus erat lobortis ipsum porta egestas. Nulla quis rutrum erat, in tristique arcu. Aliquam felis massa, pellentesque id diam vel, laoreet bibendum metus. Mauris placerat ipsum nec eleifend interdum. Phasellus ac purus blandit, mattis massa eget, varius neque.
Integer eu tincidunt ipsum. In laoreet mauris sed ante posuere maximus. In varius consectetur tortor porta tincidunt. Cras tincidunt nulla et pretium efficitur. Aliquam at nisi ullamcorper, finibus magna vel, consectetur ante.
より顧客の目的に合う選択肢をすべて選べ。
1. Vivamus urna lectus, lacinia in arcu et, eleifend euismod leo. Vivamus in libero id tortor suscipit efficitur. Fusce euismod tellus vitae est pharetra tempor. Proin sed enim ut sapien fringilla bibendum vel id quam.
2. Suspendisse suscipit lectus lectus, non tincidunt nisl aliquam vitae. Phasellus mauris ante, egestas nec egestas quis, aliquet et erat. Phasellus ornare consequat luctus.
3. Integer ante ligula, semper volutpat tempus dignissim, fringilla in nunc. Nulla tincidunt, orci ut accumsan lacinia, mi erat eleifend urna, in porta odio urna sit amet felis.
4. Suspendisse id ante scelerisque, auctor metus eget, malesuada tellus. Vivamus pretium velit at dapibus congue.

  • 日本語が壊れている。翻訳の質が低い。具体的な例は思い出せないですが、下記みたいなのが割とよくある。
    • 日本語として成り立っていない。
    • 無理やりな翻訳。しかも訳語が問題内ですら統一されていません。
    • 英語にあった情報が日本語でなくなっている。 "DO NOT" みたいなアッパーケースで書かれているような強調情報が日本語だと消えてたりします。
    • 問題文が意味不明なら適宜英語版に切り替える柔軟さが求められます。 技術英語を少しぐらいは読めたほうがいいですね。
  • 知らないことが多く出る!
    • 仕方ないというか、勉強不足だなあと思いつつ想像力MAXで解くしかありません。
    • 割とAWS知らなくてもよその知識で解ける問題もあると思います。
  • 残念ながら1回目は落ちました。2回目で合格しました。

クラウドプラクティショナー (おまけ)

  • AWS re:Inventの会場、ラスベガスで受験しました。
    • 会場はアメリカでも試験は日本語選べます。 試験マシンに日本語フォントが入って無くて詰むとかもなかった。
  • 一応、Amazon Kindle Unlimitedで読める問題集は読んだけど、勉強する必要なさそうだなと思って数問で終了。
  • イベント期間中にAWSの他資格受験と同様、サイトから予約を入れて、受験会場をラスベガス(re:Invent会場)に設定するだけです。
    • 予約入れてから1時間で受験可能とかドキドキしちゃいます。
  • 特にイベント中に受験したからといって優遇措置はありません。マジで一切ない。海外のイベント会場で受験する意味はない。安全安心の日本の会場で受けよう!
  • 試験はソリューションアーキテクト受かる人なら(当然だけど)余裕でいける。
    • 試験受けるまでのほうが難しかった。受付のおばちゃんの早い英語。アメリカ特有のルールに厳しいイメージ…。スタッフみんな優しかったけど。

特にクラウドプラクティショナー資格をバカにするつもりはないです。AWSの世界に入ったばかりの人や、ビルダーでもない人はまずこの資格を取るといいんじゃないかと思います。

資格取ってから変わったこと

  • 社内評価が上がった(気がする)。
  • 名刺に載せるネタができてよかった。
  • 正直実感はあんまりないですね。勉強の結果、一つ山を越した、みたいな感じ。
    • いや、果たして勉強していたのか?
  • 資格持っていると、AWSイベントで有資格者ラウンジ使えるとかあるけど、クレジットカードの空港ラウンジみたいなもので、すごく嬉しいものではないですね。
  • 資格更新面倒くさいなあ〜

とにかく資格取得を目指すみなさん!がんばってください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS Cognite (1) 概要まとめ

前書き

AWS Cogniteについて調査した内容のまとめです。AWSの丁寧な説明をかなり省略して記述しています。


AWS Cognite の概要

アプリケーションの認証、許可、ユーザー管理をサポートしています。当然ですが、AWSのIAMのユーザー管理とは別です。


認証と許可の仕組み(ユーザープールとIDプール)

ユーザープール
ユーザー情報の管理と認証
IDプール
AWSのサービスへの許可

ユーザープールとIDプールの認証と許可のイメージ


その他の機能

Amazon Cognito Sync
ユーザーデータのデバイス間の同期
Amazon Cognitoのモニタリング
Amazon Cloud Watchメトリクス
リアルタイム監視
AWS CloudTrail
ロギング

ユーザープール

ユーザープールでできること

  • 新規ユーザー登録およびログインの機能。
  • ログインなどのカスタマイズ可能なウェブ UI。
  • Facebook、Google でソーシャルサインイン、Login with Amazon、Sign in with Apple、ユーザープールから SAML ID プロバイダーでサインイン。
  • ユーザーディレクトリとユーザープロファイルの管理。
  • 多要素認証 (MFA) などのセキュリティ機能、漏洩した認証情報のチェック、アカウントの乗っ取り保護、電話と E メールによる検証。
  • カスタマイズされたワークフローと AWS Lambda トリガーによるユーザー移行。

認証方式

大きく分けて2つの方法を選べる。(ユーザープール作成時点で選ぶ。後から変更することはできない。よくよく設計する必要がある)
* ユーザー名
* Eメールアドレスおよび電話番号

属性

ユーザーの属性として次のものが用意されている。これらはオプション扱いだが、必要に応じて必須にすることも可能

属性 属性 属性
address locale preferred_username
birthdate middle_name profile
email name updated_at
family_name nickname website
gender phone_number zoneinfo
given_name picture

カスタム属性

必要な属性を作ることもできます。
カスタム属性.PNG


ポリシー

次のことを設定できます。

  • パスワードの強度
  • 管理者のみがユーザーを作成できる/ユーザーが自分で作成できる

MFAそして確認

  • 多要素認証(MFA)を有効にするか
  • ユーザーがパスワードを忘れたとき場合の回復方法

メッセージのカスタマイズ

アプリ向けメールの送信用に Amazon SES を使用する。その設定。要調査

デバイス

デバイスを記憶するオプション。
* 常に
* User Opt In
* いいえ


アプリクライアント

ユーザープールをアクセスできる、アプリケーションを登録できる。認証フローも登録。

トリガー

認証前に決まった処理を行うなど、AWS Lambdaを使用したカスタマイズができます。


全般設定

ユーザーとグループ

  • ユーザーを作成
  • ユーザーの一覧/参照
  • ユーザーをcsvでインポート。csvのヘッダをダウンロードできる
  • グループを作れる/ユーザをグループに設定できる

アドバンストセキュリティ

追加料金が発生する場合がある。

メッセージのカスタマイズ

メールの設定。Amazon SES


分析

Amazon Pinpointでユーザーを分析。キャンペーンを作成できる。追加料金。


アプリの統合

工事中!

フェデレーション

Facebook, Google といったプロバイダ経由のログイン設定。
YahooやRakutenは,直接はなさそう。規格に沿っていればできるのかな。要調査。


IDプール

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Mac]xargsで引数を任意の箇所に埋め込んで実行するメモ

この記事について

何回やっても忘れるので。本当にただのメモ書きです。

sample code

ローカルの特定のディレクトリ配下にあるファイルすべてをS3に上げるサンプルスニペット。

upload_s3.sh
find -f <path_to_dir>/* -print0 | xargs -0 -I{} aws s3 cp  {} s3://my-bucket/prefix/

ポイント

find -Iの後ろに任意の文字列を入れることで、実行する末尾でなく任意の箇所に埋め込むことができる。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWSとFilezillaをつなぐ

AWSのEC2インスタンスにファイルをアップしたい。ローカルからFilezilla経由をするには。

Filezillaで行うこと。
①新しいサイトを作成(名前はなんでもOK)

②プロトコル は SSH File Transfer Protocol を選択

③ホスト に EC2のIPアドレスを入れる。これはAWSのインスタンスページにある、「パブリックIP」をコピペ(123.456.789みたいな数字のやつです)

④ログオンタイプ 鍵ファイル を選択(AWSのEC2への接続時に、秘密鍵をつくってると思いますが、あれを使うということです)

⑤ユーザー 
EC2インスタンスに接続してるときの、ターミナル(Macだと)に書いてあります。$の左側。
例えばインスタンスのOSにubuntuを選んでると、デフォルトではubuntuになってます。
ubuntu@ip-123.456.789: $ 部分の、@の前がユーザー名です。

⑥鍵ファイル 参照 のところで、鍵ファイルを選択。 ~~.pemというファイルです。

⑦接続を押して完了!

参考:
https://agohack.com/cyberduck-ec2/
https://support.amimoto-ami.com/en/articles/934126-filezilla-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F-sftp-%E6%8E%A5%E7%B6%9A

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【AWS】AWS 認定ソリューションアーキテクト(SAA-C01)に元WEBディレクター開発未経験の人間が受かった話

自己紹介

はじめまして。ATARUです。
少し前(2020/3/11)のことになりますが、AWS認定ソリューションアーキテクトに合格しましたので、この度、合格体験記をここに残したいと思います。

経歴

まず最初に軽く自己紹介しておきます。

  • 1社目(新卒)
    某大手EC事業会社のBtoCサイトのプロダクトマネジメント部にて、WEBディレクター的な立ち位置に居りました。
    -自社サービスのサイトのABテスト/UIUX改善/機能改修/保守運用/案件管理など。時にはログ調査なども。
    -社内ツールの機能改善/性能改善/案件管理など。
    すべて管理/調整系の仕事で、エンジニアの用語はほとんど「?」な感じでした。新卒でしたし勘弁してください。。

  • 2社目
    ITベンチャーへ転職。
    主にやったことは受託のWEB制作のディレクター。1社目とは違い、受託だったので制作会社って感じでした。
    デザイナーとエンジニアとPMとクライアントに囲まれて気づいたら撮影部隊と海外ロケをしていたり、イベントスタッフをしていたり、てんやわんやな感じでした。ここではディレクターとして?、ひとつWEBサイトの公開をしました。管理系の職種ほど仕事の境界が曖昧なものはないなと思ったとこでした。

  • 現在
    現在(2020年3月現在)は年明けに転職し、WEBディレクターというポジションからいったん離れて、開発の現場にいます。
    しかもWEBの会社ではありますが、ポジション的にはインフラ系にいます。
    いくつか理由はありますが、長くなるので、端的に言うと、「将来のことを考えたら今はディレクターやるよりスキル身に着けた方がええやん」っていう理由です。

できること

てなわけで転職したばかりなので、何もできません。
できることといえば、BacklogやSlack、Confluence、Excelなど管理で使っていたツールを駆使することくらいです。
この業界は、だいたい未経験でも「Python?少しかじってましたけど。」みたいなできるタイプの人間ばかりですが、自分は「AWS?試験なら受かりましたけど。」という状況です。
ペーパーエンジニアも甚だしいです。
少し盛りましたが、実務経験はほんとうにないので、軽いIT用語やプログラミングの初歩的なところの知識くらいしかないです。最近TerraformとDockerに興味もってやっと少し触れるようになったところです。Linuxもやっと10個くらいコマンド覚えたところなんじゃないなのだろうか。
本当にこのままで大丈夫なのだろうか。

エンジニア0ヵ月目(AWS学習1か月目)

「エンジニア0ヵ月目ってなんやねん」って思われた方、決して誤字ではありません。
今年転職した会社では最初の3ヵ月は研修というお金もらいながら勉強のできるとても都合のいい条件だったので、ずっと勉強をしてました。よってエンジニアの経験があるのかという無いのです。ただ勉強をしていただけなので。
最初はネットワークやらLinuxの基礎やらをサラーっとやりました。
とは言っても、本当に実務経験はないため、自宅のPCでちょろっとLinuxやってみたりしてました。

~~読んだ書籍~~
Linux標準教科書
図解まる わかりネットワークのしくみ
Amazon Web Services 基礎からのネットワーク&サーバー構築

エンジニア0ヵ月目(AWS学習2か月目)

まだエンジニア0ヵ月目です。知識だけ少しずつ増えた状態。
2か月目あたりからようやくAWSの試験の学習が本格的に進みます。
軽く触ったことはありましたが、AWS公式のチュートリアルなどはやっていなかったため、やることに。
EC2とかS3とかRDSなどの主要なサービスをコンソールから立ち上げたり、SSHで接続したりすることはできるが、「で!?」って感じである。
しかしまぁ試験には受からないとまずいので、AWS各サービスの概要やベストプラクティスなどをしっかり頭に入れました。
(本来これって実運用をしていくうちに身に着けたりしていくものではないのだろうか。まるで試験に受かることを目的とした勉強をさせられており、正直そのへんは研修センターに対して疑問を感じた。)

研修センターではAWS Black Beltが教材として使われていたが、あれを未経験の人間が全て頭に詰め込むのは相当ハードです。周りの人もみんな下記のような書籍を購入して勉強をしておりました。
『一夜漬け~』の書籍はとてもよかったです。一夜漬けと書いてますが、AWSのサービスの基本的なことから教えてくれます。またベストプラクティスが非常にわかりやすく、シンプルにまとめてあります。
ただ、単純に用語やサービスの概要だけ覚えても仕方ないので、どういうケースでこのアーキテクチャになるのか、どんなアーキテクチャならこのサービスを利用できるのかと、素人ながらに考えてみることをおすすめします。
ちなみにですが、書籍以外だと、AWSの公式開発者ガイドを見ることをすすめます。こちらも非常に長いドキュメントなので、サービス概要とか概念とか、クラス/タイプなどに絞って閲覧していくと効率的でしょう。
このガイドですが、「"サービス名" "開発者ガイド"」などで検索するとでてきます。
たとえば、「S3 開発者ガイド」→Amazon S3 とは
あとは、Developers.IOで情報を得て見たりすることもおすすめです。
ちなみに意外とやってない人がいますが、AWSはサービスが変わることが多いので常に最新のアップデートなどは気にしておきましょう。そのせいで2018年出版のAWS SAA問題集の答えが違うものが2つくらいありました。最新の情報をしっかりキャッチアップしておきましょう。

~~読んだ書籍~~
この1冊で合格! AWS認定ソリューションアーキテクト - アソシエイト テキスト&問題集
一夜漬け AWS認定ソリューションアーキテクト アソシエイト 直前対策テキスト
図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

エンジニア0ヵ月目(AWS学習3か月目)

さて、試験まで2週間をきりました。まだあまり問題を解いてません。
公式の模擬試験を受けてみましたが、6割~7割くらい。書籍についてる問題も解きましたが、7割ちょうどくらい。
試験の合格ラインは720/1000ですから、これじゃあ心配しかないです。

そこでUdemyの問題つき講座をとりました。
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(ASS-02試験対応版)
これは非常によかったです。問題も解きやすかったし、解説もわかりやすかったので。ただ、本編の講座の動画をほとんど見ていません。。。問題集だけのほうもあったので、そっちにすればよかっただろうか。。

さて、試験の1~3日前は上記の書籍の問題集やUdemyの問題集を99%解けるくらいまでやって、解説を熟読しました。かつQiitaにまとめてきたベストプラクティスやサービス比較表などを念入りにチェックするようにしました。

そして試験当日

正直そこまで心配はしてなかったです。(模擬試験や問題集を所見で8割超えたことすらないのに。)
聞いていた通り、パッと始まり、不安な問題はチェックマークをつけ、サッと30分くらい残して終えました。
時間はかなり余裕です。余裕すぎたので、文章が長い問題はアーキテクチャを実際に書いてみたりしました。
スコアは836点。
ふん。こんなものか。
欲を言うともう少し欲しかった。3ヵ月勉強しても満点はとれないのか。(合格して調子に乗ったわけである。)

振り返ると、セキュリティの分野が得意じゃなかったかもなぁなんて思っていました。試験結果もセキュリティのところだけ再学習の必要ありと記されてありました。(試験結果に載ってます。)

見ればよかった

終わった後に見たのですが、下記の方々がAWSのこの試験対策について非常にきれいにまとめております。
AWS 認定 Associate level を大体一ヶ月で取った話 -Qiita
3週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる -Qiita

おわりに

未経験でもがんばればAWS SAAは受かります。
ただ、勉強の仕方などは工夫してちゃんと理解した状態にすることが大事だと思いました。
今は一応AWSメインのインフラエンジニアとして、配属されておりますが、自分のことをエンジニアと名乗るにはまだまだ早いと思っております。
やっとこさEC2にApache入れて開発環境を作るような仕事がくるくらいで、これからやるのもスケールアップやスケールアウトの調整、障害対応などがメインになりそうとのこと。
最近はTerraformとDockerにはまってきたので少しやってみていますが、実務で使うかは不明。。不明すぎて不安。まぁでも今年はLPICと基本情報(春はなくなりましたが・・・)とITILの資格とろうと決めたので、頑張ります。
エンジニア向いてないのかな自分、そんなことを考えながら今日も生きていきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWSの費用をslackに通知する

クラウドの費用は定期的に確認

日々開発を行なっているとCost Explorerを段々と見なくなり、後になって多額の請求が来て死ぬってことありますとねw
ってことでLambdaで定期的にslackに通知して確認できる様にしました

構成

CostxLambda.jpg

Lambdaのソースや詳しい設定方法

https://dev.classmethod.jp/cloud/aws/notify-slack-aws-billing/
classmethodさんよく活用させてもらっています、ありがとうございます!!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

CloudFormation テンプレートで CloudFront の Header を全て Foward する設定

ドキュメントを見ても具体的にどういう値を設定するべきか書いていない。

A complex type that specifies the Headers, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests.

All で良いのか? * か?

と悩んだが '*' で良かった

example
          ForwardedValues:
            Headers:
            - '*'

とりあえず「All の場合設定方法を書いてくれ」とフィードバックは送った。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む