継続は力なり

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

5/7~5/12 AWSブログ

タダです。

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

1、EC2 フリート – 1 回のリクエストで、大量のオンデマンドおよびスポットインスタンスを管理する

  • EC2フリートの紹介記事です
  • EC2フリートは今後AutoScalingと連携できる予定だそうです

2、Policybazaar.com が、Amazon Polly を採用して、効率とカスタマーエクスペリエンスを強化

  • Policybazaar.comでのPolly採用に関する紹介記事です

3、AWS IoT AnalyticsがGAに

  • AWS IoT AnaliticsがGAしました

4、【開催報告】CTO Night with Auth0 CEO

  • タイトル通りのイベント開催レポート記事です

5、Amazon SageMaker での機械学習で、Amazon Pinpoint キャンペーンを加速

  • SageMakerでのLSTM RNNモデルを構築・トレーニングを使って購入課題を予測し、予測によるAmazon Pinpointでのキャンペーンを配信する方法の紹介記事です

6、EC2 の – H1 インスタンス料金値下げ

7、Apache MXNet で事前にトレーニングを受けたモデルを使用する

  • Apache MXNetでの事前トレーニングを受けたモデルの使用方法に関する紹介記事です

8、AWS SMSを使用したSAPワークロードのAWSクラウド移行

  • AWS SMSをつかってSAP環境をAWSに移行する方法の紹介記事です
    • レプリケーションプロセスは、スケジュール化 -> 仮想イメージのアップロード -> 変換 -> AMI化になります

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

  • タイトル通りのWebnar資料公開およびQA公開の記事です

10、[AWS Black Belt Online Seminar] AWS Greengrass で実現するエッジコンピューティング 資料及び QA 公開

  • タイトル通りのWebnar資料公開およびQA公開の記事です

11、Amazon SageMaker で量子系をシミュレートする

  • SageMakerのBYOA機能をつかって量子系をシミュレーションする方法の紹介記事です

12、AWS オンラインテックトーク – 2018 年 5 月および 6 月前半

13、EC2 スポットインスタンスと TIBCO GridServer を使用して AWS 上で 130万個の vCPU グリッドを作成する

  • TIBCOとAWSの取り組みに関する紹介記事です

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

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公開ブログです

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