継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

4/29~5/5 AWSブログ

タダです。

仕事の都合で大阪にきております。しばらくの間滞在するんで楽しめることを思っ切りやろうと思ってます。

さて、今週のAWSブログアップデートをまとめていきます。

1、Amazon EC2 インスタンスでのより高いパフォーマンスのために最適化された Chainer 4 と Microsoft Cognitive Toolkit (CNTK) 2.5.1

2、クライアントデバイスからのポート443でのTLSクライアント認証によるMQTTの実装方法(Python)

  • AWS IoTへMQTTで443番ポートでの接続する方法を2つ紹介した記事になります
    • Paho-mqttクライアントとOpenSSLライブラリを使う方法
    • AWS IoT Device SDK for Pythonを使う方法

3、ノートブックインスタンスのトレーニングに Amazon SageMaker のローカルモードを使用する

4、異常検出にビルトイン Amazon SageMaker Random Cut Forest アルゴリズムを使用する

  • 異常検出にSageMakerのRandom Cut Forest (RCF)の使用方法に関する紹介記事です

5、AWS Database Migration Service と AWS Schema Conversion Tool がソースとしての IBM Db2 LUW をサポート開始

以上が今週のアップデートまとめです。

Docker 実践活用ガイド 11章~13章

タダです。

今回はDocker実践活用ガイドの11~13章を読んだ内容をまとめていきます。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 book.mynavi.jp

なお、副教材としてドットインストールも使っていこうと思います。

目次

なお、各章の内容は次の通りです。

  • 1章 Dockerとは
  • 2章 Dockerの仕組み
  • 3章 Dockerのインストール
  • 4章 Dockerを使ってみよう(コマンド編)
  • 5章 Dockerを使ってみよう(Kitematic(GUI)編)
  • 6章 Dockerイメージの操作
  • 7章 Dockerを使いこなす
  • 8章 複数のDokcerを使う(Docker Machine、Docker Swarm、Docker Compose)
  • 9章 Dockerをクラウドで使う(Docker Cloud)
  • 10章 DockerとJavaScriptウェブサービスを作る(簡易オンラインジャッジシステム)
  • 11章 Dockerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
  • 12章 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッッジシステム)
  • 13章 Dockerの内部

11章

  • paiza.IOでは、コードの実行にDockerの基盤に利用している
    • Dockerの実行基盤はAWSを使っている(EC2)
  • DockerのコンテナごとにCPUを割り当てることで各コンテナは確実に1つのCPUを占有できる
  • AWSでは、論理CPU番号と物理CPU番号の対応は以下のようになっている(/proc/cpuinfoから確認できる)
論理CPUコアの番号 物理CPUコアの番号
0 0
1 1
2 2
3 3
4 0
5 1
6 2
7 3
  • DockerのCPUコア割り当ては、 docker run --cpuset-cpus=1,5で割り当てる
  • メモリは、言語によって個別のメモリ設定を行う
    • Javaは、-Mxオプションで明示的にメモリ使用量を指定する
    • PHPは、memory_limitオプションでメモリ使用量を指定する
  • プロセスの制限は、個別にユーザーを作り、コンテナごとに実行ユーザーを変えてプロセス数の制限を行う
  • ディスク容量の制限には、ディスクquotaを利用する
  • Dockerイメージ・コンテナはメモリ上に保存することで常にファイルの読み込みをメモリから読み込む時間を早くしている
    • Dockerイメージ・コンテナなどのデータは/var/lib/dockerに保存されているためtmpfsを使ってRAMディスクを作成し、このディレクトリにマウントする
sudo service docker stop
mv /var/lib/docker /var/lib/docker-orig
mkdir /var/lib/docker
mount -t tmpfs -o size=10G none /var/lib/docker
cp -rp /var/lib/docker-orig/* /var/lib/docker
sudo service docker start
  • 負荷分散は、ELB->Web(APIサーバー)->RabbitMQ(AMQP)->Dockerホストで処理を行っている

12章

  • paizaのコード実行環境APIでは、3つのAPIが利用できる
    • create
    • get_status
    • get_details
  • createでは、コードを提出してコードを実行できる
  • get_statusでは、提出コードの実行状態を取得する
  • get_detailsでは、提出コードの実行結果を取得する
  • HTMLとNode.jsのプログラムを実行して上記のAPIを叩くことを行う

13章

  • Dockerコンテナのディレクトリの/var/lib/dockerには、Dockerデータが保存されて、コンテナで利用するファイルシステムの階層も作られる
  • cgroupsは、/sys/fs/cgroups/memory/docker/コンテナIDで確認できる
  • コンテナ内のプロセスの名前空間は、/proc/プロセスID/nsで確認できる

振り返り

  • Dockerコンテナについてなんとなくの理解だったところを手を動かしての学ぶきっかけとなりました。
    • 3月~4月にかけてはコンテナ技術に触れてきました。Kubernetesも書籍を買ったので継続して学んでいきます。
  • Docker ComposeやSwarmはもうちょっと勉強したいです。
  • 5月始まってしまいましたが、以下のことを取り組み始めました
  • 5月からはサーバーレスの本を読んでいきます www.oreilly.co.jp

  • 関連ブログ yoshidashingo.hatenablog.com kakakakakku.hatenablog.com

Dokcer 実践活用ガイド 10章

タダです。

今回はDocker実践活用ガイドの10章を読んだ内容をまとめていきます。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 book.mynavi.jp

なお、副教材としてドットインストールも使っていこうと思います。

目次

なお、各章の内容は次の通りです。

  • 1章 Dockerとは
  • 2章 Dockerの仕組み
  • 3章 Dockerのインストール
  • 4章 Dockerを使ってみよう(コマンド編)
  • 5章 Dockerを使ってみよう(Kitematic(GUI)編)
  • 6章 Dockerイメージの操作
  • 7章 Dockerを使いこなす
  • 8章 複数のDokcerを使う(Docker Machine、Docker Swarm、Docker Compose)
  • 9章 Dockerをクラウドで使う(Docker Cloud)
  • 10章 DockerとJavaScriptウェブサービスを作る(簡易オンラインジャッジシステム)
  • 11章 Dockerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
  • 12章 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッッジシステム)
  • 13章 Dockerの内部

10.1~10.2

  • paizaのプログラミング支援サービスは以下の処理を行う
    • 1.サービスがプログラミング問題をユーザに出す
    • 2.ユーザが回答コードを書く
    • 3.ユーザが回答コードをサービスに提出する
    • 4.サービスがコードを実行する
    • 5.サービスが出力を判定する
    • 6.サービスがユーザに結果を表示する
  • 上記のサービスを実行する環境として隔離された実行環境を素早く作れるDockerが適切

10.3

  • オンラインジャッジシステムの仕様は以下のとおり
    • ブラウザで利用できるサービス
    • ユーザは、プログラミング言語を選択し、コードを書いて提出する
    • 提出されたコードをDockerコンテナで実行し、出力結果を表示する
  • 開発環境として、Dockerに環境を作る
  • 以下のDockerfileを作る
    • ビルド時にこけたので、apt-get update前にapt-get cleanを実行したら成功した
FROM ubuntu
RUN apt-get update
RUN apt-get install -y ruby
RUN apt-get install -y python
RUN apt-get install -y clang
RUN apt-get install -y time
RUN apt-get install -y binutils
  • docker imagesコマンドで確認する
docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
ubuntu-dev                            latest              4fc18e13d011        6 minutes ago       571MB
  • サーバーで実行するコードを書いて、Dockerを起動
    • コンテナを実行できたら、Node.jsをインストールする npm install
    • Node.jsがインストールできたら、node app.jsでプログラムを実行する
docker run \
> -v $HOME/conderunner:$HOME/coderunner \
> -v /usr/local/bin/docker:/usr/local/bin/docker \
> -v /usr/bin/docker:/usr/bin/docker \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -w $HOME/coderunner \
> -p 3000:3000 \
> --rm -i -t node /bin/bash
  • フロントはHTMLとJavaScriptによるコードの解説のため、割愛

10.4

  • 10.3の章で作ったアプリケーションを使うだけなので割愛

次回は11章です。

4/22~4/28 AWSブログ

タダです。

今週のAWSブログアップデートをまとめていきます。

1、Amazon Comprehend と Amazon Relational Database Service を利用してテキスト分析ソリューションを構築する

2、新しい AWS ブロックチェーンテンプレートを使用してブロックチェーンを始める

3、AWS Developer Toolsを使用したサーバレスなAWS Glue ETLアプリケーションの継続的インテグレーションとデリバリの実装

4、AWS サポート – 最初の 10 年

  • AWSサポートの紹介記事です

5、Amazon Rekognition Video と Amazon Kinesis Video Streams を使用してサーバーレスのビデオ分析環境を構築し、ライブフィードをベースにした顔分析を簡単に実行する

  • Rekognition VideoとKinesis Video Streams、サーバーレスによる自分で顔認識機能をテストする方法の紹介記事です

6、[AWS Black Belt Online Seminar] AWS で構築するデータレイク基盤のアーキテクチャ 資料及び QA 公開

  • タイトル通りのWebinar資料及びQ&A公開ブログです

7、Amazon より 新しい .BOT gTLD が誕生

  • ボット用のドメイン「.BOT」の紹介およびAmazon Lexのボット登録、Route53への登録方法紹介記事です

8、Amazon Polly が HIPAA に準拠

  • PollyがHIPAAに準拠対応しました

9、【開催報告】第12回 AWS Startup Tech Meetup

  • タイトル通りのイベント開催報告記事です

10、[AWS White Belt Online Seminar] クラウドジャーニー (AWSへの移行プロセスと移行ツール) 資料及び QA 公開

  • タイトル通りのWebinar資料及びQ&A公開ブログです

以上が今週のブログアップデートまとめです。

4/16~4/21 AWSブログ

タダです。

今週のAWSブログアップデートをまとめていきます。

1、Amazon Kinesis Video Streams および Amazon AI サービスを使用した注意とエンゲージメントを測定するためのボディーランゲージの自動分析の構築

2、Amazon Kinesis Video StreamsとAmazon Rekognition Videoでハイエンドコンシューマーエクスペリエンスを提供するために顔認識を使用する

  • Kinesis Video StreamsとRekognition Videoを組み合わせたリアルタイムの顔情報認識を構成する記事です
    • 顔認識の部分はラズパイとKinesis Video StreamsのSDKを使っています

3、LumberyardとAWSを使用して数分で(数日ではなく)大規模で再現度の高いの地形を生成

  • ゲームの地形生成を、LumberyardとAWSならすぐできる、という紹介記事です

4、AWS AppSync – 6 つの新機能を加え本番提供開始

  • AppSyncが6つの機能が追加されて本番提供開始されました

    1.コンソールログアクセス – AWS AppSync コンソールの中から GraphQL クエリー、ミューテーション、サブスクリプションをテストするときに作成される CloudWatch Logs を確認することができるようになりました。

    2.モックデータによるコンソール試験遂行 – 試験遂行の目的でコンソールにモックコンテキストオブジェクトを作成し、使用することができるようになりました。

    3.サブスクリプションゾルバ – すでにクエリに対して行い、リクエストを変更する方法と同様に、AWS AppSync サブスクリプションリクエストに対するリゾルバを作成することができるようになりました。

    4.DynamoDB のバッチ GraphQL オペレーション – DynamoDB のバッチオペレーション (BatchGetItem と BatchWriteItem) をリゾルバ機能の中の 1 つ以上のテーブルにわたって利用することができるようになりました。

    5.CloudWatch サポート – AWS AppSync API へのコールをモニタリングするために、Amazon CloudWatch Metrics と CloudWatch Logs を使用できるようになりました。

    6.CloudFormation サポート – AWS CloudFormation テンプレートを使用して、スキーマ、データソース、リゾルバを定義することができるようになりました。

5、Initiafy と Amazon Polly でアクセス可能なトレーニングを作成する

  • InitiafyのAmazon Polly利用事例の紹介記事です

6、Amazon SageMaker を使用して Word-Pronunciation シーケンスツーシーケンスモデルを作成する

  • SageMaker seq2seqは、シーケンスツーシーケンスタスクでエンコーダーデコーダアーキテクチャを利用するための方法を提供します
  • Amazon SageMaker Word-PronunciationノートブックでSageMaker seq2seqの使い方を紹介する記事になります

7、Amazon EC2 C5 および P3 インスタンスで、最適化された TensorFlow 1.6 により、高速なトレーニングを実行する

8、Amazon SageMaker がサポートする、「マーチマッドネス」予想アプリケーションを構築する

  • SageMakerでマーチマッドネスの予想アプリケーションを作った時の構成方法紹介記事です

9、Amazon Sagemaker モデルのパフォーマンスのリアルタイム監視に Amazon CloudWatch カスタムメトリックスを使用する

  • SageMakerモデルのパフォーマンスをCloudWatchでリアルタイム監視するための方法に関する記事です

10、Amazon Machine Learning API と PubNub ChatEngine でスマートなチャットアプリを開発する

11、Gluon on Amazon SageMaker 上の Gluon および AWS Batch によるテキスト分類

  • GluonとSageMakerでのトレーニング後、AWS Batchの処理を行い、Lambdaでトレーニング済みのデータに対して予測スクリプトを使うシステムの紹介記事です
    • SageMakerのトレーニングと予測のためのコードをDockerを使うが、そのイメージはECRにアップロードします

12、ライフサイクル構成およびインターネットアクセスを無効にするオプションを使用して Amazon SageMaker ノートブックインスタンスをカスタマイズする

  • SageMakerで2つの機能をオプションで追加しました
    • ノートブックインスタンスのカスタマイズプロセスの自動化を支援するライフサイクル構成
    • ノートブックインスタンスに制御されたセキュリティ環境を提供するために、パブリックインターネットから切り離す機能

13、より高速で、より柔軟性のあるモデルを Amazon SageMaker 線形学習者でトレーニングする

  • SageMakerの線形学習者アルゴリズムに幾つか機能が追加されました
    • 最適なモデルに対しては早期に終了して保存する
    • 新しい手法の追加(ヒンジ損失、分位点損失、Huber損失、イプシロン不感応損失、クラス重み付けオプション)

14、Amazon Translate を使用したチャットチャンネル

  • Twitchのチャットにおける翻訳機能にAmazon Translateを導入しています
    • 加えてメッセージを音声で読み上げる時にPollyを追加するアーキテクチャの紹介記事です

15、EFS ファイルシステムを Amazon SageMaker ノートブックに (ライフサイクル設定を含めて) マウントする

  • SageMakerノートブックインスタンスにEFSをマウントする方法を紹介する記事です

16、[AWS Black Belt Online Seminar] Amazon EC2 資料及び QA 公開

  • 表題のWebinarの資料及びQA公開記事です

17、【開催報告】Amazon Chimeを使ったJAWS DAYS 2018 re:Capが開催されました

  • 表題のイベント開催レポート記事です

18、MySQLデータベースをAuroraへ移行する方法をマスターする

  • オンプレミスのMySQLを、EC2に移行し、最終的にAuroraへ移行した振り返りの記事です

19、AWSの新しい Registry of Open Data(RODA)

  • Registry of Open Dataが発表され、パブリックデータセットが含まれています
    • このデータセットを追加して、AWSで分析が可能になります
  • 以下がそのサイトです

Registry of Open Data on AWS

20、[AWS Black Belt Online Seminar] Amazon VPC 資料及び QA 公開

  • 表題のWebinarの資料及びQA公開記事です

以上が今週のアップデート記事まとめです。