- 1. 【AWS】EKS on Fargateでゲームをデプロイしてみたので解説してみる(with Ingress Controller, 2048)vol.2
- 2. AWSソリューションアーキテクトプロフェッショナル資格(SAP)に合格しました
- 3. AWSのLambdaでタグのついているインスタンスの情報を辞書形式で取得する方法
- 4. [AWS] AWS Certified Solutions Architect – Professional合格した!やほーーーん!
- 5. AWSアカウント作成時にSecurity Hubのマルチアカウント設定を行う
- 6. リンクを投稿できるだけのサイトを作ってみた
- 7. 通勤時間でAWS Certified Developer Associateを取得しよう!
- 8. 死まであと何日か表示するWebアプリ(ただのタイマー)を作ってみた
- 9. MFAとAssume IAM Roles を使って環境でAWS SDKをGoで操作する
- 10. 【AWS EC2】Amazon Linux2にMySQLのclientだけをインストールしてRDSに接続する方法
- 11. Apache Airflow on kubernetesのおためし構築(とりあえずたてる編)
- 12. AWS Lambda で実行できるコマンドを作成する環境を作ってみた
- 13. AWS Athena API利用時にQUEUEDステータスが数十秒も引っかかることがある
- 14. AWSの資格についての整理・ソルーションアーキテクト受験準備
- 15. QuickSightのEmbedのバックエンドフロー
- 16. CloudMapperをDockerで動かして、AWSのネットワーク構成を可視化しよう。
- 17. centos7 に Laravel6をインストール
- 18. サーバーレスとは
- 19. OPTIONSにAccess-Control-Allow-Originが付けれない環境でのPOST送信時のCROS対処法
- 20. AuroraServerlessへcsv形式で一括データ挿入する
【AWS】EKS on Fargateでゲームをデプロイしてみたので解説してみる(with Ingress Controller, 2048)vol.2
# はじめに
以前に前編の記事を書きました。
[【AWS】EKS on Fargateでゲームをデプロイしてみたので解説してみる(with Ingress Controller, 2048)vol.1](https://qiita.com/hesma2/items/b575d52b592350e63d95)本当は1つの記事にまとめる予定でしたが、
記事が長くなってしまったことと、作成に時間がかかってしまったこと(主に検証)から、やむなく2部制とさせていただいておりました。前編の記事では、EKSクラスターとFargateプロファイルを作成するところまでを解説しました。
後編では、 `kubectl` コマンドでサービスをデプロイするところを解説していきます。よろしくお願いします!
# 当記事でのゴール(再掲)
EKS on Fargateを使って、
2048ゲームをデプロイして遊べるようにしたいと思います。2048とはこのようなゲームです。
きっと皆さん見たこと、遊んだことのあるゲームだと思います。![2048_play.gif](https://qiita-i
AWSソリューションアーキテクトプロフェッショナル資格(SAP)に合格しました
# はじめに
先日(3/29)、かねてからの目標だったAWS Certified Solutions Architect – Professional(SAP)を取得しましたので、いつものように勉強した内容や試験の所感を残しておこうと思います。
(今回に限って言うと、試験自体よりもそもそも試験会場が営業しているかが一番の心配事でした……)※過去の記事
[AWS SAAに受かった話](https://qiita.com/kkino1985/items/85bcfa50686fcfe69c56)
[AWS SOAに受かった話](https://qiita.com/kkino1985/items/295509d3d94c726ae56a)
[AWS DVA(とCLP)に受かった話](https://qiita.com/kkino1985/items/8f3db5e102876cca47b1)# 勉強期間
前回DVAを受けたのが3/1なので、SAPとして確保したのは約1ヶ月ぐらいです。
とはいえ、AWSの資格試験は重なる部分も多いので、DVAとその前のSOAも合算すると3.5ヶ月
AWSのLambdaでタグのついているインスタンスの情報を辞書形式で取得する方法
EC2インスタンスを[自動起動](https://ponsuke-tarou.hatenablog.com/entry/2020/02/18/100804)したり[自動停止](https://ponsuke-tarou.hatenablog.com/entry/2020/03/30/000120)したりするLambdaをつくるときに使います。Lambdaをつくってもすぐに忘れるので残します。
# Lambda関数
– ランタイム : Python3.8“`py
# -*- coding: utf-8 -*-from __future__ import print_function
import boto3
# インスタンスがあるリージョンを指定する
REGION_NAME = ‘us-east-2’
# インスタンスの状態をリストで指定する
STATE_LIST = [‘running’,’stopped’]
# インスタンスにつけているタグの名前をリストで指定する
TAG_LIST = [‘Name’,’AutoStop’]def get_instance_lis
[AWS] AWS Certified Solutions Architect – Professional合格した!やほーーーん!
##はじめに
この度(2ヶ月前)AWS Certified Solutions Architect – Professional 試験に合格しました!
だれかの役に立つことを祈り書きました!!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205092/ce470e3c-bf3e-9563-aafa-f2466e8b9483.png)##私のレベル感
現在新卒三年目の文系SEで、AWSの経験は1年とちょっとくらいになります。
AWSでは主にEC2、IAM、RDS、Route53、S3を主に使用していて、趣味の範囲でCode三兄弟やElastic Beanstalkを触ってる感じでした。
2019年の4月に受けたときはスコア:638で落ちました・・・(このときは一生受からんやろこれ・・・と思ってました)##試験内容
これ読む人はだいたい知ってると思いますが試験については下記のような感じ“`
プロフェッショナル試験は、AWS におけるシステムの管理および
運用に関する 2年以上
AWSアカウント作成時にSecurity Hubのマルチアカウント設定を行う
## Security Hub のマルチアカウント設定
[AWS Security Hub](https://aws.amazon.com/jp/security-hub/) は AWS環境全体のセキュリティとコンプライアンスの状況を確認可能なサービスです。
Security Hubでは、特定アカウントをマスターアカウントとし、他のアカウントを招待して
マルチアカウントの親子関係を組むことができます。
以下のようにマルチアカウント設定を行うと、メンバーアカウントの結果をマスターアカウント側で
確認できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/7e8f9b73-2d2f-3c05-9aa6-35735eadc2a4.png)
この時、マスターとなるアカウントは AWS Organizations のマスターアカウントである必要はありません。
また組織外のアカウントを招待して連結することも可能です。
通常、セキュリティ用のアカウントを用意し、そちらに統合
リンクを投稿できるだけのサイトを作ってみた
aws amplify の勉強を兼ねてリンクを投稿できるだけのサイトを作ってみました。
https://techlink.d2iaia9h9jeav.amplifyapp.com/
![techLink.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202548/d2009e3f-566f-2732-f52c-6bd170a8e3b8.png)
ページ下のフォームから登録できる。
タグをクリックすると、タグ検索ができる。github : https://github.com/opvelll/techLinkList
通勤時間でAWS Certified Developer Associateを取得しよう!
#1. はじめに
こんにちは。
この度、2月10日に**DVA(AWS Certified Developer – Associate)**に合格致しました。
今回の記事では、今後DVAへ挑戦される方向けに私が参考にしたことや勉強方法などを共有させてください。#2. 私について
新卒でIT企業に入社しWebアプリケーションエンジニアとして2年目となります。
就職前は農学を学ぶ教育機関にいたためどちらかといえばITは未知でした。入社以来の主な取得資格は下記です。
2019年
・**AWS 認定ソリューションアーキテクト – アソシエイト**
・**Oracle認定JavaプログラマSE 8 Silver**
・**情報処理技術者(基本情報技術者)**
2020年
・**AWS 認定デベロッパー – アソシエイト**業務ではAWSには触れておりません。
社内のAWS研修のトレーナーとして後輩への講義を行う機会や自学自習でAWSのサービスを使う機会はありました。今回DVAを取得しようと考えたのは、せっかく後輩に教えるのですから先輩として資格の一つでも取って「私も取れる!」と感
死まであと何日か表示するWebアプリ(ただのタイマー)を作ってみた
![wanitimer3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202548/5acc8148-957f-79cf-2d66-a02e416ccdf7.png)
AWS Amplifyの勉強を兼ねて、100日後に死ぬワニのようなタイマーを作ってみました。サイトURL: https://wanitimer.d2v7szbbzh7lnj.amplifyapp.com/ (いずれ消します)
github: https://github.com/opvelll/wanitimerサイトにアクセスすると、サインイン画面になります。create accountからアカウント登録できます。
メールアドレスに認証コードを送信する認証方法になっているので、コードを入力する必要があります。
サインインするとタイマーを作成できます。開始日と期間を設定して作成を押します。
![wanitimer2.png](https://qiita-image-store.s3.ap-northeast-1.amazon
MFAとAssume IAM Roles を使って環境でAWS SDKをGoで操作する
# はじめに
マルチアカウント運用でAssumeRoleするかつ、MFA入力必須な場合、awscli等の操作も含めてややこしいですよね。awscliはともかく、AWS SDK for Goを使った上記の例が少いように見受けられたので残しておきます。
# 結論
MFAとAssume IAM Roles を使って環境でAWS SDKをGoで操作する方法は…
* `AssumeRoleTokenProvider` を用います
* MFAトークンを標準入力する場合は `stscreds.StdinTokenProvider` を利用すると良いです
* そうすると、下記のような入力を求められるようになります![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6463/d76b4c3b-9558-1bed-df28-e12fc4e48c21.png)
# コード
例として、LambdaのCloudWatchLogsのLogStreamを検索するコードです。
“`go:As
【AWS EC2】Amazon Linux2にMySQLのclientだけをインストールしてRDSに接続する方法
# 概要
– AWS EC2(AMI: Amazon Linux 2)にMySQLのクライアントだけをインストールしてRDS上のMySQLに接続する# 環境
– AWS EC2
– OS: Amazon Linux 2
– AMI ID: amzn2-ami-hvm-2.0.20200304.0-x86_64-gp2
– RDS
– engine: MySQL Community
– version: 8.0.17# 構築手順
## 1. すでにインストールされているmariadbを取り除く
– Amazon Linux2にはMariaDBがデフォルトでインストールされている
– 干渉したら困るので念のため削除しておく“`console
$ yum list installed | grep mariadb
mariadb-libs.x86_64 1:5.5.64-1.amzn2 installed
$ sudo yum remove mariadb-libs
Removed:
mariadb-l
Apache Airflow on kubernetesのおためし構築(とりあえずたてる編)
# はじめに(読み飛ばしていいよ)
### Executorの選択
AirflowにはExecutorがいくつかありますが、今回使うのは**kubernetes Executor**です。
詳細は省きますが、Airflowには様々なExecutorがあります。 Celery executorを使用してkubernetes上に展開したぜ!というのもありますが、それとは異なるので注意。(まぁ、そもそもkubernetes使っているのにCelery executorを使用する例はなかなか少ないとは思いますが。その時の状況での判断です)### kubernetes Executorの動作(ざっくりと)
– kubernetes ExecutorではAirflowのscheduler部分とwebserver部分がPod化されます。同じPod内でschedulerコンテナ&webserverコンテナで動作させても良いし、別々のPodにしてもいい。基本schedulerやwebserverはmetadatabase DBへ通信しているだけで互いに直接通信しないので。 ※ちなみにスケジュールする
AWS Lambda で実行できるコマンドを作成する環境を作ってみた
いったい何の役に立つねんシリーズ。技術の無駄遣い担当の平野です。いや、今回の役に立つはず。
AWS Lambda で Python や Node のスクリプトを書いていると、「あー、この Linux コマンド使えたら便利なのに」と思うときが時々あります。
ということで、Lambda 用に簡単にコマンドを作成、取り出しできる Docker コンテナを作ってみました。
github:
https://github.com/qualitiaco/build-packdockerhub:
https://hub.docker.com/r/qualitiaco/lambda-build-pack今回は、これの解説と使い方を説明したいと思います。
## AWS Lambda の実行環境
AWS Lambda で動作しているのと同様の Docker Image が AWS から公開されています。
github:
https://github.com/lambci/docker-lambdadockerhub:
https://hub.docker.com/u/lambci
AWS Athena API利用時にQUEUEDステータスが数十秒も引っかかることがある
# 引っかかった話
AWS Athena API(AWS SDK for JavaScript)を呼び出してるLambda関数で**本当にたまにタイムアウトによるエラーが発生**されました。
Lambda関数で設定して置いたタイムアウト時間は40秒で短い時間でしたが、平均2秒±1ぐらいのクエリ時間がたまに40秒を超えるのはおかしいでした。
Athenaの対象データ(S3 Objects)がどんどん増えてAhtenaのクエリが比較的に重くなることはありえますが、速度改善のためパーティショニングも真面目にしているクエリに40秒のタイムアウトに引っかかったのはQuery Running Time (RUNNING)とは違う原因でしょう。
(API呼び出しの前後に時間が秒以上かかるところもありませんでした)
また、AthenaにもAPIごとに 「1 秒あたりのデフォルトの呼び出し数」と 「バーストキャパシティー」のクォータがありますが、これに引っかかったら明確にFAILEDで返してくれるのでこの原因じゃないでした。もっと確認した結果、**たまにQuery Queuing Time(QUEU
AWSの資格についての整理・ソルーションアーキテクト受験準備
# AWSて?
Amazon Web Service
仮想空間にサーバーを建てることが可能なサービス
他社もあるMicroSoft社:Azure, Google社 : GCP ( Google Cloud Plattfrom ) …## なんで使うの?(使ってメリット)
#### 接近性
– 物理サーバーが不要(データーセンター)
– DashBoard(Console)を提供し、操作が便利
– サーバー・HDに詳しくない人もボタン操作でなんとかサーバーは立ち上げる
– 設計によってコスパが良い(Case by Case)
– 拡張性(Scale In, Scale Outが便利)#### 問題ないの?(デメリット)
– サービスの数が多すぎる(2020年1月基準191個のサービスが存在)
– 設定しなきゃいけないの多すぎる
– 設定によってコスパー悪いのがもっと多い
– 自分が運営するサービスがどの組み合わせが良いか誰も知らない
– AWS社も認識し、カウンセリングサービスを運営してる
– 独自の用語が多い(VPCて?ECSて?FARGATEは?) → learning
QuickSightのEmbedのバックエンドフロー
### QuickSightのEmbedのフロー
こんな感じかな。自分用メモ
userArnでいろいろな認証を指定することができサポートしているようだ#### GetDashboardEmbedUrl
https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html
UserArn
Amazon QuickSightユーザーのAmazonリソースネーム(ARN)。QUICKSIGHTIDタイプで使用します。 これは、次のいずれかとして認証されたアカウント内のすべてのAmazon QuickSightユーザー(リーダー、作成者、ま
CloudMapperをDockerで動かして、AWSのネットワーク構成を可視化しよう。
こんにちは。
AWSいいですよね。
でも、AWSって一つ一つのサービスがしっかり役割分担されているので、いざ一つのシステムとしてネットワーク構成図がどうなっているのかをみようとすると頭がこんがらがっちゃうんです、私。そんなとき[CloudMapper](https://github.com/duo-labs/cloudmapper)にお世話になりたくなります。READMEを読んでいただければですが、現在のAWSのネットワーク構成図を自動生成してくれるやつです。
ただ、何度かチャレンジしているのですが、いつも何かが足りなくてうまく動かないんです、私。最近は何をやるにもDockerでやっちゃっているのでローカル環境もあんまり汚したくなくて…CloudMapper公式や他の方々もDockerで動くようにソースコードを公開していたりするんですが、なんでかうまく行かなかったりしたので、今回は自分でDockerfileから作ってみようという記事です。
# 前提
– AWSアカウントがあること
– `SecurityAudit`と`ViewOnlyAccess`の権限をもったIAM
centos7 に Laravel6をインストール
centos7にLaravelを入れるまでの道のりです。
くっそ苦労しました。
たくさんの方の記事を参考にさせていただいた結果、最後に掲載している方々の記事が参考になったので、掲載させていただきます。# 環境
* AWS EC2(t2.micro)
* centos7
* Apache2.4系
* MySQL5.7系
* PHP7.2系
* composer# とりあえず必要なもろもろ
一つずつコマンドでやったほうがいいですが、めんどくさいのでシェルスクリプトにで入れます。
`$ vi hoge.sh`とかでファイルを作成すればよいですね。
`sudo bash hoge.sh`で使えます(`hoge`は適宣変えてください)“`centos_lamp.sh
#!bin/bash#とりあえず必要なものいろいろ
yum -y update #update
yum install -y vim #vim
yum install -y epel-release #epelリポジトリ
yum install -y fish #fishシェル
yum install -y
サーバーレスとは
# 概要
* サーバーレスとは何かの定義と特徴をまとめ、AWSの主なサービスおよびユースケースをまとめました
* 対象読者はサーバーレスの入門者およびサーバーレスで実装してみたいユースケースのある方です# 定義
利用者によるサーバーのプロビジョニングやメンテナンス、耐障害性の確保が不要なサービス
> プロビジョニングとは、必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと
耐障害性は、何か障害が起きたときでもシステムのパフォーマンスを落とすことなくシステムを稼働し続けられる冗長構成のこと## 代表的なサーバーレスAWSサービス
### Amazon QuickSight
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221272/18b98166-9f96-4d09-c93c-c097b1a2da17.png)
クラウド駆動の高速なBI(ビジネスインテリジェンス)サービス### Amazon Kinesis
![image.p
OPTIONSにAccess-Control-Allow-Originが付けれない環境でのPOST送信時のCROS対処法
# はじめに
別ドメインのサーバにブラウザ上からPOSTを送りたい場合に、特定の条件を満たしていないと必ずpreflightとしてOPTIONSを送信を行い、確認がとれた後にPOSTを送信します。
最近使えるようになったAWSのAPI GatewayのHTTP APIでは、CROS設定を行っていてもOPTIONSにはAccess-Control-Allow-Originはつきません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58795/6791735c-b94d-e854-bc09-91120f64616c.png)
そのため、ブラウザ側でPOSTを送信するまえにOPTIONSでCROS設定がされていないと拒否されてPOST送信にまでいきません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58795/2907a716-70b2-2313-dd33-f124e12a92f5.png
AuroraServerlessへcsv形式で一括データ挿入する
S3に置いたcsvファイルのデータをAuroraServerlessにdataAPIを介して挿入するlambda。
“`python
import json
import csv
import boto3
import osrdsData = boto3.client(‘rds-data’)
s3 = boto3.resource(‘s3’)
bucket = s3.Bucket(‘バケット名’)
tableName = “テーブル名”
clusterArn = ‘クラスターARN’
secretArn = ‘シークレットARN’def lambda_handler(event, context):
# S3からファイル取得
bucket.download_file(‘S3上のファイル名.csv’, ‘/tmp/保存時のファイル名.csv’)# 最終的にAuroraServerlessに投げるSQL文
allSqlstr = “”# csv → json変換
with open(‘/tmp/names.csv