- 1. 個人的に気になる最近のサーバーレス事情(2021/01)
- 2. 【AWS S3】「バケットを削除する十分なアクセス許可がありません」のエラーが出た
- 3. Floating IP とは
- 4. AWSCodebuildでビルドする
- 5. データの分析と前処理を簡単に! AWS Glue DataBrew
- 6. TerraformでAWS AppMeshを使ってECS Fargateのサービスを統合する(その2 バックエンドサービス通信編)
- 7. Jets触ってみた(ruby serverless)
- 8. Pynamodbについて調べてみた
- 9. AWSを使ってインフラの基礎をさくっと学習してみた
- 10. データの分析と前処理を簡単に! Amazon SageMaker Data Wrangler
- 11. TerraformでAWS AppMeshを使ってECS Fargateのサービスを統合する(その1 基本編)
- 12. DockerをAWSで立ち上げる初学者へ
- 13. Elastic Beanstalkで簡単にテスト環境を立てる手順
- 14. T4gインスタンスにIPv6を有効にしてSoftEther VPN Server を構築する
- 15. Amazon RDSにおけるrdsadminユーザとは何者か
- 16. AWS認定 ソリューションアーキテクト – アソシエイト(SAA-C02)でやっておいたほうがよいこと
- 17. Dedicated Instance と Dedicated Hosts の違い
- 18. RubyでAmazon Textractを使ってみよう
- 19. AWS SDK for JavaScriptとDockerでAWS(S3、DynamoDB)のローカル開発をやってみる
- 20. 【メモ】みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!
個人的に気になる最近のサーバーレス事情(2021/01)
# 思い
EC2の管理~~なんて~~したくない。
個人開発の金銭的ハードルが高い。
バーストアクセスでダウン…?まじかよ。。。**サーバーレス** って素敵なワード… :star2:
# 気になったお話
それぞれわかりやすそうな記事を貼り付けていますが公式のものは各記事からリンクで飛んでください :pray:
– [Lambdaの実行時間の課金単位が1ミリ秒に短縮されました](https://dev.classmethod.jp/articles/lambda-billed-duration-1ms/)
– [RDS ProxyがGAされました!!](https://dev.classmethod.jp/articles/rds-proxy-ga/)
– [Lambda 関数が VPC 環境で改善されます](https://aws.amazon.com/jp/blogs/news/announcing-improved-vpc-networking-for-aws-lambda-functions/)
– [Lambdaのメモリ割り当てを自動で最適化!!AWS Lam
【AWS S3】「バケットを削除する十分なアクセス許可がありません」のエラーが出た
#エラーが発生
S3のバケットを削除しようとした所「バケットを削除する十分なアクセス許可がありません」のエラーが発生した。
![スクリーンショット 2021-01-03 9.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449478/b31d30ad-cdac-d286-6c4a-c448448c5f88.png)#手順
該当バケットのアクセス許可を選択する。
![スクリーンショット 2021-01-03 9.58.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449478/cff312d7-aa82-5cf1-b5ae-1009a2ba7647.png)
バケットポリシーの画面に行き、s3:DelteBucketのEffectがDenyになっているか調べる。確認すると削除権限が拒否されていたので、今回削除できなかったようだ。特に必要ないバケットポリシーなので削除した。
![スクリーンショット 2
Floating IP とは
## 勉強前イメージ
EC2インスタンスのIPがどうとかってイメージだけど
なにするかはわからん。## 調査
### Floating IP とは
AWSのEC2を使ったデザインパターンの一種で、
何らかの理由でEC2インスタンスを停止させたい場合でも停止時間を短くサーバの切り替えができるパターン### 構成
サーバを落としたいとき、ElasticIPを付け替えることによってEC2インスタンスへのアクセスをなくす。
似たようなやり方でDNSの向き先を変更する方法があるが、TTL値を気にしないといけないしアクセスが0になることはあまりない(TTL値の関係)
ElasticIPを付け替えることでTTL値を気にせずとも別のEC2インスタンスに任せることができる
また、ElasticIPは `AZ(アベイラビリティゾーン)を超えて設定することができる` ので、AZの障害があっても対処することができる![Untitled Diagram.drawio – diagrams.net 2020-12-29 16-19-03.png](https://qiita-image-sto
AWSCodebuildでビルドする
## 構成
– ほぼそのまま使える
– Githubと連携するときは、AWSアカウントをGithubで許可する必要あり
– これはAWSからGit連携のボタンを押したときに画面遷移するので1アカウントに付き1回やれば良い模様
– https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/codebuild_project“`hcl
locals {
TENANT_ID = “xxxxxxxx”
}resource “aws_s3_bucket” “manual” {
bucket = “manual”
acl = “private”
}resource “aws_codebuild_project” “manual” {
name = “manual”
description = “”
build_timeout = “60”
queued_timeout = “480”
source_version =
データの分析と前処理を簡単に! AWS Glue DataBrew
## はじめに
データを分析したり機械学習で学習させたりする前に、たいてい欠損値の補完や不要な列の削除などの前処理が必要です。ここでは、AWS Glue DataBrew を使ってデータの分析と前処理をする方法をご紹介します。## データの分析
[Titanic](https://www.kaggle.com/c/titanic) のデータを使ってデータの分析をやってみます。
AWS コンソールにログインして DataBrew のコンソールにアクセスします。
![スクリーンショット 2021-01-02 19.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315319/bedcb408-5884-23e9-9141-87522da1d895.png)### データセットの作成
コンソール左側のメニューからデータセットを選択すると、ファイルを選択して直接アップロードしたり、Amazon S3 に保存してあるファイルを指定したり、その他のデータソースを選択してデータセットを作成することが
TerraformでAWS AppMeshを使ってECS Fargateのサービスを統合する(その2 バックエンドサービス通信編)
# はじめに
AWS AppMesh記事第2弾。
[前回の記事](https://qiita.com/neruneruo/items/b4aa8a8f4a7460b06608)の続き。今回は、前回記事のフロント側サービス(サービスA)にも AppMesh を適用して、バックエンド通信も含めて統合することを目指す。
前回に引き続き、本記事を書いている 2021/1/2 時点で AWS AppMesh はまだまだ発展途上なサービスであり、情報が変わる可能性があることはご了承いただきたい。
# バックエンドサービス通信編で目指す構成
前回の構成を以下のように変更する。– 前回の構成
![figure1_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111314/6f26bd00-6352-5019-4c22-0f0ba1a0f4dc.png)
– 今回の構成
![figure2.png](https://qiita-image-store.s3.ap-northeast-1.amazon
Jets触ってみた(ruby serverless)
# Jetsとは?
rubyをサーバーレスで動かせ、なおかつRailsライクにコードがかけるフレームワークです。
DBとしてRDBとDynamoDBの両方に対応されている。(今回はRDSと組み合わせました)
=> RDBはORマッパーとしてActiveRecordが採用されているので本当にRailsのようにかけました
https://rubyonjets.com/# 背景
Railsは使い慣れているけどEC2なりFargateなどの料金を地味に取られ続ける。。
=> 個人開発ではなるべく金額下げたいなぁというお気持ちServerless Frameworkを利用してlambda x rubyを試してみる
=> lambdaとRDSの相性が悪いがDynamoよくわからん…(個人開発としてはこれも頑張って勉強したい :muscle: )ちょっとした個人開発用にRailsをサーバーレスで動かせないかなぁ。。。。
そんな時に二つの記事に初めまして
[「Lambda-RDS」パターンももう怖くない!?フェイルオーバーももっと早くなるよ! RDS Proxyがプレビュー公開されまし
Pynamodbについて調べてみた
#Pynamodbとは
boto3のラッパーライブラリです。
boto3で書くと複雑になってしまうところをシンプルにかけてしまいます。
[ドキュメント](https://pynamodb.readthedocs.io/en/latest/tutorial.html#defining-a-model)にはPynamodbってこんなことまでサポートしてるんだぜぇ!と書かれてます。>But why stop there? PynamoDB also supports:
>
・Sets for Binary, Number, and Unicode attributes
・Automatic pagination for bulk operations
・Global secondary indexes
・Local secondary indexes
・Complex queries[ライブラリの中身](https://github.com/pynamodb/PynamoDB)を読みながら各項目について私なりに解釈していきます。
#Sets for Binary, Number,
AWSを使ってインフラの基礎をさくっと学習してみた
##前置き
この記事の参考書籍はこちらです
>[『Amazon Web Services 基礎からのネットワーク&サーバー構築』](https://www.amazon.co.jp/Amazon-Web-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%EF%BC%86%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88-%E5%A4%A7%E6%BE%A4-ebook/dp/B084QQ7TCF)こちらの書籍の内容は、AWSを使ってWordPress&MySQL(MariaDB)環境のブログサイトをインターネットに公開するという工程で「自分でネットワークやサーバーを構築できるようになること」を目指す内容です。
『基礎からの』というタイトルはその通りで、インフラに関するすごく初歩的な内容の説明がかなーり
データの分析と前処理を簡単に! Amazon SageMaker Data Wrangler
## はじめに
機械学習モデルを学習する前に、たいてい不要な列を削除したり欠損値を補完したりなどのデータ前処理が必要です。Amazon SageMaker Data Wrangler を使うと、データの分析や前処理を GUI ベースで行い、適用した前処理を行うソースコードを Export して流用できるようにしたり、SageMaker の他の機能に組み込んだりすることができます。## データの分析をやってみる
[Titanic](https://www.kaggle.com/c/titanic) のデータを使ってデータの分析をやってみます。
Amazon SageMaker Studio を開き、Launcher を表示します。New data flow(以下の図の黄色い矢印部分)をクリックして、SageMaker Data Wrangler を開始します。Amazon SageMaker Studio のセットアップ方法については [こちら](https://qiita.com/mariohcat/items/d8688d2a73517a0d8e1c) をご参照ください。
![ス
TerraformでAWS AppMeshを使ってECS Fargateのサービスを統合する(その1 基本編)
# はじめに
コンテナでマイクロサービスが増えてくると様々な問題に出くわし、それを解決する一つの手段がサービスメッシュであり、AWS でのマネージドなサービスメッシュが AWS AppMesh である。↑の説明だけでは「なんのこっちゃ」な感じではあると思うので、前提知識として、AWS Developers Summit 2020の以下のスライドと動画を見ておくと良いかと思う。
– [サービスメッシュは本当に必要なのか、何を解決するのか](https://speakerdeck.com/toricls/service-meshes-do-we-really-need-them-what-problems-do-they-solve)
また、AppMesh の基礎については以下のサイトが概念として分かりやすく説明されていたと思うので、これもまた見ておくと良い。
– [[AWS] AWS AppMeshのSample Appを用いた動作検証](https://dx.nissho-ele.co.jp/blog/aws-aws-appmesh%E3%82%92%E5%8B%95%E3%
DockerをAWSで立ち上げる初学者へ
# 前提
– Dockerについてある程度理解がある
– 初学者(むしろ私が初学者)向け# ゴール
AWSでDocker環境を立ち上げるためにどのような方法があるのかを知り、
次のステップへの足がけになる。# なぜAWS?
別にAWSにこだわりがあるわけではなく、自社サーバーでDockerを動かす時のつらみです。
本番環境でアプリケーションを動かす場合には冗長構成を取ることが多いです(取られていないとなかなか…)
これを手動で行う場合、Dockerをn回起動して、プロセスが死んだらまたsshしてDocker起動して…みたいな運用が始まります。
そこでオーケストレーション層を入れることが検討されます。
この層ではDockerをnプロセス立ち上げてバランシングする。もしもプロセスが死んだら新しいプロセスを起動する。デプロイの時にはローリングアップデートしてといったことをやってくれます。
ここで一つの問題に当たります。
「オーケストレーションしてくれているプロセス(マスター)が異常をきたした時、サービス全体のデリバリーが危うくなる。」
なので手動でオーケストレーションを行う時
Elastic Beanstalkで簡単にテスト環境を立てる手順
# 状況
久々に触って少し迷ったところがあったので備忘録として書いています。
wordpressのスケーラブルな環境を簡単に立ててみます。
以下の手順はあくまでもテスト環境でドメインの設定などは含みません。
今回は管理画面ぽちぽちで行けます。この手順でテスト環境を用意すれば、RDSのインスタンスタイプを
変更した際に、どのくらいダウンタイムが出るか?などの
beanstalkの操作や、運用時にテストして動きを確認したい場面などに使えると思います。# 構成
基本的に色々な構成が組めますが今回は以下のような形にします。
[RDSをbeanstalk管理外にするやり方](https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/php-hawordpress-tutorial.html)もあるようです。
![cojpletsreform V2 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169482/f3f81ffb-6e36-
T4gインスタンスにIPv6を有効にしてSoftEther VPN Server を構築する
SoftEther VPN Serverをなるべく安く構築したいと思い、AWSのT4gインスタンスに構築してみました。IPv6も使えるようにしています。
# IPv6 CIDRの追加とルートテーブルの設定
EC2へインスタンスを構築する前に、VPCでIPv6を利用できるようにする必要があります。### VPCへIPv6 CIDRを追加
VPCコンソールのVPCを開き、「CIDRの編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/776880/fd9a9926-a163-7150-56b0-0d2b5124e784.png)
「新しいIPv6 CIDRの追加」をクリックし、Amazon提供のIPv6 CIDRブロックにチェックが入っている状態で「CIDRの選択」をクリックすると、VPCにIPv6 CIDR(/56)が割り当てられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon
Amazon RDSにおけるrdsadminユーザとは何者か
Amazon RDSにてAurora(MySQL)クラスタを構築し、そのログを参照していたところ、
rdsadmin というユーザが多数のクエリを発行していることを確認した。
このユーザアカウントの正体がよくわからなかったので何者か調べてみる。## AWSドキュメントに見る rdsadmin
Amazon Auroraドキュメントの [Amazon Aurora MySQL でのセキュリティ](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Security.html) には、以下のような記載がある。> 各 DB クラスターに管理サービスを提供するために、DB インスタンスの作成時に rdsadmin ユーザーが作成されます
ということで、 rdsadmin はその名前の通り AWS マネージドサービスとしてのアカウントだとわかる。
残念ながらここに記載している管理サービスとは何かの説明はないので
具体的にどのような動作を行うのかはわからない。
また、Aurora(M
AWS認定 ソリューションアーキテクト – アソシエイト(SAA-C02)でやっておいたほうがよいこと
今年中に合格する目標でしたが、仕事自体の忙しさや新型コロナによる影響で、試験を受けるのが2020年12月19日まで延びてしまいました。
(ただの言い訳です)とはいえ年内に合格するという目標は達成できました。
今回試験を受けたのですが、こんなことをやっておけばよかったと思うことがたくさんありましたので、これから試験を受けられる方の参考になればと思い、書き残しておきます。##AWSの実務経験
セミナーや勉強程度ではAWSを触ったことがあるものの、実務としてAWSを使用することになったのは、ほんの2ヶ月前くらいです。それまではVPC、EC2、S3、RDSの簡単なものを構築したことがあるレベルなので、とても実用的なレベルではなかったと思います。
2020年10月から仕事で実際にサーバ構築を開始しましたが、それでもEC2、ELB、Autoスケーリング、S3、RDS、Codeシリーズを触っていたレベルで難しい要件もほとんどない案件であったため、AWSの基本的なことしか知らないレベルでした。
##勉強期間
資格を取るぞと決めてから勉強を始めるまでに少し時間がかかったと思いますが、今年の3月
Dedicated Instance と Dedicated Hosts の違い
## 勉強前イメージ
AWS側のハードウェアが自分のアカウントだけなのかそうじゃないのか、のイメージ。
ただ、2つの違いはわからない## 調査
### 共通すること
– AWSでアカウント専用の物理サーバにインスタンスを起動することができる
– コンプライアンスなどで物理サーバ専有が必要なアカウントに適している### Dedicated Instance とは
EC2インスタンスはAWS側で任意の物理サーバの上で起動する、
その為、物理サーバ上のインスタンスには別アカウントのインスタンスも存在する。
しかし、ソフトウェアのライセンス等で物理サーバを専有したい場合があり、その際に使用する。
`別アカウントのEC2インスタンスが同じサーバ上で起動しないことを保証する` のが Dedicated Instance です。### Dedicated Hosts とは
Dedicated Hosts は Dedicated Instance の上位版なやつです。
Dedicated Instance では、`別アカウントのEC2インスタンスが同じサーバ上で起動しないことを保
RubyでAmazon Textractを使ってみよう
Amazon Textractを使ってみたい方のために、なんとなく実行できるコードを紹介します。
あまり世の中にAmazon Textractを利用したRubyのサンプルコードがなかったので書いてみました。
有用なコードではありませんが、RubyでAmazon Textractをとりあえず利用してみたい方には参考にしていただけるのではないかと思います。## 諸注意
– Amazon Textractは[有料のサービス](https://aws.amazon.com/jp/textract/pricing/)です。ちょっと触ってみるだけなら無料枠でおさまるとは思いますが、実行しすぎにはご注意ください。
– 2021年1月2日現在、Amazon Textractでは日本語を読み取ることはできません。## 必要なgemをインストールする
– aws-sdk
## Amazon TextractのClientクラスインスタンスを生成する
リージョンにバージニア北部を指定しているのは、まだ東京リージョン(ap-northeast-1)では提供されていないためです。
これを省略す
AWS SDK for JavaScriptとDockerでAWS(S3、DynamoDB)のローカル開発をやってみる
# はじめに
ITニュースを漁っていると情報が目に入らない日はないくらい急速に拡大を進める__AWS(Amazon Web Services)__ですが、無料枠があるとはいえ中々手を出しにくいものかと思います。本稿では、AWSの提供するサービスの中でも使用頻度が高そうな__S3(Amazon Simple Storage Service)__と__DynamoDB(Amazon DynamoDB)__をDockerを用いてローカルで開発してみた内容について記載していこうと思います。
# 実行環境
– Windows10 Pro
– Docker Desktop for Windows (WSL2)
– Node.js v14.15.3 (Vue CLI 3) ※必須ではない# 主要技術概要
– AWS SDK for JavaScript:AWSのサービスを使用するためのJavaScriptライブラリ
– S3:AWSが提供するストレージサービス。
– DynamoDB:AWSが提供するフルマネージドNoSQLデータベース。Key-Value構造。# 開発準備
Docke
【メモ】みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!
## メモです
みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!:書籍案内|技術評論社## 第1章 AWSの基礎知識
– クラウドとは
– ITインフラの歴史
– メインフレームからクラウドの時代へ
– AWS のはじまり
– クラウドの定義
– クラウドの特徴
– オンデマンド・セルフサービス
– 幅広いネットワークアクセス
– リソースの共用
– スピーディな拡張
– サービスが計測可能であること
– クラウドのサービスモデル
– IaaS
– PaaS
– SaaS
– クラウドの