- 1. [AWS] グローバルインフラストラクチャとネットワーク①「リージョンとアベイラビリティゾーン」
- 2. AWSの主要なサーバレスサービス 4選!
- 3. King Gnuの曲の歌詞でAmazon Comprehendの感情分析機能を試してみる
- 4. AWS Athenaでのタイムスタンプの扱い方 まとめ
- 5. AWS認定ソリューションアーキテクト-プロフェッショナル受験を終えて(2020.11)
- 6. 【初心者向け】Rails6で作られたWebアプリをCircleCIを使いAWS ECR・ECSへ自動デプロイする方法②-2 インフラ構築編【コンテナデプロイ】
- 7. AWS〜EC2にRailsアプリのデータベースを作成・セットアップする〜
- 8. kusanagiのAMI ID を AWS CLI で調べて、一撃で起動したい
- 9. 別のAWSアカウントのorganizations,CostExplorerの情報をLambda(python)で取得する方法
- 10. DynamoDBで前方一致検索を実施する
- 11. AWS lambda を使ってWebスクレイピングしたった
- 12. 機械学習でアガベを判定してみた。ノーコードで。
- 13. インフラ未経験のWEB屋がAWS認定SAA-C02を取得するまでのお話
- 14. Linux EC2インスタンスをAWS Managed Microsoft ADへシームレスに参加させる
- 15. AWSを勉強する – ELB
- 16. Amazon Elasticsearch serviceのsnapshot取得してリストア(復元)するまで
- 17. AWSの新サービス「AWS Network Firewall」を早速使ってみた
- 18. AWSのリザーブドインスタンスについての学び
- 19. AWS Fargate使ってみた
- 20. CloudFormationで、GetAZs で取得できるAZについて
[AWS] グローバルインフラストラクチャとネットワーク①「リージョンとアベイラビリティゾーン」
###リージョンとアベイラビリティゾーン
—####リージョン
AWSがサービスを提供している拠点。
日本では東京リージョン、2021年には大阪リージョンをを立ち上げる予定。—
####アベイラビリティゾーン(AZ)
物理的、ソフトウェア的に自律しているデータセンター[^1]の集合体。####AZの地理的・電源的独立による信頼性の向上
#####地理的独立
・落雷や洪水、大雨などの災害によるAZへの局所的な障害に対して別のAZが影響されないように配置されていること。その為AZ間は数十キロ程度離れて配置されている。
・各AZ間は高速なネットワーク回線で接続されているためAZ間のネットワーク遅延(レイテンシー)は2ミリ秒以下で安定している。
#####電源的的独立
・1か所の停電によりAZ内のすべてのデータセンターが一斉にダウンすることがないように設計されている。
AZの地理的・電源的独立により、リージョン全体でみたときにAWSは障害への耐久性が高くなり信頼性が高いといえる。
####マルチAZによる可用性の向上
複数のAZを利用してシステムを構築すること。耐障
AWSの主要なサーバレスサービス 4選!
# はじめに
今回はAWSのサーバレスサービスを紹介します!ここでいうサーバレスは、AWSがサーバーを管理し、利用者側はサーバ管理不要なコンピューティングサービスを指すことにします。
利用者はサーバー管理不要なので、毎週のように来る脆弱性対応やミドルウェアの設定・管理、スケーリングを考えた構成をしなくて済みます。
また、利用者はビジネスロジックに集中でき、使用した分だけ課金されるので、コスパの良いサービスを作ることができます。# YouTube動画
動画で確認したい方はこちらをどうぞ
[【YouTube動画】 AWSの主要なサーバレスサービス4選](https://youtu.be/YXxwzl0hf7Y)
[![AWSの主要なサーバレスサービス4選](https://img.youtube.com/vi/YXxwzl0hf7Y/0.jpg)](https://youtu.be/YXxwzl0hf7Y)# AWS Lambda
LambdaはAPI呼び出し時やイベント発生時にLambda関数を実行できるサービスです。
Lambda関数はNode.jsやRu
King Gnuの曲の歌詞でAmazon Comprehendの感情分析機能を試してみる
[King Gnu](https://kinggnu.jp/)の曲の歌詞でAmazon Comprehendの感情分析機能を試してみました。曲ごとにpositive順に並べています。ちなみに、ポジティブNo.1の三文小説とNo.2のThe holeは曲を聴く限りポジティブなものには聞こえません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615716/c60f7671-2f55-1e20-0891-4de999bfefeb.png)
AWS Athenaでのタイムスタンプの扱い方 まとめ
# はじめに
AWS AthenaはPresto SQLに準拠しているため数々の時刻関数を使用することができます。
今回は私がよく使うものを紹介していきたいと思います。
[参照元](https://prestodb.io/docs/current/functions/datetime.html)
# タイムゾーンの設定
““sql
SELECT timestamp ‘2020-11-20 01:00 UTC’ AT TIME ZONE ‘Asia/Tokyo’
“““`
> 2020-11-20 10:00:00.000 Asia/Tokyo
“`# 現在時刻を取得
2020/11/20 6:40 (JST)に実行した結果になります。
“`sql
SELECT current_timestamp
“`“`
> 2020-11-19 21:40:27.184 UTC
“`タイムゾーンを指定して現在時刻を取得する
““sql
SELECT current_timestamp AT TIME ZONE ‘Asia/Tokyo’
AWS認定ソリューションアーキテクト-プロフェッショナル受験を終えて(2020.11)
# はじめに
2020/11/14に念願のAWS認定ソリューションアーキテクト-プロフェッショナル(以下SAP)に合格しました。
受験体験記や勉強法に関する記事も多いですが、私自身、今回の受験を通していくつかの気づきを得ましたので、これから受験する方の参考になればと思い、まとめることにしました。# 筆者について
前提として、受験時の筆者について書いておきます。SAP試験は出題範囲が広く、AWS以外のインフラ知識も必要となるため、その人のバックグラウンドによって当然勉強すべきポイントも違ってくると思うからです。## キャリア
– Web系事業会社のインフラエンジニア
– AWS歴は5年程度
– AWS認定ソリューションアーキテクト-アソシエイト(以下SAA)は取得済み
– 自社Webサービス基盤としてAWSを毎日業務利用
– 利用サービス: EC2,RDS,S3,Route53,Lambda,ElastiCache,API Gateway,ECS,CodeDeploy,IAMなど、Webサービスで利用する一般的なもの
– オンプレ経験あり
– サーバはLinux中心だがW
【初心者向け】Rails6で作られたWebアプリをCircleCIを使いAWS ECR・ECSへ自動デプロイする方法②-2 インフラ構築編【コンテナデプロイ】
さて、前回RDSまで作成できたので、今回はALBの作成をしていこうと思います!
この記事ではALBを作成するだけなので、今までの記事を比べるとこの記事は短めです!| タイトル|
|:———–|
| [① 下準備編](https://qiita.com/Kiyo_Karl2/items/5f77d6f59bcddf05c614) |
| [②-1 インフラ構築編](https://qiita.com/Kiyo_Karl2/items/ddf03ac97ab649b63c1d) |
| [②-2 インフラ構築編](https://qiita.com/Kiyo_Karl2/items/dadd70c9dbe83dddcde2) **←今ここ!** |
| 自動デプロイ編(執筆中) |# ALBとは?
ここで、ALBについて説明させていただきます。
ALBとは「Application Load Balancer」の略称で、Webからのアクセスを分散してくれるものです。
一つのWebサイトにアクセスが集中してしまう
AWS〜EC2にRailsアプリのデータベースを作成・セットアップする〜
# この記事を読んでできるようになること
EC2にSSHログインし、**Railsアプリのデータベースを作成・セットアップする**ことができる。今回は、**MariaDBをインストール**していきます(**Amazon Linux 2には、デフォルトでMariaDBがインストール**されているため)。ローカル環境のデータベースがMySQLの場合でも、問題なく動作します。
また、AWS上にデータベースを設置する方法は、EC2に設置する方法と、RDSを利用する方法がありますが、この記事では、前者の**EC2にデータベースを設置**する手順となります。
# 記事を読むにあたってのお願い
私は**AWSの初学者**で、アウトプットをすることで知識を定着させるためにこの記事を書いています。内容に誤りがある場合は、コメントをいただけますと幸いです。
# MariaDBとは
**MySQLから派生したRDBMS**(リレーショナルデータベースマネジメントシステム)です。**MySQLと高い互換性**があり、MySQLと比べて、**パフォーマンスや堅牢性が高い**という特徴があります。
# データ
kusanagiのAMI ID を AWS CLI で調べて、一撃で起動したい
Kusanagiの最新のAMI IDをCLIで確認してCLIからEC2を起動したい( 2020/11 時点 )
※ AWSマーケットプレイスの ProductCodeId の運用については、オフィシャルがアナウンスしている訳ではないので注意が必要だと思います。将来的に変わる可能性もあるかと。
# AWSマーケットプレイス内を『KUSANAGI』で検索
“`
aws ec2 describe-images –region ap-northeast-1 –owners ‘aws-marketplace’ –filters –filters ‘Name=name,Values=*KUSANAGI*’ | jq .
“`出力内容をみると…
ProductCodeId は
* 239igp26xilrqtgegz3yqea8h
* f18wc0igqjhsxwoxouogwqb8m
の2つあり…
`f18wc0igqjhsxwoxouogwqb8m` の方が起動したい `KUSANAGI for AWS (WordPress)` を含んでいました。![スクリ
別のAWSアカウントのorganizations,CostExplorerの情報をLambda(python)で取得する方法
#結論
下記ドキュメントを参照。。。。。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lambda-function-assume-iam-role/読んでも全然わからん状態なので、
取得したい情報があるアカウント(アカウントA)と
それを渡したいアカウント(アカウントB)がある状態でやってみた##アカウントA側の処理
####1.アカウントAでlambda用のロールを作成する
####2.ロールに情報を取得するための必要なポリシーをアタッチ
CostExplorerFullAccess、AWSOrganizationsFullAccessなど####3.ロールの概要の信頼関係タブの信頼関係の編集を押す。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/878032/cb42f127-4b43-b700-f06d-ac9c7186d1c1.png)####4.下記ポリシーを張り付け、更新する。
DynamoDBで前方一致検索を実施する
#はじめに
便利で何より安いけど何かと検索についてはあんまり使い勝手の良くないDynamoDBちゃん。今日はそれで前方一致検索をする方法を考えたのでまとめておきたいと思います。事前に言っておきますがScanを使うので使いすぎにはご注意。#最初に実際にLambdaにぶち込んだソースコードを
“`python:lambda_function.py
import json
import boto3
from boto3.dynamodb.conditions import Attrdef lambda_handler(event, context):
dynamoDB = boto3.resource(“dynamodb”)
table = dynamoDB.Table(event[“type”])
title = event[“title”]
fin = title[0]+chr(ord(title[1])+2)queryData = table.scan(
FilterExpression = Attr(“Title”).
AWS lambda を使ってWebスクレイピングしたった
# Background
[AWS Lambda を使ってFizzBuzzしたった](https://qiita.com/satsukiya/items/f8fae1b4fccae0430985)の続き。
今回はスクレイピングで外部のWebページからデータを取得してみた。# AWS Architecture
![archtecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/92a0214d-37f3-2125-e1ed-f89bc196b532.png)– S3(データ保存)
– AWS Lambda(データ処理)
– Amazon EventBridge(定期実行)の3つのサービスを使っています。
# Setting
### S3
データ保存用のバケットを作成します。
機械学習でアガベを判定してみた。ノーコードで。# はじめに
皆さん植物は好きですか?僕は大好きです。特に**アガベ**という多肉植物が好きで、好きが講じて海外からアガベを小口輸入してオリジナル鉢と合わせて販売しています。D2Cによりinstagramさえあれば誰だってブランドを立ち上げられるいい時代になりました。
## 足元に転がった大量のアガベの写真を整理したい
さて本業の傍らで運営している中で困っていることの一つがストックしているアガベの管理です。中でも売れ筋なのがコンパクトで型が良い台湾アガベ。ただ台湾のチタノタ系は独自の名称がついた株が多数存在していてしかも形がよく似ているんです。例えば下の写真
左はみんな大好き『agave titanota “白鯨(はくげい)”』。右がみんなの憧れ『agave titanota “Caesar(
インフラ未経験のWEB屋がAWS認定SAA-C02を取得するまでのお話
# 前書き
実務としてインフラ領域に触れたことなかった僕ですが、
AWS認定ソリューションアーキテクトアソシエイト(SAA-C02)に一発で合格することができたので、勉強開始からの感想を記してみました。
インフラ何もわからなくても興味とやる気があれば受かるってことが伝わればいいなあ# 受験動機
・インフラに興味あったのでAWS通じて学びたかった
・肩書きがないので資格が欲しかった# マイスペック(勉強開始日時点)
・社会人2年目、WEB屋始めて1年目くらい
・バックエンドやフロントエンドのコーディングはなんとなくできる(いわゆるローカル上だけ、ローカルとかその概念すらわかってなかったですよ当時)
・インフラやネットワークの知識0(サーバとかIPとかDNSとか概念からよくわからん、ほんとにほんとに)
・AWSの存在を知って3ヶ月目くらい# 勉強期間
トータル4ヶ月くらい
勉強開始から受験までは約9ヶ月(有効期間3年と聞いて途中やる気なくした)# 勉強の流れ
書籍①(後述記載)を1周読み進める。
↓
書式②を読み進める。
↓
Udemy①をちょっと進めてやる気を無
Linux EC2インスタンスをAWS Managed Microsoft ADへシームレスに参加させる
Linux EC2インスタンスをAWS Managed Microsoft ADに参加させてIDの統合管理をしている環境があるのですが、今までインスタンスが増える度に手動でAD参加コマンド実行、パスワード入力という手順を実施してインスタンスのデプロイに非常に時間がかかっていました。加えてEC2 AutoScalingの検討しておりこのパスワード入力の壁越えなきゃなーと調べていたら、今年に入りシームレスなAD参加がサポートされていました!
[Amazon EC2 for Linux インスタンスを AWS Directory Service にシームレスに参加させる](https://aws.amazon.com/jp/about-aws/whats-new/2020/08/seamlessly-join-amazon-ec2-for-linux-instance-to-aws-directory-service/)
ということでLinuxインスタンスデプロイ時にAD参加させる方法を検証してみました。
ちなみに、冒頭で触れた今までのAD参加方法はこちら↓↓
[Linux インスタンス
AWSを勉強する – ELB
# ELB(Elastic Load Balancing)
リリースしたサービスが人気で、負荷がかかって来た時、単純にスケールアップすることでも対応できるが、インスタンスタイプには限界がある。
また、単一のインスタンスで運用していると、そのインスタンスが停止したときにサービス全体が停止してしまう。(単一障害点)
そのため、ロードバランサーを使って負荷を分散させ、高負荷にも対応するスケールアウトを行う必要がある。
ELBは、ロードバランサーのマネージドサービス。#ELBのタイプ
– CLB(Classic Load Balancer):L4/L7レイヤーでの負荷分散を行う
– ALB(Application Load Balancer):L7レイヤーでの負荷分散を行うWebSocketやHTTP/2に対応している。
ALBはパスルーティングによりCLBより容易にバランシング構成が可能。
ALBは一つのバランサーでより複雑な構成に対応できる。– NLB(Network Load Balancer):L4レイヤーでの負荷分散を行う。HTTP(S)以外のプロトコル通信の負荷分散
Amazon Elasticsearch serviceのsnapshot取得してリストア(復元)するまで
Amazon Elasticsearch Service(以後esと記載)のsnapshotを取得する際、権限まわりで詰まったので、まとめてみる。
利用環境はMacです。## 【背景】
– esのsnapshotを手動で取得するのってどんな方法でできるんだろう。
– なんかちょっと権限まわりややこしそうだから一回触ってみよう
– 取得と復元でどれぐらい時間がかかるかもできたら測ってみようこんな課題感で手を動かし始めました。
## 【実際にやったこと】
– [公式ドキュメント](https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-managedomains-snapshots.html)を参考にする
– [【Amazon Elasticsearch Service】 手動スナップショットからリストアする方法](https://dev.classmethod.jp/articles/restore-from-amazon-es-manual-snapshot-ja/)を参
AWSの新サービス「AWS Network Firewall」を早速使ってみた
# はじめに
2020/11/17のアップデートで**「AWS Network Firewall」**という新しいサービスが登場しました。
本記事ではこのサービスの特徴について調べ、使い所を検討してみます。# これまでのサービスとは
これまで、AWSで外部からのアクセス制御・保護と言えば以下のサービスがありました。* Amazon Elastic Compute Cloud (EC2) インスタンスレベルでアクセス制御する**Security Group**
* Amazon Virtual Private Cloud (VPC) のサブネットレベルでアクセス制御する**Network ACL**
* Amazon CloudFront、Application Load Balancer (ALB)、Amazon API Gatewayで実行されているWebアプリケーションを保護する**AWS Web Application Firewall (WAF)**
* 分散サービス拒否(DDoS)攻撃から保護する**AWS Shield**# AWS Network Firewa
AWSのリザーブドインスタンスについての学び
## この記事で書くこと
AWSのリザーブドインスタンスについて学んだことをきちんと残す
体系的なものではなく、断片的な情報になります。 :bow:## リザーブドインスタンスとは?
[AWS公式ページ](https://aws.amazon.com/jp/ec2/pricing/reserved-instances/)
利用するインスタンスの枠を注文することによって、個別で使用するよりも割引を利用できるのでお得になる、という仕組みです。
## 何を学んだ?
リザーブドインスタンスを途中で変更したくなった時にどうしたらいいのか?の答え「え、枠で割引を受けてるんだから、途中で変えられないでしょ。」と思っていました。
が、変えられます。ただ、何でも好きなように変更可能というわけではないです。
[AWS公式ガイド | リザーブドインスタンス の変更](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ri-modifying.html)
自分の今回学んだケースは、インスタンス**サイズ**の変更が可能
AWS Fargate使ってみた
こんにちは。むんです:grinning:
AWS FargateでDockerを動かしてみたので、備忘録です。## 目次
– AWS Fargateとは?
– Fargateでコンテナを作る
– まとめ##AWS Fargateとは?
端的に言うと、サーバーレスでコンテナが使える技術。##Fargateでコンテナを作る
AWS公式チュートリアル
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/fargate-getting-started.html#####1. Amazon ECS コンソールの初回実行ウィザードを開く
#####2. ナビゲーションバーから、米国東部(バージニア北部) リージョンを選択する
現在、Fargateは米国東部(バージニア北部) リージョンでのみ、使える機能なようです。
#####3. コンテナを選択する
今回はnginxを選択しました。
!
CloudFormationで、GetAZs で取得できるAZについて
EC2-VPCでは、デフォルトのサブネットがあるアベイラビリティーゾーンのみを返します。 らしい。
“`
EC2-VPC プラットフォームでは、Fn::GetAZs 関数はデフォルトのサブネットがあるアベイラビリティーゾーンのみを返します。デフォルトのサブネットがあるアベイラビリティーゾーンがない場合は、すべてのアベイラビリティーゾーンを返します。
“`先に デフォルトのサブネット を作っておくこと
“`
aws ec2 create-default-subnet –availability-zone ap-northeast-1[a|c|d]
“`## 参考URL
– https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getavailabilityzones.html