SlideShare a Scribd company logo
1 of 20
Download to read offline
オンプレを少しずつコンテナ化する
JAWS-UG CLI専門支部 岡崎 賢吉
自己紹介
• 社内情シスでインフラ担当しています(自社クラウド?それをオンプレと言うんじゃ…
昨年まではポータルサイトのAWSへの移行とか
• 好きなAWSのサービス 
• JAWSの活動 CLI専門支部懇親会係・情シス支部運営
• 黒い画面の布教活動
• 普段はIP電話やL3SWをいじってる低レイヤの人です
• コンテナはあまり詳しくないです。。。
SORACOMリレーブログに参加しました
• https://blog.soracom.jp/relay-blog/2015-11/
• 「SORACOMとAWSで家電話」というタイトルでAWS直結
でスマホからIP電話を使う試みを書きました。
少しずつコンテナにしよう
• オンプレは永遠に不滅です!
無くなると自分の仕事が…w
• 共存しつつコンテナをどう使っていくか
• サービスごとにオンプレから切り出す
DNSサーバ
Webサーバ
あたりが比較的簡単かな?ADとかムリ
コンテナの特徴
• コンテナとは仮想化ではなくユーザ空間で
動くプロセスである。 by クラウド婚にあこがれるZ佛さん(仮名)
• コンテナは起動時に指定したプロセスが終了するとコン
テナも消滅する。
• デーモンとして起動されるサービスをそのまま動かそうと
すると、一瞬でコンテナが消滅してハマる><
• 起動スクリプトの最後に tail -f /dev/null を実行しっぱな
しにする力業とかが見かけるけどイクナイ。
• 目的のサービスをforegroundで起動する必要がある。
どう実装するか
• コンテナは終了すると中のデータが消滅する
• 内部にデータを持たない設計が必要
• コンテナ起動時にS3から必要なデータを読み込み、コン
テナ自体はデータを持たない構造とした
構築手順概要
• S3へコンテンツデータを準備する
• EC2コンテナインスタンスの作成
• コンテナの作成
• リポジトリへpush
• コンテナの起動
• 動作確認
コンテナ暴走。詰んだ
(後日談:原因はリソース不足で操作不能に陥っていたようです…)
コンテナインスタンスの作成
インスタンスプロファイル(IAMロール)の作成
$ AWS_DEFAULT_REGION=ap-northeast-1
$ IAM_ROLE_NAME=ecsInstanceRole
$ IAM_POLICY_NAME='AmazonEC2ContainerServiceforEC2Role'
$ IAM_POLICY_ARN=$( aws iam list-policies --max-items 1000 --query "Policies[?PolicyName==¥`${IAM_POLICY_NAME}¥`].Arn" --output text ) && echo "${IAM_POLICY_ARN}"
$ IAM_POLICY_VERSION=$( aws iam list-policies --max-items 1000 --query "Policies[?PolicyName==¥`${IAM_POLICY_NAME}¥`].DefaultVersionId" --output text ) && echo ${IAM_POLICY_VERSION}
$ FILE_ROLE_DOC="${IAM_ROLE_NAME}.json" && echo ${FILE_ROLE_DOC}
$ cat << EOF > ${FILE_ROLE_DOC}
{
"Version": "2008-10-17",
"Statement": [
{
Action": "sts:AssumeRole",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
$ aws iam create-role --role-name ${IAM_ROLE_NAME} --assume-role-policy-document file://${FILE_ROLE_DOC}
$ aws iam list-attached-role-policies --role-name ${IAM_ROLE_NAME}
$ aws iam attach-role-policy --role-name ${IAM_ROLE_NAME} --policy-arn ${IAM_POLICY_ARN}
$ IAM_ROLE_NAME="ecsInstanceRole"
$ IAM_INSTANCE_PROFILE_NAME=${IAM_ROLE_NAME} && echo ${IAM_INSTANCE_PROFILE_NAME}
$ cat << ETX
IAM_INSTANCE_PROFILE_NAME: ${IAM_INSTANCE_PROFILE_NAME}
ETX
$ aws iam create-instance-profile --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME}
$ ARRAY_IAM_ROLES=$( aws iam get-instance-profile --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} --query 'InstanceProfile.Roles[].RoleName' --output text ) && echo ${ARRAY_IAM_ROLES}
$ aws iam add-role-to-instance-profile --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} --role-name ${IAM_ROLE_NAME}
$ ARRAY_IAM_ROLES=$( aws iam get-instance-profile --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} --query 'InstanceProfile.Roles[].RoleName' --output text ) && echo ${ARRAY_IAM_ROLES}
コンテナインスタンスの作成
セキュリティグループ・鍵ペア・インスタンスプロファイルの作成
$ VPC_SG_NAME='ec2-http-dns-global-inbound'
$ VPC_SG_DESC='EC2 HTTP/DNS Global inbound'
$ aws ec2 create-security-group --group-name ${VPC_SG_NAME} --description "${VPC_SG_DESC}"
$ VPC_SG_ID=$( aws ec2 describe-security-groups --filter Name=group-name,Values=${VPC_SG_NAME} --query 'SecurityGroups[].GroupId' --output text ) && echo ${VPC_SG_ID}
$ VPC_SG_PROTOCOL='tcp'
$ VPC_SG_PORT='80'
$ VPC_SG_CIDR='0.0.0.0/0'
$ aws ec2 authorize-security-group-ingress --group-id ${VPC_SG_ID} --protocol ${VPC_SG_PROTOCOL} --port ${VPC_SG_PORT} --cidr ${VPC_SG_CIDR}
$ VPC_SG_PROTOCOL='udp'
$ VPC_SG_PORT='53'
$ VPC_SG_CIDR='0.0.0.0/0'
$ aws ec2 authorize-security-group-ingress --group-id ${VPC_SG_ID} --protocol ${VPC_SG_PROTOCOL} --port ${VPC_SG_PORT} --cidr ${VPC_SG_CIDR}
$ VPC_SG_PROTOCOL='tcp'
$ VPC_SG_PORT='22'
$ VPC_SG_CIDR='■端末IP■/32'
$ aws ec2 authorize-security-group-ingress --group-id ${VPC_SG_ID} --protocol ${VPC_SG_PROTOCOL} --port ${VPC_SG_PORT} --cidr ${VPC_SG_CIDR}
$ PRJ_NAME=ecshandson
$ EC2_KEY_NAME="${PRJ_NAME}-${AWS_DEFAULT_REGION}-ec2" && echo ${EC2_KEY_NAME}
$ FILE_SSH_KEY="${HOME}/.ssh/${EC2_KEY_NAME}.pem" && echo ${FILE_SSH_KEY}
$ aws ec2 create-key-pair --key-name ${EC2_KEY_NAME} --query 'KeyMaterial' --output text > ${FILE_SSH_KEY} && cat ${FILE_SSH_KEY} && chmod 400 ${FILE_SSH_KEY}
$ aws iam list-instance-profiles --query 'InstanceProfiles[].InstanceProfileName'
$ IAM_INSTANCE_PROFILE_NAME='ecsInstanceRole'
$ VPC_SG_NAME='ec2-http-dns-global-inbound'
$ VPC_SG_ID=` aws ec2 describe-security-groups --filter Name=group-name,Values=${VPC_SG_NAME} --query 'SecurityGroups[].GroupId' --output text ` && echo ${VPC_SG_ID}
$ ARRAY_VPC_SG_ID="${VPC_SG_ID} ${ARRAY_VPC_SG_ID}" && echo ${ARRAY_VPC_SG_ID}
$ aws ec2 describe-security-groups --group-ids ${VPC_SG_ID}
コンテナインスタンスの作成
インスタンスの起動
$ EC2_INSTANCE_TYPE='c4.8xlarge'
$ AMZLINUX_VERSION='2015.03.d'
$ EC2_IMAGE_NAME="amzn-ami-${AMZLINUX_VERSION}-amazon-ecs-optimized"
$ EC2_IMAGE_ID=`aws ec2 describe-images --filters Name=name,Values="${EC2_IMAGE_NAME}" --query 'Images[].ImageId' --output text` && echo ${EC2_IMAGE_ID}
$ ECS_CLUSTER_NAME='handson-cluster'
$ FILE_EC2_USERDATA="ecs-userdata-${ECS_CLUSTER_NAME}.bash"
$ cat << EOF > ${FILE_EC2_USERDATA}
echo ECS_CLUSTER=${ECS_CLUSTER_NAME} > /etc/ecs/ecs.config
EOF
$ aws ecs create-cluster --cluster-name ${ECS_CLUSTER_NAME}
$ aws ec2 run-instances --image-id ${EC2_IMAGE_ID} --instance-type ${EC2_INSTANCE_TYPE} --security-group-ids ${ARRAY_VPC_SG_ID} ¥
--key-name ${EC2_KEY_NAME} --associate-public-ip-address --user-data file://${FILE_EC2_USERDATA} --iam-instance-profile Name=${IAM_INSTANCE_PROFILE_NAME}
$ EC2_INSTANCE_ID=` aws ec2 describe-instances --filters Name=instance-state-name,Values=pending --query 'Reservations[].Instances[].InstanceId' ¥
--output text ` && echo ${EC2_INSTANCE_ID}
$ EC2_PUBLIC_IP=` aws ec2 describe-instances --instance-id ${EC2_INSTANCE_ID} --query "Reservations[].Instances[].PublicIpAddress" ¥
--output text ` && echo ${EC2_PUBLIC_IP}
• 数分待ってからコンテナインスタンスへログイン
ssh -i ${FILE_SSH_KEY} ec2-user@${EC2_PUBLIC_IP}
• 以後の作業はログインしたコンテナインスタンス上から行います。
httpdコンテナ
apache httpdコンテナを作る
• ベースとなるコンテナ(centos:6)に追加したいファイルを準備
/root/.aws/config /root/.aws/credential /etc/httpd/conf/httpd.conf.add /etc/rc.local (後述)
• rc.localはS3からWebコンテンツを取得してapacheを起動する設定を記述
apacheをフォアグラウンドで起動させるためにapachectlを直接呼び出す。
#!/bin/sh
/usr/bin/aws s3 sync s3://ecs-handson/html /var/www/html
/usr/sbin/apachectl -DFOREGROUND
• Dockerfileファイルを新規作成し構築したい内容を記述
FROM centos:6
RUN curl -O https://bootstrap.pypa.io/get-pip.py
RUN python get-pip.py
RUN pip install awscli
RUN yum -y install httpd
ADD config /root/.aws/config
ADD credentials /root/.aws/credentials
ADD httpd.conf.add /tmp/httpd.conf.add
RUN cat /tmp/httpd.conf.add >> /etc/httpd/conf/httpd.conf
ADD rc.local /etc/rc.local
CMD /etc/rc.local
httpdコンテナ
コンテナのビルド
• これらのファイルを1つのディレクトリに入れ(ここでは ./lt-httpd/) build
# docker build --rm -t xiaomiho/lt-httpd ./lt-httpd
Sending build context to Docker daemon 6.144 kB
Sending build context to Docker daemon
Step 0 : FROM centos:6
---> 3bbbf0aca359
Step 1 : RUN curl -O https://bootstrap.pypa.io/get-pip.py
---> Using cache
---> b2657c17a25d
Step 2 : RUN python get-pip.py
---> Using cache
---> 7f81e9867e4c
Step 3 : RUN pip install awscli
---> Using cache
---> 69c2fe677515
Step 4 : RUN yum -y install httpd
---> Using cache
---> c4e9e346f87a
Step 5 : ADD config /root/.aws/config
---> Using cache
---> c05b256e202c
Step 6 : ADD credentials /root/.aws/credentials
---> Using cache
---> 203b855206db
Step 7 : ADD httpd.conf.add /tmp/httpd.conf.add
---> bad97ea080ef
Removing intermediate container 32c25d8a8ded
Step 8 : RUN cat /tmp/httpd.conf.add >> /etc/httpd/conf/httpd.conf
---> Running in f90024c961d5
---> e819ed1c1d4b
Removing intermediate container f90024c961d5
Step 9 : ADD rc.local /etc/rc.local
---> 04f297d4b8f4
Removing intermediate container 089a2986981b
Step 10 : CMD /etc/rc.local
---> Running in 65b18d2f4f3a
---> cdd53146bb20
Removing intermediate container 65b18d2f4f3a
Successfully built cdd53146bb20 ←■最後の行 built隣の文字列がdocker image番号
#
httpdコンテナ
リポジトリへコンテナをpush、コンテナの起動
• 完成したdocker imageをリポジトリへpushする
# docker push xiaomiho/lt-httpd
The push refers to a repository [xiaomiho/lt-httpd] (len: 1)
cdd53146bb20: Image already exists
04f297d4b8f4: Image successfully pushed
e819ed1c1d4b: Image successfully pushed
bad97ea080ef: Image successfully pushed
203b855206db: Image already exists
c05b256e202c: Image already exists
c4e9e346f87a: Image already exists
69c2fe677515: Image successfully pushed
7f81e9867e4c: Image already exists
b2657c17a25d: Image already exists
3bbbf0aca359: Image already exists
fea77d2fd61e: Image already exists
91e6f84b8fe8: Image already exists
2c2557968d48: Image already exists
47d44cb6f252: Image already exists
Digest: sha256:23b61d265fa481ba9c462bacda40f38cb70a30390e1705ffdd32bcfe2549768b
#
• コンテナを起動する
# docker run -d -p 80:80 xiaomiho/lt-httpd
e2caa45cf32b31cc317dccda3377a0b3cd57f248cc0ecf690def2366f06037c8
#
正しく起動されるとコンテナIDが返されます。(長い文字列)
• 作業完了。Webブラウザで確認してみましょう
無事ブラウザでコンテンツが表示されました。
namedコンテナ
bindコンテナを作る
• 先程と同様にベースとなるコンテナ(centos:6)に追加したいファイルを準備
/root/.aws/config /root/.aws/credential /etc/rc.local (後述)
• rc.localはS3からゾーン情報などを取得してbindを起動する設定を記述
bindをフォアグラウンドで起動させるためにnamedを直接呼び出す。
#!/bin/sh
/usr/bin/aws s3 cp s3://ecs-handson/etc/named.conf /etc/
/usr/bin/aws s3 sync s3://ecs-handson/named /var/named
/usr/sbin/named -u named -f
• Dockerfileファイルを新規作成し構築したい内容を記述
FROM centos:6
RUN curl -O https://bootstrap.pypa.io/get-pip.py
RUN python get-pip.py
RUN pip install awscli
RUN yum -y install bind initscripts
ADD config /root/.aws/config
ADD credentials /root/.aws/credentials
ADD rc.local /etc/rc.local
CMD /etc/rc.local
namedコンテナ
bindコンテナのビルド、リポジトリへpush、そして起動。
• これらのファイルを1つのディレクトリに入れ(ここでは ./lt-dns/) build
# docker build --rm -t xiaomiho/lt-dns ./lt-dns
(中略)
Successfully built 86b9ec61a298
#
• 完成したdocker imageをリポジトリへpushする
# docker push xiaomiho/lt-dns
The push refers to a repository [xiaomiho/lt-dns] (len: 1)
(中略)
Digest: sha256:4da38320fad6f7b0526d0d26acc6031e871a6cfd15b906e917c24fe59f8ee267
#
• コンテナを起動する
# docker run -d -p 53:53/udp xiaomiho/lt-dns
121d50299f765aa3f415ac72aacac4b0e1d3c280db939c4d9c1003dc0c57c97b
#
• 作業完了。DNSサーバが機能しているか確認してみましょう
DNSサーバの動作確認って表現が難しいので、今回はSUPINFさんのドメインに偽ゾーン情報を入れてみました。
正しく動作していれば、Webブラウザで予期せぬページが表示されるはずです。
通常はこれが…
毒入り成功!
課題
• コンテナが落ちた時の自動復帰
ECSにすれば自動処理されるようなので、ECSに載せる方向で。
• アクセスログの管理
Amazon EFSと連携してNFSマウントしたファイルシステムにアクセスログをゴリゴリ書
きたいところですが…
IPv4アドレス枯渇に伴いCGNのなどが登場し、アクセス元ポート番号まで記録が必要
になりつつある昨今、自前でログを書いて解析するのは大変。
• ELBがS3へログを記録する機能を使ってKibanaで可視化する試みも公開されている
のでこれが最適解かも。
ありがとうございました!

More Related Content

What's hot

WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep DiveAmazon Web Services Japan
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014Amazon Web Services
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティスAkihiro Kuwano
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクルHonMarkHunt
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpMasahiro NAKAYAMA
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAmazon Web Services Japan
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザNoritaka Sekiyama
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 

What's hot (20)

WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPCAWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
AWSからのメール送信
AWSからのメール送信AWSからのメール送信
AWSからのメール送信
 

Similar to オンプレを少しずつコンテナ化する

microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)さくらインターネット株式会社
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化智之 大野
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationyukihiro kawada
 
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい聡 大久保
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介Midori Oge
 
Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327Kunihiro TANAKA
 
Jaws−横浜ハンズオンーCloudFormation 1/3
Jaws−横浜ハンズオンーCloudFormation 1/3Jaws−横浜ハンズオンーCloudFormation 1/3
Jaws−横浜ハンズオンーCloudFormation 1/3Yasuhiro Araki, Ph.D
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 

Similar to オンプレを少しずつコンテナ化する (20)

microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327
 
Jaws−横浜ハンズオンーCloudFormation 1/3
Jaws−横浜ハンズオンーCloudFormation 1/3Jaws−横浜ハンズオンーCloudFormation 1/3
Jaws−横浜ハンズオンーCloudFormation 1/3
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 

More from Kenkichi Okazaki

中国の移動体通信網入門
中国の移動体通信網入門中国の移動体通信網入門
中国の移動体通信網入門Kenkichi Okazaki
 
AliEaters 札幌 #2 東京第2ゾーンとECSの話
AliEaters 札幌 #2 東京第2ゾーンとECSの話AliEaters 札幌 #2 東京第2ゾーンとECSの話
AliEaters 札幌 #2 東京第2ゾーンとECSの話Kenkichi Okazaki
 
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~Kenkichi Okazaki
 
AWS FinTech リファレンス・アーキテクチャー 日本版 の話
AWS FinTech リファレンス・アーキテクチャー 日本版 の話AWS FinTech リファレンス・アーキテクチャー 日本版 の話
AWS FinTech リファレンス・アーキテクチャー 日本版 の話Kenkichi Okazaki
 
20171014 jaws ug-nagano-reboot
20171014 jaws ug-nagano-reboot20171014 jaws ug-nagano-reboot
20171014 jaws ug-nagano-rebootKenkichi Okazaki
 
AWS free tier maximization
AWS free tier maximizationAWS free tier maximization
AWS free tier maximizationKenkichi Okazaki
 
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Kenkichi Okazaki
 

More from Kenkichi Okazaki (7)

中国の移動体通信網入門
中国の移動体通信網入門中国の移動体通信網入門
中国の移動体通信網入門
 
AliEaters 札幌 #2 東京第2ゾーンとECSの話
AliEaters 札幌 #2 東京第2ゾーンとECSの話AliEaters 札幌 #2 東京第2ゾーンとECSの話
AliEaters 札幌 #2 東京第2ゾーンとECSの話
 
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~
酔っ払いの戯れ言 ~ Alieaters #9 忘年会 ~
 
AWS FinTech リファレンス・アーキテクチャー 日本版 の話
AWS FinTech リファレンス・アーキテクチャー 日本版 の話AWS FinTech リファレンス・アーキテクチャー 日本版 の話
AWS FinTech リファレンス・アーキテクチャー 日本版 の話
 
20171014 jaws ug-nagano-reboot
20171014 jaws ug-nagano-reboot20171014 jaws ug-nagano-reboot
20171014 jaws ug-nagano-reboot
 
AWS free tier maximization
AWS free tier maximizationAWS free tier maximization
AWS free tier maximization
 
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Recently uploaded (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

オンプレを少しずつコンテナ化する