- 1. 【Amazon Connect】電話でEC2インスタンスを停止したり、再起動したりする。
- 2. AWS Update 6/2-6/24
- 3. RDS vs DynamoDB をCAP定理から整理する
- 4. AWS CLI で EKS クラスターの IAM OIDC ID プロバイダーを作成
- 5. あらためてEPELリポジトリの使い方をまとめてみた
- 6. 【AWS】AmazonLinuxのyumができない場合の対処
- 7. 【AWS初心者】AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!ハマったのでメモ
- 8. Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
- 9. 【AWS;Lambda入門】第二弾;jsonファイルから文章抽出してS3保存♬
- 10. TerraformでAWS VPCを作成する
- 11. 【AWS】GithubからCodePipelineでECS/Fargateにデプロイする方法
- 12. AWS IoT 概要
- 13. AWS IoT Core と MQTTクライアント (mosquitto/paho)の疎通
- 14. Railsアプリに独自ドメインを与えてAWSに上げても表示されない問題
- 15. AWSハンズオン実践メモ 〜スケーラブルウェブサイト構築編〜
- 16. AWSのEC2内でDockerコマンドを使えないときの対処法【目的:load遂行】
- 17. CDKでWordpressをFargate+EFS環境に移行する
- 18. AWS LambdaのCORSでハマったからreturnを共通化した
- 19. サーバレスなVOD配信環境を構築
- 20. AWSにおける最適なDB選択指針
【Amazon Connect】電話でEC2インスタンスを停止したり、再起動したりする。
#解決したいこと
“`
仮想カスタマ「しもしも!? サーバーの調子おかしいんだけど!??マッハでリブートして!!」
オペレータ 「おかのした」
※フィクション
“`ここからカスタマの情報を確認して、EC2インスタンスの状態をチェックして、カスタマのインスタンスかどうかをダブルチェックして、オペレータが心の準備をしてからインスタンスを再起動する。
#いや、無駄ちゃう?
自分はセールスなんで実際に作業をしている訳ではないですが、割と前述みたいな電話がかかってくることは多いです。
そして、確認して作業して…。
大したこと無い作業ですが、その割には影響が大きい(聞いたことはありませんが、他のインスタンスをリブートしたりとかのリスクを懸念する)ので、脳味噌ゼロでやれるようなことでもありません。いやでもそれにしてもこんなことに時間を取られるのは如何なものか。
「いっそ、電話受付無くしたら?」という声も聞きますが、それならそれに代わるサービスを考えねばなりません。#お客様で作業を完結してもらう
電話受付を無くす&お客様で作業をしていただく方向性で考えました。**【使うもの】**
AWS Update 6/2-6/24
最近AWSに少し飽き始めてバイクに時間を使っていました。
ですが、バイクに飽き始めたのでAWSに戻ります。
アップデート追って行きましょうーーーー!!!#6/2
##AWSデータ移行サービスは、リレーショナルソースからAmazon Neptuneへのグラフデータのコピーをサポートするようになりました
https://aws.amazon.com/about-aws/whats-new/2020/06/aws-data-migration-service-now-supports-copying-graph-data-from-relational-sources-to-amazon-neptune/
##Amazon AthenaでメタデータカタログとしてApache Hiveメタストアを使用する
https://aws.amazon.com/about-aws/whats-new/2020/06/use-apache-hive-metastore-metadata-catalog-amazon-athena/
##Amazon Redshiftのスキーマのストレージ管理を発表
h
RDS vs DynamoDB をCAP定理から整理する
AWSの2大データベースであるRDSとDynamoDB、シンプルに初心者向けに何が違うのか、違いが簡単にわかるような説明を考えてみます。
# はじめに
初めてAWSのアーキテクチャーを考えるときに、最近ではサーバーレスな設計がごろごろ落ちているため、初めてシステム設計をする場合でも、NoSQLデータベースである、DynamoDBを使ったシステム構成が描けてしまいます。私が駆け出しのころは、Oracleまっさかりで、RDBを使ったシステム構成しか描けなかったものです。あらためて今回CAP定理という言葉をつかって初心者向けに比較してみたいと思います。# CAP定理 と ACID と BASE を覚えておこう
CAP定理は、Wikipedia 分散コンピューティングの考え方として、以下のように示されています。BASEは、スケーラビリティを高める代わりに、トランザクションを諦めている。ACIDは、トランザクションを極めているようです。+ 一貫性 (Consistency)
– すべてのデータ読み込みにおいて、最新の書き込みデータもしくはエラーのどちらかを受け取る。
+ 可用性 (A
AWS CLI で EKS クラスターの IAM OIDC ID プロバイダーを作成
“`
$ CLUSTER_NAME=example-eks-cluster
$ ISSUER_URL=$(aws eks describe-cluster –name $CLUSTER_NAME –query “cluster.identity.oidc.issuer” –output text)
$ JWKS_FQDN=$(curl -sS $ISSUER_URL/.well-known/openid-configuration | jq -r ‘.jwks_uri’ | perl -pe ‘s/^https:\/\/(.+?)\/.+$/${1}/’)
$ CERTIFICATE_BODY=$(openssl s_client -servername $JWKS_FQDN -showcerts -connect $JWKS_FQDN:443 < /dev/null) $ CERTIFICATE_START=$(echo $CERTIFICATE_BODY | grep -n 'BEGIN CERTIFICATE' | sed -e 's/:.*//g' | tail -n
あらためてEPELリポジトリの使い方をまとめてみた
# 1. はじめに
RHEL系ディストリビューションにおける、拡張パッケージのリポジトリ**「EPEL」**を使っている人は多いだろう。筆者もこれまでの記事で何度か紹介してきた。ところがクラウドでは状況が微妙に異なる。そこで使い方をまとめることにした。### 1-1. TL;DR
* クラウドでは、デフォルトで有効になっていることや、独自のインストールコマンドが提供されていることがある
* 記事で毎回EPELの使い方を説明するのは無駄### 1-2. 前提条件
* RHEL系Linuxディストリビューション。FedoraやCentOS、Amazon Linux、Oracle Linuxなど
# 2. EPELとは
EPELを使う手順は簡単だ。すぐにインストールしたいときは[「3. EPELリポジトリを有効にする」](https://qiita.com/yamada-hakase/items/fdf9c276b9cae51b3633#3-epel%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E6%9C%89%
【AWS】AmazonLinuxのyumができない場合の対処
# はじめに
AmazonLinux構築中に`yum update`ができない事象が発生しました。
この場合の原因と対処についてアウトプットしていきたいと思います。# 事象
AmazonLinuxにて`yum update`を実施したところ、下記画面にて止まることを確認。
“`bash
[root@ip-192-168-5-129 ec2-user]# yum -y update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
“`# 環境
## 自宅環境
| 項目 | 説明 |
| —- | —- |
| 自宅PC | Windows10 |
| ターミナル | TeraTerm |## クラウド環境
| 項目 | 説明 |
| —- | —- |
| PublicCloud | AWS |
| OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |**※自宅P
【AWS初心者】AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!ハマったのでメモ
# はじめに
タイトルの通り、”AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!”というハマり方をしました。
今後同じようになった人の解決の助けになればと思います。# 1つ目のハマったところ → 原因: AWS Batchで選択しEC2たインスタンスタイプが東京リージョン未対応だったため
## 現象
AWS BatchにてCompute environments、Job queue, Job definitionsを作成しJob実行後、”RUNNABLE”の状態で止まったままでした。
このとき、EC2インスタンスはできていませんでした。AutoScalingGroupの設定を見ると下記スクショのようなエラーメッセージが出ていることがわかりました。![スクリーンショット 2020-06-14 18.42.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91562/2f8f8005-5a40-f391-38cc-33fdfa2c6bfd.png)
エラーメッ
Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
# Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
表題の通りです。まずは完成品とレポジトリのURLをどうぞ。
サイト:https://chilvary-beta.vercel.app
GitHub:https://github.com/yokonao/chilvary-beta
## 作ったきっかけ
next.jsの公式チュートリアル(URLは以下)をやったら、構築の容易さとSPAのページ遷移の速さに感動したので。これで自分のブログ作ったら超便利じゃない?と思いました。単純なページ公開だけならバックエンドなしでも可能です。
https://nextjs.org/learn/basics/create-nextjs-app?utm_source=next-site&utm_medium=homepage-cta&utm_campaign=next-website
## アーキテクチャアーキテクチャっていうのは大げさすぎるかもしれません。
1. ローカルPCで書いたMarkdownファイルを作成
2. Markdownファイルを**AWS S3*
【AWS;Lambda入門】第二弾;jsonファイルから文章抽出してS3保存♬
[前回](https://qiita.com/MuAuan/items/49cbc0a18dcf6c6406bb)は、以下のコードでs3://バケットに配置されたmp3ファイルをtranscribeしてテキストに変換して、jsonファイルをOutputBucketNameのS3;バケットに配置した。
今回は、このjsonファイルを呼び出して、テキスト変換された文章を抽出しようと思います。わざわざ前回コードを出したのは、今回もコードが似ているからです。“`py
s3 = boto3.client(‘s3’)
transcribe = boto3.client(‘transcribe’)
def lambda_handler(event, context):
bucket = event[‘Records’][0][‘s3’][‘bucket’][‘name’]
key = urllib.parse.unquote_plus(event[‘Records’][0][‘s3’][‘object’][‘key’], encoding=’utf-8′)
try:
TerraformでAWS VPCを作成する
TerraformでAWS VPCを作成するコード
## 実行環境
– Windows 10 Home (1919)
– Git Bash (git version 2.25.1.windows.1)
– AWS CLI (aws-cli/2.0.3 Python/3.7.5 Windows/10 botocore/2.0.0dev7)
– Terraform (v0.12.26)## 作成する構成
まっさらな環境にVPCを1つ作成
![20200623.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660929/44f3c342-a8b0-f543-7378-309fdf02600d.png)
## main.tf
“` main.tf
provider “aws” {
profile = “prj01-profile”
region = “us-west-2”
}resource “aws_vpc” “prj01VPC” {
cidr_block = “10.10.
【AWS】GithubからCodePipelineでECS/Fargateにデプロイする方法
#【AWS】GithubからCodePipelineでECS/Fargateにデプロイする方法
CodePipelineを使ってECS/Fargateにnginx,phpコンテナをデプロイする方法をまとめます。
## 目次
* [構築イメージ](#構築イメージ)
* [動作環境](#動作環境)
* [手順](#手順)
* [STEP1. ECRの作成とイメージのプッシュ](#step1-ecrの作成とイメージのプッシュ)
* [STEP2. タスク定義ファイルとAppspecファイルの作成](#step2-タスク定義ファイルとappspecファイルの作成)
* [STEP3. アプリケーションロードバランサーとターゲットグループを作成する](#step3-アプリケーションロードバランサーとターゲットグループを作成する)
* [STEP4. ECSクラスターとサービスを作成する](#step4-ECSクラスターとサービスを作成する)
* [STEP5. CodeDeployアプリケーションとデプロイグループを作成](#step5-codedeplo
AWS IoT 概要
# AWS IoT
* [AWS IoTとは](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/what-is-aws-iot.html)## AWS IoTコンポーネント
### [メッセージブローカー](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-message-broker.html)
* [プロトコル](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/protocols.html)|プロトコル|認証|Port|ALPN ProtocolName|メッセージ|
|—|—|—|—|—|
|MQTT|X.509クライアント証明書|8883,443|x-amzn-mqtt-ca|subscribe, publish|
|HTTPS|X.509クライアント証明書|8443,443|x-amzn-http-ca|publish|
|HTT
AWS IoT Core と MQTTクライアント (mosquitto/paho)の疎通
# 概要
* AWS IoT CoreとMQTTクライアントの最も簡単な結合確認を行う
* MQTTクライアントには既成の[mosquitto](https://mosquitto.org/)、[paho](https://www.eclipse.org/paho/)を利用
* MQTT publisher (mosquitto_pub.exe)は、MQTTクライアントからAWS IoTに向けてのpublish送信を確認する。
* MQTT subscriber (mosquitto_sub.exe, paho_cs_sub)は、AWS IoTへのsubscribe実行とpublish受信を確認する。# 前提知識
### AWS IoT
* インターネットに接続されたデバイスとAWS クラウドとの**セキュア**な**双方向通信**が可能になります。
* 複数のデバイスからテレメトリデータを収集し、保存して、分析できます。
* これらのデバイスをユーザーが各自の電話やタブレットから制御できるようにするアプリケーションを作成することもできます。
* 構
Railsアプリに独自ドメインを与えてAWSに上げても表示されない問題
「自分のアプリを独自ドメインにしてAWSに上げたろー」
ということで以下の記事を参考に自分のアプリに独自ドメインを付与しました。
https://mel.onl/onamae-domain-aws-route-53/しかし3日待っても全く表示されない。AWSの紹介ページが表示されるだけ・・・
そこで色々調べた結果、Nginxの設定が必要であるとわかった。Nginxの設定
EC2で
“`
[USERNAME|~]$ cd /etc/nginx/conf.d/
[USERNAME|conf.d]$ sudo vi 〇〇.conf (#自分のアプリケーション名)
“`
〇〇.confで“`
server_name 〇〇.com;(#アプリの独自ドメインに変更してください)
“`
保存して終了。再起動する。“`
[USERNAME|〇〇(アプリ名)]$ sudo nginx -s reload
“`これで行けるはず!
参考文献
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1#n
AWSハンズオン実践メモ 〜スケーラブルウェブサイト構築編〜
# はじめに
AWSでWeb三層モデルを体系的に構築した事が無かった為、AWS公式の[ハンズオン(スケーラブルウェブサイト構築編)](https://pages.awscloud.com/event_JAPAN_Hands-on-for-Beginners-Scalable_LP.html?trk=aws_introduction_page)を実践しました。
本記事は自身のハンズオン学習メモとして投稿します。
# 目次
– [ハンズオンの目的](#ハンズオンの目的)
– [本編](#本編)– [おわりに](#おわりに)
# ハンズオンの目的
WordPressを具体例に、– Amazon EC2
– Amazon Virtual Private Cloud (VPC)
– Amazon Relational Database Service (RDS)
– Elastic Load Balancing (ELB)を利⽤し、スケーラブルなWebシステムを構築する。
>WordPressを使ったブログサイトの構築を通じて、スケーラブルな Web システム構築を学んでいただける
AWSのEC2内でDockerコマンドを使えないときの対処法【目的:load遂行】
##はじめに
ローカルにあるファイルをEC2へ送りたかったのですが、dockerコマンドが使えませんでした。“`
[ec2-user@ip-xxx-xx-xx-xx ~]$ docker load < dockerfiles.tar -bash: docker: command not found ``` 色々試行錯誤しながら、EC2環境にdockerをインストールすることで解決できたので共有したいと思います。 ##手順 ``` [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo yum install -y docker ``` EC2環境にDockerをインストール。EC2環境で上記コマンドを叩きます。「完了しました!」が最後に表示されたら成功。 ``` [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo service docker start ``` dockerを起動させます。 さあ、もう使えるだろうと思い、手始めにdockerイメージの一覧でも見るかとコマンドを叩くと ``` [ec2-user@ip-xxx-xx-xx-x
CDKでWordpressをFargate+EFS環境に移行する
## 概要
AWS ECS Fargate1.4.0がついにEFS(Elastic File System)をサポートしました。
これまではコンテナ内にボリュームをマウントしていたため、タスク数が増えたり、タスクがリフレッシュされるとマウントしていたデータが消えてしまっていたので、Wordpressのようなローカルにファイルを保持するようなアプリケーションにFargateは適用できませんでした。
EFSを利用することで、データを永続的に保持することが可能になるため、WordpressでもFargateを利用することができます。
今回は、CDKを利用してWordpressが稼働するインフラ環境を構築しました。
## インフラ構築
### 1. セキュリティグループを定義
RDS、EC2、EFSのセキュリティグループを作成します。
“`typescript
export class SystemStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.Stac
AWS LambdaのCORSでハマったからreturnを共通化した
# はじめに
前回、AWS Lambdaを使用したサーバーレス開発について、私がハマった箇所をまとめました。
[インフラエンジニアがやってみた AWSでサーバーレス Webアプリケーション開発](https://qiita.com/wakoit/items/aef089dd04533025f142)そこでCORSについて毎回returnでハマるのでreturnを共通化しました。
文中のAWS LambdaのソースはPython 3.8で書かれています。# 言いたいこと
CORSでエラーが出たらLambdaのreturnを疑え。# Why?
JavascriptのコンソールにCORSのエラーが出るとき、十中八九Lambdaで正しくreturnしていないからです。CORSの仕組みや考え方は以下の参考ページが大変詳しいです。
[なんとなく CORS がわかる…はもう終わりにする。](https://qiita.com/att55/items/2154a8aad8bf1409db2b)ある程度仕組みを理解して頂いたところで、CORSのエラーが出るパターンは以下になります
サーバレスなVOD配信環境を構築
AWS Media Blog の [Creating a secure video-on-demand (VOD) platform using AWS](https://aws.amazon.com/jp/blogs/media/creating-a-secure-video-on-demand-vod-platform-using-aws/) の記事で紹介されていた [download this detailed lab guide](https://testorlando1.s3.amazonaws.com/VOD-Blog-LabGuide.docx)を参考にサーバレスなVOD配信環境を構築してみました。
# サーバレスなVOD配信環境でできること
認証されたユーザーのみが動画をアップロード、処理、配信および閲覧可能なサーバレスのVODストリーミングプラットフォームです。
## ■動画アップロード画面(管理者権限付与ユーザのみログイン可能)
### ログイン
![Adminログイン画面.png](https://qiita-image-store.s3.ap-no
AWSにおける最適なDB選択指針
#本整理の目的
特に頭を使わず、DBならRDSでしょと考えてきた基盤エンジニア(5年目)が適材適所なDB選択を体系的に学びなおしたのでまとめる。
参考は2019年のAWS Summitのセッションより。# DBの歴史[要件の変化(2000年~)]
RDBMSだけでは様々な要件に対応できなくなり、KVSなど特性を持ったDBが誕生した。|項目|従来要件|新要件|
|:–|:–:|:–:|
|ユーザ|~10万|100万+|
|データ量|~TB|PB-EB|
|範囲|社内|グローバル|
|パフォーマンス|秒|マイクロ秒|# AWSにおけるデータカテゴリと選択指針
グラフ化や台帳といったカテゴリもあるが、本整理の範囲外。|データカテゴリ|Relational|Key-value|Document|In-memory|
|:–|:–:|:–:|:–:|:–:|
|AWS サービス|RDS|DynamoDB|DocumentDB|ElastiCache|
|特徴|参照結合性、ACI