Skip to content

Aws

クラウドサービス比較

AWSで構築しているシステムをAzureと並行稼働させることはできるのか?GCPは?という疑問を解消するために調べてみる。

サービス比較

まずはAWS, Azure, GCPのサービス比較。

サービス名先頭の AWS, Amazon, Azure, Cloud(GCP) は省略。

サーバーレスコンピューティング

AWSAzureGCP
LambdaFunctionsFunctions
Java, Go, PowerShell, Node.js, C#, Python, RubyC#, JavaScript(Node.js), F#, Java, PowerShell, Python, TypeScriptNode.js, Python, Go, Java, .NET Core(C#, F#), Ruby, PHP
Lambda@Edge
Node.js, Python
CloudFront Functions
JavaScript

CDN

AWSAzureGCP
CloudFrontContent Delivery NetworkCDN

コードリポジトリ

AWSAzureGCP
CodeCommitReposSource Repositories

CI/CD

AWSAzureGCP
CodePipelinePipelinesBuild

IaC

AWSAzureGCP
CloudFormationResource ManagerDeployment Manager
  • Azure Resource Managerを簡易操作するためのツール、Azure Building Blocksというものもある。

検討

  • FaaSの対応言語が異なっている。共通で使えるのはJava、Node.js、C#、Python。
    • Lambda@Edgeも使っているなら、Node.jsかPythonしかない。
  • CloudFormation の資産を Azure や GCP に移行できるのか
  • Terraformという選択肢もあり
  • サーバーレス中心ならserverless frameworkを検討してもよいかも

参考

WSL2でAWS CLIを使ってS3のフォルダ名を変更する

S3って、マネジメントコンソールからフォルダ名の変更ってできないんですね。。

こちらを参考に。

SurfaceにしてからAWS CLIインストールしてなかったし、せっかくなのでWLS2のUbuntuでやってみます。

公式のDocker版でインストール(というほどのことでもないですが)。

$ docker run --rm -it amazon/aws-cli --version
aws-cli/2.0.29 Python/3.7.3 Linux/4.19.104-microsoft-standard botocore/2.0.0dev33

認証情報入れる。 IAMでアクセスキーを取得して、configureコマンドで設定。

$ docker run --rm -ti -v ~/.aws:/root/.aws amazon/aws-cli configure

動作確認

Read more

AWS WorkSpacesを使う

ChromebookででかいExcelを扱うのに重いので、Windowsなら大丈夫なのか確かめるためにWorkSpacesで試してみる。

Chromebook買ってすぐに一度試した気がするんだけど、なんか前と手順が変わっているような気がするので、 Developers.IOの記事を参考にすすめる。

ワークスペース作成完了のメールが来ないなーと思っていたら、迷惑メールに分類されていた。

Read more

Developers.IO 2019 Tokyo

https://eventregist.com/e/191004-developers-io-2019

1年ぶり2回目の参加です。

去年は秋葉原でしたが、今年は日本橋での開催。 会場が広くなってトラック数も増えてどれを観るか悩みますが、AIとかIaCを中心に見ていきたいと思います。

10:30 11:15 認証の標準的な方法は分かった。では認可はどう管理するんだい?

都元ダイスケ

  • 認証のでファクトはOIDCなど
  • Key(鍵)とLock(錠)の違い
    • リソースにかけるもの(Lock)
    • ユーザーに渡すもの(Key)←狭義の認可
    • keyでlockを解除する(認証)
  • 積極的アクセス制御(NG時に拒否する)
    • Springでいうと @PreAuthorize, @PostAuthorize
  • 消極的アクセス制御(NG時に加工する)
    • 返すときにフィルタリングするとか
  • ISO 10181-3 Access Control Framework
    • 2万円超え
  • ADF
    • ADIを使って判定するファンクション
  • ADI
    • アクセス制御の条件
    • 無数に考えられる
  • アクセス制御の要素整理
    • 操作するヒト(ユーザー)、操作されるモノ(オブジェクト)、操作自体(アクション、パラメータ)
  • アクションごとにアクセス制御を行う
    • AWS SQSも同様
  • 何をADIとして扱うか
    • リクエストしたアクション名
    • ユーザーが持つ権限
    • アクションのパラメータはADIとしないほうが良い
      • アクション自体を分けるべき
  • 事後消極アクセス制御を使わない理由
    • 手間の割に恩恵が少ない
    • うまく動かないときの原因特定が大変
  • リソースごとのアクセス制御
    • オブジェクトのオーナーというADI
  • ACL:アクセス制御リスト
    • リソースが持つプロパティ
  • まとめ
    • ADIはKey、ADFがLock
    • アクセス制御は4つに分類
    • AIDは無数にある
  • おまけ
    • RBAについて
    • 権限は個人ではなく、役職(ロール)につける

11:30 12:15 「今」のAI技術と「3年後」のAI技術のご紹介

清野剛史(せーの)

  • AIで作曲した曲からはじまる
    • Googleアシスタントで認識できた
  • 進化の過程で起こること
    • 環境が突然変異する
      • 適応できるかできないか
      • 環境の変化を読む
  • 現在は第3次ブーム
    • 第1次はコンピューターの性能に限界があった
      • パーセプトロン
      • ニューラルネットワーク
    • 第2次は演算能力が増えた
      • ルールベース(エキスパートシステム)
    • 第3次でさらに演算能力が増えた
      • ディープラーニング
        • ニューラルネットワークの中間層を多段化
  • AWSの定義
    • 機械学習
      • アルゴリズムを学習・育成させること
    • AI
      • ユーザに付加価値を与えるビジネスロジック、サービス
  • AIのビジネスステップ
    • 効率化、自動化
      • 人件費の削減
    • 付加価値
      • 新たな体験の提供
      • 求められる半歩先
      • 熟練者の行動を機械学習して初級者に提供
        • 雪国の車運転とか
    • 多様性
      • 「あなたのため」の価値
        • パーソナライズ
      • ビジネスの種
  • 3年後
    • Ambient Computing
      • コンピュータの存在を感じさせない
      • 機械が機械を操作
    • BMI
      • 脳波を使って操作する
      • リストバンドで計測できるようになってきている
    • EMG
      • 筋肉の動きで操作する
      • 仮想キーボードが実現されている
    • 環境の変化
      • 5G
        • 低遅延、大容量、同時接続
      • LPWA
        • 自由に使える電波帯を使う
        • Amazon Sidewalk
          • メッシュネットワークを構築
      • Project Kuiper
        • 人工衛星を低軌道で飛ばす
      • 量子コンピューティング
        • 0,1ではなく、そのあいだの状態を持つ
  • 10年後
    • AGI(Artifical General Intelligence)
    • 汎用(ジェネラル)AI
      • 「設計」を「学習」する
      • WBAアプローチ
        • 脳全体をシュミレート
        • 脳の各部の動的な連携
  • シンギュラリティは2029年(10年後)

12:30 13:30 CI/CD と Cloud Security ~継続的な脆弱性診断・運用のベストプラクティス~あと Security Consultingの最新情報もしますよ~

エフセキュア 河野真一郎 氏

  • ランチセッション
  • クラウドのセキュリティコンサル、物理セキュリティコンサルもやってる
  • MS-DOS時代からセキュリティやってる会社
  • 自動化セキュリティ
    • F-Secure Radar
      • APIインターフェースが公開されている
      • エージェントインストール不要
      • 動的ページのスキャンは不向き
      • サーバー台数での課金(参考価格)
        • コンテナ1イメージで1サーバー扱い
    • 脆弱性が1つでもあれば攻撃されうる
  • クラウド環境セキュリティコンサル
    • pre-study
  • クラウド環境アンチウィルス
    • 月額1000円以下

13:45 14:30 AWSのすべてをコードで管理する方法〜その理想と現実〜

濱田孝治(@hamako9999)

  • CFnは強い(イメージ)
  • 使いこなしが難しい
  • 使わないことで、AWS利用の効率化の可能性を捨てることになる
  • IaCを理解する
    • コード(テキスト)でインフラを定義する
    • リソースの状態を定義するので、状態が変わらなければ何度実行しても変わらない
    • aws cliは「処理の定義」なので、実行するたびに更新される
    • テンプレートの記述はJSONではなくYAML推奨
  • CloudFormation
    • メリット
      • インフラの管理を簡略化
      • インフラを簡単に複製可能
      • インフラの変更管理が可能
  • CLIで実行する
    • CFnの実行はマネジメントコンソールからとCLIからの2つある
      • コンソール使っていると再現性の担保に問題がある
    • 実行結果を見るのにGUI使うのはあり
  • create-stack, update-stack使わない。deploy使う。
    • コマンドにべき等性がない
    • 関連コマンドが多い
  • スタック名の重複に注意
    • チェンジセットを確認すれば事前に気づける
    • --no-execute-changesetを指定する
  • テンプレート(スタック)の分割
    • 依存関係がファイル名でわかるようにプレフィクス(番号)振る
    • スタック感でパラメータ参照する方法
      • クロススタック参照
        • OutputExportして!ImportValueで参照する
        • 参照があると参照元の削除や変更ができない
      • ダイナミック参照
        • パラメータストアやSecretManagerの値をテンプレートに書く
      • シェルで頑張る
        • クロススタックでexportできないときにcliで取得して加工する
  • 運用上の辛み
    • スタックの作成削除が帰ってこない
      • 何を持て完了とするか
      • サービス定義に不備
        • エラーが出ないでタイムアウトまで待ってしまう
    • 対応していないプロパティ
    • 循環参照
    • Conditions
      • テンプレートで条件分岐を書く
        • 可読性が悪い
        • 環境を分けたいならテンプレート自体分けてしまう
    • 複数人で操作したときの問題
      • ドリフト検出で気づける
      • AWS configでチェックできる
  • パイプラインで自動化
    • どこで実行する?
      • クライアントPC
      • EC2
      • パイプライン

14:45 15:30 “やってみた系”技術メディアDevelopers.IOの中身だいたい見せます

鵜飼亮次

  • 240万PV
  • 読者層、25〜34歳男性が多い
  • PCでの閲覧が8割弱
    • 世間的には逆にモバイルが多い。
  • Windowsが5割弱
  • 平均滞在時間2分
    • 読まれている
  • 直帰率8割
    • ピンポイントでの訪問が多い
  • 流入経路
    • 検索系で8割
  • パートナー企業との関係構築に役立つ
  • 社内のメンバーにも役立っている
    • 自己紹介代わりにも
  • 採用にも効く
  • ブログ本数が多すぎてクロールが終わらない
  • 最初の記事は社長が書いたS3の記事
  • テラスハウス型の運用
    • 生産性と即時性を最大化
  • 基本ポリシー
    • アウトプット主義
  • NGルールもある
    • ディスり、比較、非公開内容、裏とりのできていない情報、規約違反、コピペ、個人情報
  • 社内評価にも使っている
    • 四半期ごとの表彰、決算賞与の増額など
  • モチベーション
    • 優越感
    • 知識の定着
    • 知識向上
  • 課題
    • 一気に書きすぎて通知用ツイッターアカウントが凍結された

15:45 16:30 AWS CDKの基本と実例

加藤諒

  • AWS構築の歴史
    • 手順書に沿ってマネコンで操作を行う
      • 操作する時間がかかる、操作ミスが起こる可能性がある
      • AWSのバージョンアップで手順書との乖離が出る
    • スクリプト作成
      • CLS/SDKを使う
      • べき等性、ロールバック処理の作り込みが必要
      • マネコンだと勝手に関連リソース作ってくれるようなサポートが受けられない
    • プロビジョニングツール
      • CFn, Terraformなど
      • 冪等性があり、継続的なデプロイが行いやすい
      • 複雑な条件分岐やループがやりにくい
      • DOM(GoFormationなど)
        • CFnのテンプレートを生成するツール
      • IaaSとしてクラウドを使う時代からマネージドサービスを活用する時代へ
        • IaCの記述量が増えていく
        • 考慮する事項も増えていく
        • IaaS程度の利用だと、CDKはオーバースペック気味
    • CDK
      • コードでかける
        • 型がある言語ならIDEの支援が受けられる
        • 前処理もコードでかける
        • 条件分岐やループを簡単にかける
        • リソース定義を継承して拡張できる
      • 抽象化
        • Lambdaごとに権限管理が必要なとき
          • CFnとかだとLambdaの種類だけIAMロールの定義が必要
          • CDKではインラインポリシーを生成してくれる
      • 複数環境へのデプロイ
        • cdk.jsonに環境ごとのパラメータを設定可能
        • 設定したパラメータはコードで参照できる
  • CDKでテストを実施する
    • テストが必要な理由
      • CDK自体のバージョンアップが頻繁にある
      • 意図した変更になっているか確認したい
    • テストの種類
      • スナップショットテスト
        • 生成テンプレートの確認
      • Fine-grained tests
        • CFnリソースが存在するか比較
        • 意図せずリソース消えてないかも確認
      • Validations tests
  • CDKを使う実際の流れ
  • CDKを学ぶ
    • AWSのドキュメントが充実している

16:45 17:30 DeepRacerで学ぶ機械学習

大澤勇斗

  • DeepRacer League今日の朝終わった
    • 新しいリーグ始まるのかは不明
  • 機械学習とは
    • ざっくりいうと、規則性を学習させること
  • 強化学習
    • 環境とエージェントのフィードバックループで報酬を最大化する状態を求める
  • SageMakerで学習モデルの作成をする
  • RoboMakerでシミュレーションを行う
  • DeepRacerが上2つの面倒なところをやってくれる
  • DRでできること
    • 機械学習や強化学習の流れや概要について体験&学べる
    • 機械学習を使った問題の解き方への落とし込み
    • 報酬関数の設計
  • 1時間の学習で400円くらいかかる
    • 簡単な学習で2〜3時間くらい

17:45 18:30 Developers.IO CafeがなぜアプリからPWAになったのか

亀井栄利

  • タイトルの修正
    • ネイティブも引き続きやる
  • 最初ネイティブアプリだった理由
    • とにかくスピード優先した結果
  • PWAにした理由
    • 開発リソースの不足
    • iOSとAndroid同時リリースが難しい
    • iOSは審査の時間がかかる
    • OSの互換性を気にする必要がある
    • コーヒー飲みたいだけなのにアプリダウンロードしないといけない不便
    • OSごとのUI差分により、店舗オペレーション負担増
    • 新しい体験を高速に実験したい
      • ネイティブアプリを作りたいわけではない
  • VueとIonicを選択
  • 副産物
    • ワンソースでいろんなチャネルに対応
    • LINE
  • 微妙な差
    • レイアウト
    • iOSでプッシュ通知ができない
      • SMS使ったり
  • iPhoneユーザーがSafariプライベートモードで使用する
    • 毎回ログインが外れる
    • Webは危ないという認識(若者)
    • 一度外部アプリに行くとリダイレクトで戻ってこれない(プライベートじゃない方になってしまう)
  • 対策
    • ガワネイティブ
    • ついでにAndriodもTWA化
  • ワンソースメリット
    • すぐリリースできる
    • 開発リソースを体験に集中できるようになった
    • ユーザーが好きなもので体験できるようになった
  • 課題
    • 最適化
    • UIテストの自動化
    • キャッシュ対策

AWS DevDay Tokyo 2019 DAY2

二日目(最終日)です。

今日もサーバーレス系中心に見ていきたいと思います。

10:00〜10:45 オープンソースコミュニティで加速するサーバーレスの未来

  • クラウドの世界の中にいながら、オープンソースコミュニティに参加することの意味と楽しさ
  • Lambdaの問題(当時)
    • マネコンにソースを直接アップロードするのでバージョン管理どうする
    • CI/CDどうする
  • それを解決できるServerless Frameworkの登場
  • Serverless Setp Functions
  • OSS活動を継続的に続けるモチベーション
    • スキルのあるプログラマからのレビューを受けられる。スキルアップできる。
    • 遠くの国のあったことのない人から感謝される喜び
    • 自分の書いたコードがたとえ1行だとしても世界中の人に使われて、どこかの誰かの役に立っているかもしれない
  • OSS活動を継続させるには
    • 誰からも反応なく飽きてしまう、地味
    • スターが1000以上、関わっている人が複数いる、help-wantedタグがついているissueがあるプロジェクトに継続的にプルリクを送り続ける
    • 先送りにされている問題を潰していく人の存在は重要
    • プルリクを出し続けたプロダクトのプラグインなど付随のOSSを出してみる
  • オープンソースの未来とサーバーレス
    • Cloud2.0
      • 究極のサバーレスアプリケーションには全くコードがない
      • サーバーレスの狙いはよりコードを少なくクラウドのサービスをできる限り使うこと
      • フルマネージドサービスをうまく利用することで責務の多くをクラウドに任せ、ビジネスバリューを出すための仕事に集中すること
    • Cloud2.0の時代でも、コードを書くということが本質的になくなっていくことはない
    • 新しいものが出るということは新たな問題も発生するということ。問題とはチャンスであるということ。

11:00〜11:45 Chaos Engineering ~入門と実例~

Chaos Engineering の進化と今

  • 障害を避ける最も良い方法は継続的に障害を起こさせること(Netflix TechBlog 2010.12.16)
    • Chaos Monkey: インスタンスをランダムに停止
  • Failure Injection Testiong(2014.10)
  • Chaos Monkey, Simian Arm
    • 影響範囲の限定が難しい
  • Chaos Kong(2015.9)
  • PRINCIPLES OF CHAOS ENGINEEERING
    • カオスエンジニアリングとは、「対象とするシステムが本願環境における不安定な状況を耐えることができる」という自信を構築するために当該システムにおいて実施する
  • ChAP: CHaos Automation Platform(2017.7)
  • Aitomaiong chaos experiments in production(2019.5)
  • Gremlin Inc
    • 仕組みやツールを提供する企業
  • ChaosTOolkit
    • OSS
  • Chaos Testに取り組むなら、最低限の可用性設計はできていることが望ましい。

後半

  • Chaosconf振り返り
  • Our 4 Setp Aproach
    • 定常状態
    • 仮説設定
    • 故障発生
    • 仮説反証
  • Our Next Aproach
    • 影響の最小化

12:00〜12:45 よくある課題を一気に解説 御社の技術レベルがアップする 2019 秋期講習

  • コンテナのCI/CDちゃんとしたい

    Read more

AWS DevDay Tokyo 2019 DAY1

今年も来ました。

去年は目黒のAWSオフィスで3日間でしたが、今年は神田明神ホールで2日間になっています。

https://aws.amazon.com/jp/about-aws/events/2019/devday/

  • AWSグローバルで開催する開発者のためのトレーニングイベント
  • 最新のテクノロジー、開発手法などを集中的に学ぶことができる場
  • セッション公募を行い、11件採択された

10:00~11:40 ゼネラルセッション

@岡嵜 禎

  • AWSではBuilderという言葉を大事にしている
    • 開発者
  • amazon go 北米ではすでに10店舗以上展開
    • 多数センサーからのリアルタイムデータをリアルタイムで処理できている
  • Prime Air
    • 5万モデル検証、1万機作成して検証
  • Project Kuiper
  • 様々な場面と用途で使われる機械学習
    • AIサービス、MLサービス、フレームワーク&インフラストラクチャのレイヤ
      • 利用者のレベルによって使い分けられる
  • Well-Architected Framework
    • ホワイトペーパーとツールを提供
    • ツールは9月に日本語版リリース
  • On Builders and Dreamers
    • ジェフベゾスの言葉

@まつもと ゆきひろ

  • プロ・プログラミング技術者
  • 20世紀の言語
    • インターネットとともに
    • Ruby, JS,
  • 2000年代
    • 手軽、柔軟、生産的、楽しい
  • 2010年代
    • 関数型、手堅い
    • ブロック、型推論、少ないお約束
    • 企業によるスポンサー
      • Go, Swift, Rust, TypeScript
  • どの言語を選ぶか?
    • 評価基準を持つこと
    • 生産性(効率、コスト)
    • 唯一の解はない
      • 背景によって異なる
    • 判断を人に任せない
    • 風をおこし、強める

@倉貫 義人

  • SIerの受託開発の中でアジャイルをやるのは難しい
  • そもそもアジャイルがマッチする案件なのか(制約条件)
  • 納品のない受託開発
    • 月額定額
    • 見積り、要件定義(ビジネス上の制約)しない
    • クラウド、OSSのおかげで一人でできることが増えた
  • Software is eaticg the world
  • ソフトウェア開発の本質  - 大量生産、ルーチンワーク、製造業ではない
    • デザイン、問題解決。ナレッジワークであt
    • プログラミングを手段に、問題解決する仕事
  • これから求められる仕事とは
    • 人類の文明の進化は不自由を置き換えてきた
    • 自由な発送が求められる、好きで楽しめるか
    • クリエイティブな仕事、人数のいらない仕事
  • この先のエンジニアの生き方
    • ソフトウェア開発の仕事は、減ることはない
    • 腕を磨き続ければ、自分の価値を高められる
      • 人がいなければ、企業は成り立たない
    • あなたの仕事は、難しいからこそ価値がある

トークセッション

  • 令和の時代。更に輝くエンジニアになるために必要なこととは
  • これまでのキャリアはどのようにして築いてきましたか?
    • まつもと)東京は嫌だったので浜松に就職した。会社が傾いて閑職に置かれてRubyを作り始めた。
    • 倉貫)社内SNSを作ったところから。JavaではなくRoRを選んだ。
  • AIがプログラムを書いてくれる時代になったときのプログラマーの存在価値はどうなるか?それでも必要とされるプログラマーとなるために求められることは?
    • まつもと)問題の定義
    • 倉貫)プログラムのデザイン自体クリエイティブな部分、AIが出てきても書けば良い。
  • どんな人と一緒に働きたいか
    • まつもと・倉貫)主体性のあるプログラマ
  • 自分のスキルアップ
    • まつもと)海外のブログとか見る、得意なところから周辺に広げていく、自分の中にインデックスを作る
    • 倉貫)得意があるメンバーでチームを組む

12:00~12:45 第1回 AWS Fargate かんたんデプロイ選手権

  • Fargateとは
    • AWSマネージド
    • コンテナネイティブ
    • AWSサービスとの連携
  • ECS on EC2の運用
    • OSやエージェント類へのパッチあて、更新
    • インスタンスのスケーリング
    • コンテナとホスト2重に対応
  • Fargate CLI
    • サービスを削除するときはスケールインしてからデストロイ
    • ターナー社がforkしたものもある。インタフェースが異なる。
    • pros
      • vervose オプションで自動生成されるリソースの勉強ができる
      • とにかく簡単
    • cons
      • 本番環境で使うにはちょっとアドホック
        • Fargate CLIのバージョンアップで変わるところがあるかも
      • CI/CDと合わせて構築するには考えないと
  • nathanpeck/awesome-ecs
  • なぜこんなにたくさんあるのか
    • サービスリリース時には最小限(MVP)なもの
    • リリース後にユーザーからのフィードバックで成長させる
    • 利用者がそれぞれ作るので多くなる

13:00~13:45 マルチテナント時代におけるテスト・ベストプラクティス

場所どり失敗してスクリーン見えなかったのでログなし。

Read more

JAWS-UG コンテナ支部 #15

https://jawsug-container.connpass.com/event/143245/

AWS コンテナサービスアップデート トリ / Amazon Web Services Japan

  • コンテナロードマップは what’s new に載ってない
  • トランキングENIと通常のENIの違いは「ほとんど」ない
  • EKS 名称変更が一番シェアされたツイート

mazon ECSの開発環境を動的に管理するツールを作ってみました プログラミングヤクザ / サイバーエージェント

  • devxx環境の自動化
  • 作るのに時間がかかるALBを共有化する
  • PRと環境が対になる
    • create PR すると create ENV
    • close PR すると delete ENV
  • dev00 は reference として使う
  • github.com/baikonur-oss/docs で公開しました

Fargate運用物語 ~ 本当にコンテナで幸せになりますか? ~ 曽根 壮大 / オミカレ

  • EC2で困ってないならEC2で良い
  • 冪等性を担保するAnsibleは難しい  - 頻繁に変更があるならコンテナのほうが向いている
  • サイドカー増やしたくなったらEC2でいいんじゃないか
  • 解決したい問題のスコープ大事

How Fast can your Fargate Scale? Pahud Hsieh / Amazon Web Services

  • スケールアップの検知を早くする(1〜3分→10秒以下)
  • StepFunctionでstausをcorrectする(3秒ごと)